A static website that visualizes how monthly scam losses in Estonia compare to second pillar pension contributions. Built with Astro and Chart.js, deployed to GitHub Pages.
Data is collected nightly via GitHub Actions:
- Pension contributions — fetched live from the Pensionikeskus API
- Scam losses — aggregated from police data (pre-scraped JSONL)
Both sources are merged, validated with Zod, and written to src/data/chart-data.json. Astro imports this at build time — no runtime API calls.
npm install
npm run dev # local dev server
npm run build # production build + OG image generation
npm run preview # preview production build
npm run scrape # refresh data from sources
npx vitest # run testsNote:
npm run buildrequires Playwright Chromium for OG image screenshot generation. Install it withnpx playwright install chromium.