Skip to content

Commit 0f89af8

Browse files
feat: add unique meta titles and descriptions to all pages
Co-authored-by: Alessandro100 <18631060+Alessandro100@users.noreply.github.com> Agent-Logs-Url: https://github.com/MobilityData/mobilitydatabase-web/sessions/da9f4d29-6967-4a69-b463-3be59fc6ef9c
1 parent e80a693 commit 0f89af8

File tree

8 files changed

+144
-0
lines changed

8 files changed

+144
-0
lines changed

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,27 @@ 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 | Mobility Database',
11+
description:
12+
'Learn about Mobility Database, the open-source catalog of public transit feeds. Discover our mission to make GTFS, GTFS-RT, and GBFS data accessible to everyone.',
13+
alternates: {
14+
canonical: '/about',
15+
},
16+
openGraph: {
17+
title: 'About | Mobility Database',
18+
description:
19+
'Learn about Mobility Database, the open-source catalog of public transit feeds. Discover our mission to make GTFS, GTFS-RT, and GBFS data accessible to everyone.',
20+
url: 'https://mobilitydatabase.org/about',
21+
siteName: 'Mobility Database',
22+
type: 'website',
23+
},
24+
};
25+
826
export function generateStaticParams(): Array<{
927
locale: Locale;
1028
}> {

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,27 @@ 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 | Mobility Database',
11+
description:
12+
'Get in touch with the Mobility Database team. Reach out for support, data questions, or to report issues with GTFS, GTFS-RT, and GBFS transit feeds.',
13+
alternates: {
14+
canonical: '/contact-us',
15+
},
16+
openGraph: {
17+
title: 'Contact Us | Mobility Database',
18+
description:
19+
'Get in touch with the Mobility Database team. Reach out for support, data questions, or to report issues with GTFS, GTFS-RT, and GBFS transit feeds.',
20+
url: 'https://mobilitydatabase.org/contact-us',
21+
siteName: 'Mobility Database',
22+
type: 'website',
23+
},
24+
};
25+
826
export function generateStaticParams(): Array<{
927
locale: Locale;
1028
}> {

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,27 @@ 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 | Mobility Database',
11+
description:
12+
'Frequently asked questions about submitting transit feeds to Mobility Database. Learn how to contribute GTFS, GTFS-RT, and GBFS feeds to our global catalog.',
13+
alternates: {
14+
canonical: '/contribute-faq',
15+
},
16+
openGraph: {
17+
title: 'Feed Submission FAQ | Mobility Database',
18+
description:
19+
'Frequently asked questions about submitting transit feeds to Mobility Database. Learn how to contribute GTFS, GTFS-RT, and GBFS feeds to our global catalog.',
20+
url: 'https://mobilitydatabase.org/contribute-faq',
21+
siteName: 'Mobility Database',
22+
type: 'website',
23+
},
24+
};
25+
826
export function generateStaticParams(): Array<{
927
locale: Locale;
1028
}> {

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,27 @@ 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 | Mobility Database',
11+
description:
12+
'Find answers to frequently asked questions about Mobility Database. Learn about GTFS, GTFS-RT, and GBFS transit feeds, data access, and how to use the platform.',
13+
alternates: {
14+
canonical: '/faq',
15+
},
16+
openGraph: {
17+
title: 'FAQ | Mobility Database',
18+
description:
19+
'Find answers to frequently asked questions about Mobility Database. Learn about GTFS, GTFS-RT, and GBFS transit feeds, data access, and how to use the platform.',
20+
url: 'https://mobilitydatabase.org/faq',
21+
siteName: 'Mobility Database',
22+
type: 'website',
23+
},
24+
};
25+
826
export function generateStaticParams(): Array<{
927
locale: Locale;
1028
}> {

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,24 @@ 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 | Mobility Database',
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+
alternates: {
13+
canonical: '/feeds',
14+
},
15+
openGraph: {
16+
title: 'Transit Feeds | Mobility Database',
17+
description:
18+
'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.',
19+
url: 'https://mobilitydatabase.org/feeds',
20+
siteName: 'Mobility Database',
21+
type: 'website',
22+
},
23+
};
624

725
export function generateStaticParams(): Array<{
826
locale: Locale;

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,27 @@ 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 | Mobility Database',
12+
description:
13+
'Validate your GBFS (General Bikeshare Feed Specification) feeds with the Mobility Database GBFS Validator. Check compliance and identify errors in your bikeshare or micromobility data.',
14+
alternates: {
15+
canonical: '/gbfs-validator',
16+
},
17+
openGraph: {
18+
title: 'GBFS Validator | Mobility Database',
19+
description:
20+
'Validate your GBFS (General Bikeshare Feed Specification) feeds with the Mobility Database GBFS Validator. Check compliance and identify errors in your bikeshare or micromobility data.',
21+
url: 'https://mobilitydatabase.org/gbfs-validator',
22+
siteName: 'Mobility Database',
23+
type: 'website',
24+
},
25+
};
26+
927
export function generateStaticParams(): Array<{
1028
locale: Locale;
1129
}> {

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,27 @@ 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 | Mobility Database',
11+
description:
12+
'Read the Mobility Database privacy policy to understand how we collect, use, and protect your personal information when you use our transit data platform.',
13+
alternates: {
14+
canonical: '/privacy-policy',
15+
},
16+
openGraph: {
17+
title: 'Privacy Policy | Mobility Database',
18+
description:
19+
'Read the Mobility Database privacy policy to understand how we collect, use, and protect your personal information when you use our transit data platform.',
20+
url: 'https://mobilitydatabase.org/privacy-policy',
21+
siteName: 'Mobility Database',
22+
type: 'website',
23+
},
24+
};
25+
826
export function generateStaticParams(): Array<{
927
locale: Locale;
1028
}> {

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,27 @@ 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 | Mobility Database',
11+
description:
12+
'Read the Mobility Database terms and conditions governing the use of our platform and access to our global catalog of GTFS, GTFS-RT, and GBFS transit feeds.',
13+
alternates: {
14+
canonical: '/terms-and-conditions',
15+
},
16+
openGraph: {
17+
title: 'Terms and Conditions | Mobility Database',
18+
description:
19+
'Read the Mobility Database terms and conditions governing the use of our platform and access to our global catalog of GTFS, GTFS-RT, and GBFS transit feeds.',
20+
url: 'https://mobilitydatabase.org/terms-and-conditions',
21+
siteName: 'Mobility Database',
22+
type: 'website',
23+
},
24+
};
25+
826
export function generateStaticParams(): Array<{
927
locale: Locale;
1028
}> {

0 commit comments

Comments
 (0)