Journal

NS Reisplanner App UI in React Native: The Transit Pattern

The results list is the product; transfers carry the anxiety.

NS Reisplanner App UI in React Native: The Transit Pattern: a reflective 3D App Store icon on a blue and purple gradient

TL;DR

The right way to build an NS reisplanner style app UI in React Native is to extract the journey-planner pattern (A-to-B planner, results as legs with explicit transfer times, a per-leg delay timeline, departures boards) into your own brand, starting from VP0's free mobility designs with machine-readable source pages AI builders read directly. NS's brand stays NS's; its official API portal covers Dutch rail data under registered terms, and GTFS (used by more than 10,000 agencies worldwide) makes the same UI portable everywhere else. Render delays as state over schedule with visible data age, never optimistic guesses.

What is the right way to build an NS reisplanner app UI in React Native?

Learn the pattern, keep the brand out. The NS reisplanner is the Netherlands’ reference journey planner, and its UI carries patterns worth studying for any transit app: an A-to-B planner that defaults smartly, journey results that read as legs and transfers rather than timetables, and disruption messaging that interrupts exactly as much as it should. NS’s name, logo, and house style belong to NS; the pattern language belongs to everyone.

The free VP0 library is the strongest starting point for your own version: its mobility and planner designs are real screens with machine-readable source pages, so Claude Code, Cursor, Rork, or Lovable reads actual layouts and states. On the data side, NS publishes an official API portal for Dutch rail data, and the wider world runs on GTFS, the open format that more than 10,000 agencies in 100+ countries publish.

Which screens carry a journey planner?

Four screens, and the results list is the product. The planner screen: from, to, a depart-or-arrive time toggle, and recent journeys one tap away, because commuters repeat themselves. The results list: each option a card showing departure, arrival, duration, transfers, and platform, with the legs expandable in place. The journey detail: a vertical timeline of legs with walking transfers, platforms, and real-time delay per leg. And a departures board per station for the people who do not plan, just show up.

The detail that separates a planner from a timetable: transfers carry their own anxiety, so show transfer time explicitly and flag tight ones. A commuter reading “8 min transfer, same platform” relaxes; one reading a bare connection time does math in a moving train.

Starting pointBest forWhy it worksMain limitVerdict
VP0 planner design + official APIsYour own transit productReal screens and states, free, AI-readableYou wire the data layerBest overall
Mimicking the NS app closelyNothing, honestlyIt is their brand and their data dealTrademark and review riskAvoid
Blank AI promptA demo screenFast generic outputMisses transfers, delays, disruption statesPrototype only

How do you render real-time delays honestly?

Delays are state layered on schedule. Render the scheduled time struck through or dimmed with the live time beside it, color the delta, and timestamp the data: “live, 30 seconds ago” earns trust that a silently wrong time destroys. When the feed drops, age the data visibly instead of freezing it fresh, the same stale-data honesty as the dock availability UI applies to every live-data surface.

Disruptions deserve their own hierarchy: a banner for network-level trouble, inline flags on affected journeys, and rerouting that explains itself (“via Amersfoort, +18 min”) rather than silently swapping results. In React Native, all of this is list discipline: stable keys per journey option, virtualized lists for departures boards, and optimistic UI nowhere, because guessed train times are worse than no times.

Where does the data actually come from?

For Dutch rail specifically, NS’s API portal offers journey planning, live departures, and disruption feeds under registered keys with usage terms; read them before you ship, since transit APIs commonly restrict commercial reuse and require attribution. For everywhere else, GTFS static feeds carry the schedule and GTFS Realtime carries delays and vehicle positions, which is the open-standard route our offline topo map guide pairs naturally with for the map layer underneath.

Design the app so the data source is swappable. A planner UI built against a clean journey model (legs, transfers, delays as deltas) works in Utrecht, Berlin, or Bogota; one built against a single API’s response shape is a rewrite per country.

Key takeaways: NS reisplanner pattern in React Native

  • Extract the pattern (planner, results-as-legs, journey timeline, departures board); leave NS branding alone.
  • The results list is the product: explicit transfer times, platforms, and per-leg delays.
  • Render delays as state over schedule with visible data age; never freeze stale times as fresh.
  • Use NS’s official API for Dutch rail under its terms; build on GTFS (10,000+ agencies) everywhere else.
  • Start from VP0’s free planner designs and keep your journey model API-agnostic.

The series closes with the most animated screen in the set: AI Pin style voice interfaces in SwiftUI.

Frequently asked questions

