Skip to content

feat: updated landing page - #251

Open
Alessandro100 wants to merge 16 commits into
mainfrom
feat/landing-page-update-v2
Open

Alessandro100 wants to merge 16 commits into
mainfrom
feat/landing-page-update-v2

Conversation

@Alessandro100

Copy link
Copy Markdown
Contributor

Summary:

Brand new landing page + header and footer styling updates

  • Changed naming convention from "MobilityDatabase" to "Mobility Database"

Expected behavior:

  • Should look good in light mode dark mode and in all screen sizes
  • Should load without javascript (SEO requirement)

Testing tips:

Go on the landing page and play around with screen sizes, light mode , dark mode, functionality, browsers, etc
(Go on other pages to assure the new header and footer are good)

Follow up tickets

  • Right now the Globe uses a snapshot of feed count and manually inputs it into the globe. Ideal state would be to fetch this data with an API endpoint to avoid data being stale
  • A dedicated page with the globe to explore more in depth feeds around the world

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Run the unit tests with yarn test to make sure you didn't break anything
  • Add or update any needed documentation to the repo
  • Format the title like "feat: [new feature short description]". Title must follow the Conventional Commit Specification(https://www.conventionalcommits.org/en/v1.0.0/).
  • Linked all relevant issues
  • Include screenshot(s) showing how this pull request works and fixes the issue(s)
Screenshot 2026-10-07 at 11 58 28 Screenshot 2026-10-07 at 11 58 37 Screenshot 2026-10-07 at 11 58 51 Screenshot 2026-10-07 at 11 59 02

@Alessandro100
Alessandro100 requested a balanced review from Copilot October 7, 2026 16:00
@Alessandro100 Alessandro100 self-assigned this Oct 7, 2026
@vercel

vercel Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
mobilitydatabase-web Ready Ready Preview Oct 8, 2026 5:53pm UTC

Request Review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Accessibility, French localization, and globe geometry issues remain unresolved.

6 open findings
What changed in this PR

Introduces a redesigned, SEO-friendly landing page with animated transit visuals, global coverage maps, refreshed branding, and updated header/footer styling. Vercel React performance guidance was applied.

Changes:

  • Adds the animated journey hero, feature gallery, and interactive coverage globe/map.
  • Expands metadata, structured data, crawler documentation, and social previews.
  • Renames user-facing “MobilityDatabase” references to “Mobility Database.”
File Description
package.json Adds 3D geometry dependencies.
yarn.lock Locks new dependencies.
eslint.config.mjs Excludes preprocessing scripts.
public/​llms.txt Documents catalog for automated readers.
messages/​en.json Adds English landing-page copy.
messages/​fr.json Adds French landing-page copy.
src/​app/​Theme.ts Exports raw theme palettes.
src/​app/​styles/​TextShimmer.css Removes obsolete shimmer styling.
src/​app/​utils/​frame-cap.ts Caps decorative scene rendering.
src/​app/​utils/​frame-cap.spec.ts Tests frame-rate limiting.
src/​app/​components/​Header.tsx Refreshes branding and scroll border.
src/​app/​components/​HeaderMobileDrawer.tsx Updates mobile branding.
src/​app/​components/​Footer.tsx Reorganizes footer layout and socials.
src/​app/​components/​FooterElements.tsx Adjusts footer link typography.
src/​app/​screens/​Feed/​FeedView.tsx Updates admin heading branding.
src/​app/​components/​WorldGlobe/​CountryStatsPopup.tsx Adds country statistics popup.
src/​app/​components/​WorldGlobe/​MapToolbar.tsx Adds map presentation controls.
src/​app/​components/​WorldGlobe/​feed-stats.ts Provides feed statistics helpers.
src/​app/​components/​WorldGlobe/​flat-map-geometry.ts Implements map projection and zoom.
src/​app/​components/​WorldGlobe/​flat-map-geometry.spec.ts Tests flat-map geometry.
src/​app/​components/​WorldGlobe/​fullscreen.ts Adds fullscreen compatibility helpers.
src/​app/​components/​WorldGlobe/​geo-shapes.ts Decodes and processes geography.
src/​app/​components/​WorldGlobe/​globe-colors.ts Resolves theme-aware globe colors.
src/​app/​components/​WorldGlobe/​globe-countries.ts Builds globe country data.
src/​app/​components/​WorldGlobe/​globe-geometry.ts Generates 3D globe geometry.
src/​app/​components/​WorldGlobe/​iso-numeric.ts Maps numeric country codes.
src/​app/​components/​WorldGlobe/​popup-placement.ts Fits popups within map bounds.
src/​app/​components/​WorldGlobe/​popup-placement.spec.ts Tests popup placement.
src/​app/​components/​WorldGlobe/​tour.ts Implements weighted country tours.
src/​app/​components/​WorldGlobe/​useGlobeColors.ts Tracks globe color scheme.
src/​app/​components/​WorldGlobe/​useTourMode.ts Manages automatic tour state.
src/​app/​[locale]/​page.tsx Expands home metadata and JSON-LD.
src/​app/​[locale]/​layout.tsx Updates metadata and Firebase hints.
src/​app/​[locale]/​components/​HomePage.tsx Rebuilds the landing page.
src/​app/​[locale]/​components/​HomeStructuredData.tsx Adds schema.org entities.
src/​app/​[locale]/​components/​SearchBox.tsx Redesigns the hero search field.
src/​app/​[locale]/​components/​SearchBorderShine.css Adds search-border animation.
src/​app/​[locale]/​components/​SectionHeading.tsx Adds reusable section headings.
src/​app/​[locale]/​components/​FeaturePromo.tsx Adds feature gallery cards.
src/​app/​[locale]/​components/​FeaturePreviewsLazy.tsx Defers decorative previews.
src/​app/​[locale]/​components/​CoverageMap.tsx Adds globe/map coverage switcher.
src/​app/​[locale]/​components/​GlobePlaceholder.tsx Adds server-rendered globe placeholder.
src/​app/​[locale]/​components/​hero-animation/​HeroBackground.tsx Lazily loads the WebGL hero.
src/​app/​[locale]/​components/​hero-animation/​HeroGridPlaceholder.tsx Adds initial hero placeholder.
src/​app/​[locale]/​components/​hero-animation/​JourneyStandardChips.tsx Adds feed-standard links.
src/​app/​[locale]/​components/​hero-animation/​journey-basemap.ts Builds the tiled hero basemap.
src/​app/​[locale]/​components/​hero-animation/​journey-palette.ts Defines journey theme colors.
src/​app/​[locale]/​components/​hero-animation/​journey-pins.ts Draws journey markers.
src/​app/​[locale]/​components/​hero-animation/​journey-style.ts Centralizes journey styling.
src/​app/​[locale]/​components/​hero-animation/​journey-tiles.ts Resolves and preloads tiles.
src/​app/​[locale]/​components/​hero-animation/​montreal-journey.spec.ts Tests journey projection and timing.
src/​app/​[locale]/​components/​hero-animation/​journey-network.spec.ts Tests network simplification.
src/​app/​[locale]/​components/​hero-animation/​stop-pins.ts Implements animated stop pins.
src/​app/​[locale]/​components/​hero-animation/​surface-palette.ts Defines surface color ramps.
src/​app/​[locale]/​components/​hero-animation/​surface-shading.ts Implements surface shaders.
src/​app/​[locale]/​about/​page.tsx Updates brand metadata.
src/​app/​[locale]/​contact-us/​page.tsx Updates brand metadata.
src/​app/​[locale]/​contribute-faq/​page.tsx Updates brand metadata.
src/​app/​[locale]/​email-verification/​page.tsx Updates brand metadata.
src/​app/​[locale]/​faq/​page.tsx Updates brand metadata.
src/​app/​[locale]/​feeds/​page.tsx Updates brand metadata.
src/​app/​[locale]/​gbfs-validator/​page.tsx Updates brand metadata.
src/​app/​[locale]/​gtfs-feature-tracker/​page.tsx Updates brand metadata.
src/​app/​[locale]/​privacy-policy/​page.tsx Updates brand metadata.
src/​app/​[locale]/​seal-of-reliability/​page.tsx Updates brand metadata.
src/​app/​[locale]/​seal-of-reliability/​how-it-is-calculated/​page.tsx Updates brand metadata.
src/​app/​[locale]/​terms-and-conditions/​page.tsx Updates brand metadata.
cypress/​e2e/​home.cy.ts Updates branding assertion.
cypress/​e2e/​signin.cy.ts Updates branding assertion.

🧠 Review effort: Balanced


💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/app/[locale]/components/HomePage.tsx Outdated
Comment thread src/app/components/WorldGlobe/CountryStatsPopup.tsx
Comment thread src/app/components/WorldGlobe/WorldFlatMapFeeds.tsx
Comment thread src/app/components/WorldGlobe/WorldGlobeFeeds.tsx Outdated
Comment thread src/app/components/WorldGlobe/feed-stats.ts
Comment on lines +114 to +115
const outer = rings[0] ? unwrapRingLongitudes(rings[0]) : null;
if (!outer || outer.length < 4) return [];
@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

*Lighthouse ran on https://mobilitydatabase-p9ku5qwmv-mobility-data.vercel.app/ * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟠 70 🟢 90 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-p9ku5qwmv-mobility-data.vercel.app/feeds * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟢 90 🟠 87 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-p9ku5qwmv-mobility-data.vercel.app/feeds/gtfs/mdb-2126 * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🔴 46 🟢 94 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-p9ku5qwmv-mobility-data.vercel.app/feeds/gtfs_rt/mdb-2585 * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟢 94 🟠 84 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-p9ku5qwmv-mobility-data.vercel.app/feeds/gbfs/gbfs-flamingo_porirua * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟢 94 🟢 94 🟢 96 🟢 100

This branch was successfully deployed

1 active deployment
Preview — 604331f1 Deployed Oct 8, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants