Short version: I'm not a software developer. This whole project (the charts, the data pipelines, the written analysis) was pulled together by directing an AI coding agent, hosted for free, and fed entirely by public data. The interesting part isn't the code. It's how little it now takes to make something like this, and what that means if you've ever fancied it and assumed you couldn't.
So this page isn't a victory lap of clever engineering. It's a plain list of the parts, what each one costs (nothing), and the one useful idea worth taking away.
The honest bill of materials
Everything here is free, and none of it required me to hand-write much:
- Claude Code — an AI coding agent. I described what I wanted in plain English; it did the research, found the data sources, wrote the HTML, JavaScript and Python, ran the tests, and pushed the result. My job was direction, judgement and review: deciding what to build, sanity-checking the numbers, and saying "no, do it this way."
- GitHub Pages — free static hosting. The site is plain files; there is no server.
- GitHub Actions — free scheduled automation. A job wakes up, refreshes the data, and redeploys, so the pages stay current with nobody touching them.
- GitHub Models — free LLM inference, called from inside that job with the repository's own token. This writes the short analysis next to each chart. No OpenAI account, no API key.
- Free public data — FRED (the St. Louis Fed), the World Bank, Our World in Data, CoinGecko, mempool.space and others. All public, all keyless.
A few years ago a self-updating, AI-narrated dashboard meant a developer, a server and a budget. Now it needs a clear idea, free tools, and an afternoon spent directing an AI. That shift is the whole point of this project.
No backend, no keys, about zero per month
There is no server and no database — not even a build step. Each page is HTML, SVG and JavaScript that loads in your browser and fetches its data from free public APIs on the spot. Every panel falls back to "n/a" if a feed is slow or blocked, so one flaky source never takes the page down.
And there are no API keys to leak, because nothing in the stack needs one. The only credential anywhere is the token GitHub injects into the automation at runtime; it's never committed and is masked in logs. View source on any page and you won't find a secret, because there isn't one.
The one idea worth stealing: the model writes prose, the code owns the numbers
The analysis beside each chart is written by an LLM — but every figure it's allowed to mention is computed in plain code first, and it's explicitly forbidden from inventing or predicting a number. So the words always agree with the chart, and it never hallucinates a statistic. If the live model is unavailable, the text falls back to a version composed from the last good numbers rather than a guess.
That separation is the difference between AI that earns trust and AI that quietly erodes it. An LLM is excellent at turning numbers into a sentence a human wants to read, and unreliable as the source of those numbers. Keep the two jobs apart and the result is honest; blur them and you've shipped a confident liar with your name on it. It is a small demonstration of basic LLM analysis done responsibly, not a claim that the AI is doing anything clever.
Take it and point it at your own numbers
It's open source under the MIT licence. Fork it, swap in whatever number your audience cares about, and you've got a self-updating, AI-narrated dashboard of your own, built the same way: by directing an agent rather than writing it all yourself.
If you want the engine room, the technical reference has the full mechanism for the Bitcoin model: the maths, the spiral mapping, every indicator formula, the data sources, and how it all runs without a single API key.
Educational only. Not financial advice.