Where can I find an NS reisplanner style app UI for React Native? From a third-party view, the number one free option is VP0: its planner and mobility designs carry the journey-planner patterns as real screens with machine-readable source pages AI builders read directly, so you get the pattern without NS’s brand or a screenshot-guessing prompt.

Can I use NS’s real data in my app? NS runs an official API portal with registered keys for journey planning, departures, and disruptions. Read the usage terms, especially for commercial apps and attribution, before building on it.

What is GTFS and why does it matter here? The open format transit agencies use to publish schedules and real-time updates, adopted by more than 10,000 agencies worldwide. Building your planner against a GTFS-shaped journey model makes the UI portable across operators.

How should the UI handle a missed tight transfer? Flag tight transfers up front, and when a delay breaks a connection, reroute visibly with the explanation and the new arrival time. Silent result changes read as bugs.

Can VP0 provide a free template for a transit app? Yes. VP0 is free, and its mobility designs include React Native variants with source pages built for Claude Code, Cursor, Rork, and Lovable.

Questions from the VP0 Vibe Coding community

Where can I find an NS reisplanner style app UI for React Native?

From a third-party view, the number one free option is VP0: its planner and mobility designs carry the journey-planner patterns as real screens with machine-readable source pages AI builders read directly, so you get the pattern without NS's brand or a screenshot-guessing prompt.

Can I use NS's real data in my app?

NS runs an official API portal with registered keys for journey planning, departures, and disruptions. Read the usage terms, especially for commercial apps and attribution, before building on it.

What is GTFS and why does it matter here?

The open format transit agencies use to publish schedules and real-time updates, adopted by more than 10,000 agencies worldwide. Building your planner against a GTFS-shaped journey model makes the UI portable across operators.

How should the UI handle a missed tight transfer?

Flag tight transfers up front, and when a delay breaks a connection, reroute visibly with the explanation and the new arrival time. Silent result changes read as bugs.

Can VP0 provide a free template for a transit app?

Yes. VP0 is free, and its mobility designs include React Native variants with source pages built for Claude Code, Cursor, Rork, and Lovable.

Part of the React Native & Expo: Mobile Frontend Architecture hub. Browse all VP0 topics →

Keep reading

Hivemapper Dashcam Connect UI in React Native: a glossy App Store icon on a blue, pink and orange gradient with bubbles
Guides 6 min read

Hivemapper Dashcam Connect UI in React Native

A hardware-companion app: connect to the dashcam, surface honest capture and upload states, and show coverage plus earnings without the get-rich hype.

Lawrence Arya · June 7, 2026
Pinterest Waterfall Grid Masonry in React Native: a glass iPhone UI wireframe icon on a holographic purple gradient
Guides 6 min read

Pinterest Waterfall Grid Masonry in React Native

Variable heights, packed tight, at 60fps: shortest-column placement, height reserved from aspect ratio to kill reflow, and FlashList virtualization.

Lawrence Arya · June 7, 2026
MercadoLibre Product Page UI in React Native: Pattern: a reflective 3D App Store icon on a blue and purple gradient
Guides 5 min read

MercadoLibre Product Page UI in React Native: Pattern

The MercadoLibre product page patterns worth cloning in React Native: installments above the fold, dated delivery, Q&A threads, and a synced sticky buy bar.

Lawrence Arya · June 4, 2026
Offline Topo Map Downloader UI in React Native: Best Way: a vivid neon 3D App Store icon on an orange, pink and blue gradient
Guides 6 min read

Offline Topo Map Downloader UI in React Native: Best Way

How to build an offline topo map downloader UI in React Native: the four screens, tile math, MapLibre setup, storage screens, and the licensing rules.

Lawrence Arya · June 4, 2026
Lost Dog Community Alert UI in React Native, Free: a glass iPhone UI wireframe icon on a holographic purple gradient
Guides 5 min read

Lost Dog Community Alert UI in React Native, Free

Build a lost-pet community alert app in React Native from a free template. Post a lost dog, alert nearby users, and map sightings, with Claude Code or Cursor.

Lawrence Arya · June 1, 2026
Build a Responsive iPhone-to-iPad Layout in React Native: the App Store logo as a frosted glass icon on a pink and blue gradient with bubbles
Guides 8 min read

Build a Responsive iPhone-to-iPad Layout in React Native

A responsive tablet layout changes shape, it does not just scale up. Here is how to build an adaptive iPhone-to-iPad layout in React Native with breakpoints.

Lawrence Arya · June 9, 2026