← Back to projects

Civic Tech · Personalization

Your ACT Budget, Personally
the 2026-27 ACT Budget, but make it about you

Year 2026
Stack React · Babel (CDN, no build step) · localStorage
Deployed via GitHub Pages
Live site View project →

The Original Prompt

The exact words I gave Claude to kick this off.

Build a web app where I can input details about who I am (demographics data, location, first time home owner, family, resident, immigrant, kids who attend public or private school, sports, etc) so that I can breakdown the ACT budget (look at ACT Budget at a Glance — 2026–27.md) and understand how it impacts me

Explain It Like I'm 5

How it works, why it was built this way, and the thinking behind each decision.

⚙️

What it does

You answer a few quick questions about yourself (where you live in Canberra, whether you rent or own, if you've got kids in public or private school, whether you're a carer, what sports you follow) and the app scores every headline measure in the 2026-27 ACT Budget by how relevant it is to you. Instead of wading through a 25-page PDF, you get a ranked list: "this stamp duty change scores 100 for you because you're a first home buyer," "this basketball stadium upgrade scores 40 because you're not in Belconnen and don't play basketball." Tap any line to see the plain-English reasoning, the dollar figure, and a link straight to that section of the source document.

🧱

How it's built

It's a single index.html file. React and Babel load from a CDN and JSX compiles right in the browser, so there's no build step, no node_modules, no deploy pipeline. All ~45 Budget measures live in one array, each with a small relevance function that reads your answers and spits out a 0-100 score. Your answers persist in localStorage, so closing the tab and coming back later restores your saved statement. A second file, budget-reference.html, is the official Budget at a Glance doc converted to markdown then HTML, with an anchor on every section heading, so each measure can link to the exact paragraph it came from instead of guessing at a PDF page number.

🤔

Why this approach

I wanted zero infrastructure: three static files that work on GitHub Pages or Vercel with literally no setup. No backend also meant no reason to store anyone's data anywhere except their own browser, which felt right for something this personal. The harder call was citations. I started by linking to PDF page numbers, but those turned out to be unreliable across browsers and viewers, and a couple were just wrong. Anchored HTML sections fixed that for good: every link points to a specific, verifiable heading in a document I control, with a fallback link to the original PDF for anyone who wants the primary source.

🚀

How it's deployed

All three files (index.html, budget-reference.html, ACT-Budget-2026-27-at-a-glance.md) sit in the same GitHub repo. Deploying is just GitHub Pages: Settings → Pages → Deploy from branch → main / root. No build command, no environment variables, nothing to configure. Vercel works identically if I ever want preview URLs per change.

What's Next

Where this project could go with more time and feedback.

Near-term

Add a few more profile questions I keep thinking of after the fact (e.g. specific suburb instead of just region, business type for the small-business questions), and tighten up a couple of the relevance scoring rules based on how it feels using it for real.

Medium-term

Add in additional data sources (e.g. budget statements) and build out visualisations to make it more accessible for people.

Ambitious

Build out The Local Notice properly and link it to this tool, so someone reading their personal Budget statement can jump straight to relevant local petitions, consultations, or Community Council info for their area. . Rebuild as a Next.js app on Vercel with server-side scraping of YourSay and the ACT e-petitions register, so the whole civic engagement picture, Budget measures, live consultations, and petitions, updates automatically instead of being a curated snapshot I have to maintain by hand each year.

Share Your Thoughts

Feedback, ideas, and questions are welcome — I read everything.