An Italian and English one-page data story about the Italian pension system. It combines official projections, observed demographic data and a clearly labelled purchasing-power example. The countdown points to the projected 2036 spending peak, not to a collapse date.
Six scroll-driven scenes use transparent cut-paper illustrations, accessible HTML and SVG data. Motion follows reading progress, never hijacks scrolling, and falls back to a static presentation when reduced motion is enabled.
The project uses Vite, React and TypeScript.
pnpm install
pnpm devUseful checks:
pnpm test
pnpm lint
pnpm buildThe site loads the archived Italian data pack from public/data/italy.json at runtime. src/lib/auditedEvidence.ts adds reviewed Istat base-2025 demographics and a separate RGS 2026 spending update. The timer and chart retain the dated EC 2024 scenario. The international pack remains in the repository but is not required by the published story. Interactive inputs stay in the browser and are not submitted anywhere.
The 1 October 2026 audit records verified numbers, source pages, implemented corrections and issues in the frozen research files. The source-link audit preserves HTTP results, including access restrictions that must not be treated as broken links.
The four-control personal example uses an explicit editorial adjustment of average replacement rates by contribution years. It assumes work to age 67, constant real pay and 13 payments. It does not calculate individual pension entitlement. Results stop beyond the official 2070 horizon or below 20 projected contribution years. Increasing assumed inflation changes the nominal amount while preserving the example's purchasing power in 2026 euros.
Railway builds the production image from Dockerfile. The build stage compiles the Vite app, then Caddy serves the generated dist directory on Railway's assigned PORT. The service exposes /health for deployment checks and falls back to index.html for client-side routes.
Live site: italian-death-clock-production.up.railway.app
Deploy the public GitHub repository and select the branch to publish:
Zer0codestuff/Italian-death-clock
No runtime environment variables are required.
src/App.tsxcomposes the six scenes, scroll choreography and interactive example.src/styles.cssowns the responsive black, warm-white and signal-red visual system.src/lib/statementCopy.tscontains the complete Italian and English narrative.src/lib/storyMath.tscontains bounded interpolation, the editorial contribution adjustment and inflation conversion.src/lib/auditedEvidence.tscontains supplemental reviewed evidence, named source references and shared spending checkpoints.src/lib/i18n.tsxowns the persistent language state and document metadata.src/lib/language.tsexposes the language context and hook.public/assets/contains six transparent editorial illustrations.src/lib/data-integrity.test.tsand related tests check data, sources, localization and story calculations.- The original three research notes and two JSON packs are frozen inputs. The dated audit documents their limitations without rewriting them.
The header language control switches all public copy, chart labels and number formats between Italian and English. The selection stays in browser storage. Source links, truth labels, years, units and scope notes remain beside the claims they support.