Aussie Outrage Launch: A Static News Site on Nuxt and Cloudflare

Beewebby has launched Aussie Outrage, an independent Australian news site covering government waste, the cost of living, the national debt and how policy lands on ordinary people. It is a fully static site built with Nuxt 4 and Nuxt Content 3, hosted on Cloudflare Workers with no database and no server code. Behind it sits a publishing pipeline that scores every story for search and AI answers, checks facts before anything goes live, and turns stories into social carousels and short videos.

Aussie Outrage: the receipts on how your money is spent

What is Aussie Outrage?

Aussie Outrage is a news and explainer site about Australian public money. Each story leads with one striking, sourced figure (a blown budget, a tender, a price rise) and links every factual claim to its source, ideally an audit report, Budget paper, Hansard or a regulator's own data. The site's tagline sums it up: "The receipts on how your money is spent."

At launch the site carries:

  • 27 published stories across sections such as Government Waste, Cost of Living, Policy Watch, Follow the Money and Debt & Deficit
  • 13 "Spending Trail" profiles of federal and state politicians, each a dated, sourced list of spending and what official reviews found
  • Live data pages: a national debt clock, a cost-blowout leaderboard at /blowouts and cost-of-living indicators on the homepage
  • 147 URLs in the sitemap, all prerendered

Why build a news site as a static site?

A static site serves pre-built HTML files from a CDN instead of generating each page on request. For a news site that hopes a story will go viral, that is the right trade: there is no database to fall over, no server to scale and almost nothing to attack.

Stories are written as Markdown, built with nuxt generate, and deployed as plain files on Cloudflare Workers static assets. The design decisions that made that work:

DecisionWhy it matters
No CMS, no database (Cloudflare D1 was considered and dropped)Cheap, fast, and survives a traffic spike
Site search runs in the browserNuxt Content ships a WASM SQLite database, so search needs no server
Pagination by path (/stories/page/2) not ?page=2Every page can be prerendered and indexed
Pages written as about.html, not about/index.htmlCloudflare serves /about without a trailing-slash redirect
Charts render to SVG at build timeBuilt with d3-scale and d3-shape; they show with JavaScript off, and each has a "Show the data" table
The debt clock is a client-side estimateA baseline figure plus a growth rate, checked against official data (below)

The whole site is styled in its own design system, "The Docket": receipts, carbon copies and stamps, condensed headlines, monospaced figures and one colour per section. It was checked with axe-core against WCAG 2.2 AA with no violations on the built site: one h1 per page, a skip link, visible focus rings, reduced-motion support and a data table under every chart.

Technical SEO built into every page

Every SEO element is generated at build time, so a new story gets all of it automatically:

  • sitemap.xml with every story, profile, section, tag and page, last-modified dates and each story's share image
  • news-sitemap.xml listing stories from the last two days, for Google News
  • Structured data: NewsArticle and breadcrumbs on stories, ProfilePage on Spending Trail profiles, WebSite and NewsMediaOrganization on the homepage, and FAQPage wherever a story answers common questions
  • Generated share images: a 1200×630 card per story (big number, section, headline) rendered at build time with Satori and resvg, used by Facebook, X, LinkedIn and Google Discover
  • Canonical URLs, Open Graph and X cards and max-image-preview:large on every page; drafts, search results and the 404 page are never indexed
  • Google Tag Manager loads on production builds only, once the page is idle, so tracking doesn't slow the first paint

The marketing automation behind it

The interesting part of this build is not the website but the publishing system around it. Most of it runs as scripts and Claude Code skills in the project repository, with the site owner approving every step that matters.

Aussie Outrage has its own SEO score, like a WordPress SEO plugin but weighted for how pages get ranked and quoted in AI answers (Google AI Overviews, ChatGPT, Perplexity) rather than for keyword repetition. pnpm seo:score marks a story out of 100:

GroupPointsWhat it checks
Answer and relevance30Keyword in title, description, a subheading and URL; the first ~60 words answer the search
Evidence and trust30Share of primary sources, figures attributed and dated, a word-for-word quote, freshness
Coverage and originality20Subtopics competitors cover, an original calculation or chart, a real FAQ
Structure12Internal links in and out, a visual, short paragraphs, subheadings
Snippet8Title and description length

The weights draw on Google's guidance on generative AI search and the Princeton GEO study, which found that adding quotations, statistics and cited sources raised visibility in AI answers by roughly 28 to 41%, while keyword stuffing lowered it. Keyword density over 2.5% is flagged as a warning, not rewarded.

