TriStar
Civic product · Data viz · 2026

Le Train pour Tous

Making the price of a train ticket legible to a citizen in four seconds.

Visit live site
A horizontal bar decomposing an 80 euro ticket into seven labeled cost segments
Client
Le Train pour Tous
Role
Design + Engineering
Timeline
Ongoing · launched Q1 2026
Stack
Next.js 16 · MDX · Recharts · Tailwind 4
The thesis, in four lines.
Problem

An 80 € ticket is sold as a number. It is, in fact, a stack of policy decisions.

Tolls, VAT, traction electricity, rolling stock. Citizens deserve to see the stack, and a movement campaigning to lower train prices needed an instrument capable of showing it.

Le Train pour Tous is an independent citizen movement defending two reforms: aligning VAT on rail travel with other essential goods (5.5 %), and capping SNCF Réseau tolls at 22 % of the ticket. The site had to make the case in seconds, not paragraphs.

The cost decomposition bar with one tooltip open
The 80 € ticket, split into seven categories. Every figure on the page carries a footnote; every footnote carries a source.
Decisions: Typography

The page treats numbers as quotations.

Every figure carries a footnote; every footnote carries a source. Type sizes were chosen so the visitor reads a figure and its provenance in the same glance, no toggling, no modals. The methodology file is in the repo, not behind a paywall, and the page links to it from every claim that exceeds a single decimal.

Decisions: Data viz

The breakdown bar is the product.

It earns the full width of the screen because it earns the full attention of the reader. A simulator below the bar lets the visitor replace the reference Paris to Lyon trip with their own; the bar shrinks live to the new price. We rejected pie charts (small angles, no comparison), stacked columns (vertical reading is slower), and donut variants (decorative). A single horizontal bar is the shortest distance between the question "where does my 80 € go?" and an answer the reader can repeat.

The hero interaction: 80 € lands, splits into seven segments, then sorts itself by share. The largest segment, tolls, gets the loudest colour.
Simulator filled in with Paris to Lyon, showing current and post-reform prices
Simulator: same trip, before and after reform.
Train versus plane CO2 comparison with a slider
Comparator: train vs plane, by distance and emissions.
Table comparing VAT on train tickets across European countries
Comparator: where French rail VAT sits in Europe.
Close-up of a sourced footnote on the methodology page
Methodology: every claim ends in a citation.
Type a trip. Toggle the reform. The bar shrinks live from 80 € to 64 €.
Engineering

A site whose stack matches its ethics.

Next.js 16 with MDX, Recharts for the bar, Tailwind 4 for the type. No analytics that follow the visitor; no CMS we have to babysit. Posts are MDX files in the repo with a YAML frontmatter, the same lever every article uses. The full methodology lives at the project root as a single Markdown file, designed to be forked by other movements who want to apply the same protocol to a different price.

The two reforms, expressed as the two segments they shrink, and the cumulative 16 € they return to the traveller.
Outcome
Live
Launched Q1 2026
Open
Methodology forkable
2
Reforms, fully costed

Le Train pour Tous is live and indexed. The methodology is public, sourced, and forkable, which is what a civic product is supposed to be. The next milestone is a department-by-department impact map: type your home commune, see what each reform saves a household per year.