Skip to content

Commit 7d5e3d8

Browse files
Merge pull request #80 from MobilityData/copilot/add-unique-meta-titles-and-descriptions
Add unique meta title and description to each page
2 parents 60b8de5 + fe43d80 commit 7d5e3d8

File tree

8 files changed

+120
-0
lines changed

8 files changed

+120
-0
lines changed

src/app/[locale]/about/page.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,24 @@ import { type ReactElement } from 'react';
22
import { setRequestLocale } from 'next-intl/server';
33
import { type Locale, routing } from '../../../i18n/routing';
44
import AboutPage from './components/AboutPage';
5+
import { type Metadata } from 'next';
56

67
export const dynamic = 'force-static';
78

9+
export const metadata: Metadata = {
10+
title: 'About | MobilityDatabase',
11+
description:
12+
'Learn about MobilityDatabase, the open-source catalog of public transit feeds. Discover our mission to make GTFS, GTFS-RT, and GBFS data accessible to everyone.',
13+
openGraph: {
14+
title: 'About | MobilityDatabase',
15+
description:
16+
'Learn about MobilityDatabase, the open-source catalog of public transit feeds. Discover our mission to make GTFS, GTFS-RT, and GBFS data accessible to everyone.',
17+
url: 'https://mobilitydatabase.org/about',
18+
siteName: 'MobilityDatabase',
19+
type: 'website',
20+
},
21+
};
22+
823
export function generateStaticParams(): Array<{
924
locale: Locale;
1025
}> {

src/app/[locale]/contact-us/page.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,24 @@ import { type ReactElement } from 'react';
22
import { setRequestLocale } from 'next-intl/server';
33
import { type Locale, routing } from '../../../i18n/routing';
44
import ContactUs from '../../screens/ContactUs';
5+
import { type Metadata } from 'next';
56

67
export const dynamic = 'force-static';
78

9+
export const metadata: Metadata = {
10+
title: 'Contact Us | MobilityDatabase',
11+
description:
12+
'Get in touch with the MobilityDatabase team. Reach out for support, data questions, or to report issues with GTFS, GTFS-RT, and GBFS transit feeds.',
13+
openGraph: {
14+
title: 'Contact Us | MobilityDatabase',
15+
description:
16+
'Get in touch with the MobilityDatabase team. Reach out for support, data questions, or to report issues with GTFS, GTFS-RT, and GBFS transit feeds.',
17+
url: 'https://mobilitydatabase.org/contact-us',
18+
siteName: 'MobilityDatabase',
19+
type: 'website',
20+
},
21+
};
22+
823
export function generateStaticParams(): Array<{
924
locale: Locale;
1025
}> {

src/app/[locale]/contribute-faq/page.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,24 @@ import { type ReactElement } from 'react';
22
import { setRequestLocale } from 'next-intl/server';
33
import { type Locale, routing } from '../../../i18n/routing';
44
import FeedSubmissionFAQ from '../../screens/FeedSubmissionFAQ';
5+
import { type Metadata } from 'next';
56

67
export const dynamic = 'force-static';
78

9+
export const metadata: Metadata = {
10+
title: 'Feed Submission FAQ | MobilityDatabase',
11+
description:
12+
'Frequently asked questions about submitting transit feeds to MobilityDatabase. Learn how to contribute GTFS, GTFS-RT, and GBFS feeds to our global catalog.',
13+
openGraph: {
14+
title: 'Feed Submission FAQ | MobilityDatabase',
15+
description:
16+
'Frequently asked questions about submitting transit feeds to MobilityDatabase. Learn how to contribute GTFS, GTFS-RT, and GBFS feeds to our global catalog.',
17+
url: 'https://mobilitydatabase.org/contribute-faq',
18+
siteName: 'MobilityDatabase',
19+
type: 'website',
20+
},
21+
};
22+
823
export function generateStaticParams(): Array<{
924
locale: Locale;
1025
}> {

src/app/[locale]/faq/page.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,24 @@ import { type ReactElement } from 'react';
22
import { setRequestLocale } from 'next-intl/server';
33
import { type Locale, routing } from '../../../i18n/routing';
44
import FAQ from '../../screens/FAQ';
5+
import { type Metadata } from 'next';
56

67
export const dynamic = 'force-static';
78

9+
export const metadata: Metadata = {
10+
title: 'FAQ | MobilityDatabase',
11+
description:
12+
'Find answers to frequently asked questions about MobilityDatabase. Learn about GTFS, GTFS-RT, and GBFS transit feeds, data access, and how to use the platform.',
13+
openGraph: {
14+
title: 'FAQ | MobilityDatabase',
15+
description:
16+
'Find answers to frequently asked questions about MobilityDatabase. Learn about GTFS, GTFS-RT, and GBFS transit feeds, data access, and how to use the platform.',
17+
url: 'https://mobilitydatabase.org/faq',
18+
siteName: 'MobilityDatabase',
19+
type: 'website',
20+
},
21+
};
22+
823
export function generateStaticParams(): Array<{
924
locale: Locale;
1025
}> {

src/app/[locale]/feeds/page.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,21 @@ import { setRequestLocale } from 'next-intl/server';
33
import { type Locale, routing } from '../../../i18n/routing';
44
import FeedsScreen from './components/FeedsScreen';
55
import FeedsScreenSkeleton from '../../screens/Feeds/FeedsScreenSkeleton';
6+
import { type Metadata } from 'next';
7+
8+
export const metadata: Metadata = {
9+
title: 'Transit Feeds | MobilityDatabase',
10+
description:
11+
'Browse thousands of GTFS, GTFS-RT, and GBFS transit feeds from agencies around the world. Search and filter open public transit data by location, type, or provider.',
12+
openGraph: {
13+
title: 'Transit Feeds | MobilityDatabase',
14+
description:
15+
'Browse thousands of GTFS, GTFS-RT, and GBFS transit feeds from agencies around the world. Search and filter open public transit data by location, type, or provider.',
16+
url: 'https://mobilitydatabase.org/feeds',
17+
siteName: 'MobilityDatabase',
18+
type: 'website',
19+
},
20+
};
621

722
export function generateStaticParams(): Array<{
823
locale: Locale;

src/app/[locale]/gbfs-validator/page.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,24 @@ import { setRequestLocale } from 'next-intl/server';
33
import { type Locale, routing } from '../../../i18n/routing';
44
import GbfsValidator from '../../screens/GbfsValidator';
55
import { GbfsAuthProvider } from '../../context/GbfsAuthProvider';
6+
import { type Metadata } from 'next';
67

78
export const dynamic = 'force-static';
89

10+
export const metadata: Metadata = {
11+
title: 'GBFS Validator | MobilityDatabase',
12+
description:
13+
'Validate your GBFS (General Bikeshare Feed Specification) feeds with the MobilityDatabase GBFS Validator. Check compliance and identify errors in your bikeshare or micromobility data.',
14+
openGraph: {
15+
title: 'GBFS Validator | MobilityDatabase',
16+
description:
17+
'Validate your GBFS (General Bikeshare Feed Specification) feeds with the MobilityDatabase GBFS Validator. Check compliance and identify errors in your bikeshare or micromobility data.',
18+
url: 'https://mobilitydatabase.org/gbfs-validator',
19+
siteName: 'MobilityDatabase',
20+
type: 'website',
21+
},
22+
};
23+
924
export function generateStaticParams(): Array<{
1025
locale: Locale;
1126
}> {

src/app/[locale]/privacy-policy/page.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,24 @@ import { type ReactElement } from 'react';
22
import { setRequestLocale } from 'next-intl/server';
33
import { type Locale, routing } from '../../../i18n/routing';
44
import PrivacyPolicy from '../../screens/PrivacyPolicy';
5+
import { type Metadata } from 'next';
56

67
export const dynamic = 'force-static';
78

9+
export const metadata: Metadata = {
10+
title: 'Privacy Policy | MobilityDatabase',
11+
description:
12+
'Read the MobilityDatabase privacy policy to understand how we collect, use, and protect your personal information when you use our transit data platform.',
13+
openGraph: {
14+
title: 'Privacy Policy | MobilityDatabase',
15+
description:
16+
'Read the MobilityDatabase privacy policy to understand how we collect, use, and protect your personal information when you use our transit data platform.',
17+
url: 'https://mobilitydatabase.org/privacy-policy',
18+
siteName: 'MobilityDatabase',
19+
type: 'website',
20+
},
21+
};
22+
823
export function generateStaticParams(): Array<{
924
locale: Locale;
1025
}> {

src/app/[locale]/terms-and-conditions/page.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,24 @@ import { type ReactElement } from 'react';
22
import { setRequestLocale } from 'next-intl/server';
33
import { type Locale, routing } from '../../../i18n/routing';
44
import TermsAndConditions from '../../screens/TermsAndConditions';
5+
import { type Metadata } from 'next';
56

67
export const dynamic = 'force-static';
78

9+
export const metadata: Metadata = {
10+
title: 'Terms and Conditions | MobilityDatabase',
11+
description:
12+
'Read the MobilityDatabase terms and conditions governing the use of our platform and access to our global catalog of GTFS, GTFS-RT, and GBFS transit feeds.',
13+
openGraph: {
14+
title: 'Terms and Conditions | MobilityDatabase',
15+
description:
16+
'Read the MobilityDatabase terms and conditions governing the use of our platform and access to our global catalog of GTFS, GTFS-RT, and GBFS transit feeds.',
17+
url: 'https://mobilitydatabase.org/terms-and-conditions',
18+
siteName: 'MobilityDatabase',
19+
type: 'website',
20+
},
21+
};
22+
823
export function generateStaticParams(): Array<{
924
locale: Locale;
1025
}> {

0 commit comments

Comments
 (0)