A /keyword skill does the research: it expands a keyword with Google Australia autocomplete, checks which existing story already targets it (update before you write a new one), drafts or rewrites against the brief, adds an FAQ, and suggests internal links in both directions. A story isn't handed over for review until it scores 80 or more with zero blockers.

2. Fact checks and publishing guardrails

Outrage gets attention, but credibility keeps it. Facts come from primary sources that are fetched and quoted, never from memory, and each round of edits gets an independent fact check logged by date. Anything only the owner can supply (a real person's story, a right-of-reply response, a photo) is left as an [OWNER: …] placeholder.

The deploy script (pnpm run deploy) then refuses to publish if:

  • a draft's title appears anywhere in the built files (Nuxt Content ships each collection's data to the browser, so drafts are left out of the build entirely, not just hidden)
  • any published story still contains an [OWNER: …] placeholder
  • the reader-tip buttons still point at Stripe sandbox links

3. Search Console tracking on every deploy

Each deploy compares every page with its last live version and logs what changed (headline, description, FAQ, internal links, word count) in a tracker file. A weekly report then pulls Google Search Console data and judges each change at 14, 28 and 56 days on position for the same searches, impressions relative to the rest of the site, and click-through rate. Over time that shows which kinds of SEO work actually pay off, instead of guessing.

The early numbers are encouraging. In its first full week (31 October to 6 November 2026), Search Console recorded 5,919 impressions and 123 clicks at an average position of 8.4, up from 325 impressions in the partial week before.

4. Carousels and short videos from each story

A story can become social content without leaving the repository:

  • Slide carousels: a skill drafts 1080×1350 slides from the story's own facts, renders them with Playwright, and after approval embeds them in the story and readies them for Instagram and Facebook
  • Short videos: a second skill writes a voiceover from the same facts, voices it with ElevenLabs, renders a branded 1080×1920 video with animated scenes and background music (normalised to -14 LUFS), makes 16:9 and 9:16 thumbnails, and drafts captions for Reels, Shorts and TikTok

Both follow one rule: every figure comes from the published story, copied exactly, so social posts can't drift from the sourced article.

5. Data that keeps itself honest

The debt clock is only as good as its baseline. pnpm debt:check compares the site's figures with the latest AOFM and ABS data and flags anything due for a re-check after a Budget or MYEFO. It runs on every deploy and weekly on a timer that sends a desktop notification. Reader tips ("shouts") go through Stripe Payment Links, so the site takes payments while staying fully static.

Results at a glance

MetricAt launch (November 2026)
Published stories27
Politician profiles13
URLs in sitemap147
HostingCloudflare Workers static assets, no server code
AccessibilityWCAG 2.2 AA, no axe-core violations
First full week in Google Search5,919 impressions, 123 clicks, average position 8.4

Frequently asked questions

What is aussieoutrage.com?

Aussie Outrage is an independent Australian news site about government waste, injustice, the national debt and the cost of living. Every story links its facts to sources such as audit reports, Budget papers and Hansard, and leads with one headline figure.

What technology is Aussie Outrage built with?

It is built with Nuxt 4 and Nuxt Content 3 and deployed as a fully static site on Cloudflare Workers. There is no database or server code: search runs in the browser using Nuxt Content's WASM SQLite, and charts and share images are rendered at build time.

Can a static site handle a news site's traffic?

Yes. A static site serves pre-built files from a global CDN, so a story going viral means more file downloads, not more database queries. Cloudflare caches the files at the edge, which keeps pages fast and hosting costs low under a spike.

How does the SEO score differ from a WordPress SEO plugin?

Most plugins reward keyword placement and density. The Aussie Outrage score gives half its points to answering the search early and to evidence (primary sources, attributed and dated figures, quotes, freshness), because those are what get a page cited in AI answers. Keyword stuffing is flagged, not rewarded.

Can Beewebby build a publishing pipeline like this for my business?

Yes. The same approach (Markdown content, static hosting on Cloudflare, an SEO score tuned for AI search, deploy guardrails and Search Console tracking) suits blogs, news sites and content marketing for small businesses. We have already reused it for SmashConnect.

Work with Beewebby

Aussie Outrage follows our earlier Nuxt build for Project Powder, and this site, beewebby.com.au, runs on the same Nuxt and Cloudflare stack. If you want a fast website with SEO and marketing automation built in from day one, see our web development and SEO services, or get in touch.