Projects
Alongside writing about what AI is, this is what I've actually
built. Each project is told as a practice note — dated, honest about status,
and linked to the source where it's public.
CouncilBeacon In progress
A public information portal that helps everyday NSW residents actually use, understand, and keep up with their local city council.
- What
- A consumer-facing site that pulls each NSW council's scattered official information — rates, bin collection days, finances, safety, elections, public consultations, report-it links, recent updates — into plain-language, source-backed pages. Users find their council via map or search, browse local essentials, and subscribe to email digests or browser push to stay in the loop. It holds a strict content standard: facts only, every figure carries a source and an as-at date, neutral wording, no conclusions.
- How
- Next.js 16 (App Router) + React 19 + TypeScript + Tailwind v4, deployed on Vercel. Postgres stores subscribers, push subscriptions and ingested updates; Resend sends transactional and digest email; web-push (VAPID) handles browser notifications; Leaflet powers the council map. A news-ingestion pipeline runs on Vercel Cron to crawl each council daily and optionally calls an LLM for neutral summaries, degrading to deterministic truncation when no key is present. The engineering hallmark is "runs with zero config" — every integration degrades gracefully when its env vars are missing; the hard part was standardising 80+ councils' heterogeneous official sources, captured in a reusable Claude Code skill.
- Outcome
- Around 80 NSW councils onboarded in batches with structured datasets; core features — find-your-council, per-topic pages, a "rates explained" page, subscription / push, and the crawl-and-summarise cron — are all built and running. Actively expanding council coverage.
- Date
- 2026-06
councilbeacon.com.au →
AI Novel Studio In progress
A human-in-the-loop pipeline for writing web fiction fast with AI — grounded in 7,800+ hours of my own reading taste, with a full novel as the live test.
- What
- The project starts from reading: it uses the WeRead API to pull my bookshelf and reading history (~7,865 hours, 1,437 reading days) and distils them into a six-point "taste model." From there the real goal is production — a human-in-the-loop workflow that uses AI to draft long-form fiction fast, with "reader taste = writing standard" at its core. To validate the tooling I am actually writing a novel with it (4 chapters finalised, drafts through chapter 8).
- How
- The core is a self-designed P-1 → P4 pipeline (market / red-line checks → two-way deconstruction of reference books → a layered story bible with LOCK/ROLL fields → outline → detailed beats for the opening chapters → a validation gate → rolling production), backed by templates, a continuity ledger, character cards, multi-lens review and quality gates. It is a Markdown-based knowledge repo driven by Claude Code / agents, with a Python skill (chapter merging) and a JS workflow (unattended overnight review runs). The hard parts are long-range consistency, killing the "AI smell" in the prose, and navigating China's AI-content regulations — each researched and turned into an explicit strategy.
- Outcome
- The pipeline runs end to end on real output (the opening chapters passed a full release gate), the first proof the tooling works — but it has not passed the reader-validation gate yet: no real test-reader data, the novel is unfinished, and there is no product or revenue. Actively iterating.
- Date
- 2026-07
Benefits Radar In progress
A deadline-radar for government benefits: personalised checklists and reminders so Australians stop missing the A$10bn+ in support they never claim each year.
- What
- Tackles a real gap — Australians miss billions in government benefits every year, and around 90 "you only get it if you apply" programs have no personalised official reminder. The product is a 2-minute screener → personalised benefit checklist → tick-to-track → "you still have $X unclaimed" → email and calendar reminders. A first-class, hard-to-copy feature is filtering out dead / expired programs (every item carries a last-verified date), since negative knowledge is exactly where generic AI and content farms get it wrong.
- How
- Validation-first, zero-cost cold start: prove demand through free "benefit calendar" material packs and a sign-up funnel before any paid spend. The real moat is a change-detection pipeline that continuously tracks federal / state rule changes and deadlines — every rule carries an official source URL. So far I have built source-backed rule libraries for NSW (~90 active + 14 closed) and VIC (~65 active), a Phase-0 validation plan with fixed go / kill thresholds, and the scaffolding for a web MVP (landing + screener + checklist + email + calendar feed, PWA).
- Outcome
- Live at benefitsradar.com.au, in Phase 0 (zero-cost validation) — rule libraries, validation plan and web MVP all shipped; now validating real demand before scaling.
- Date
- 2026-07
benefitsradar.com.au →
VoiceSpark Shipped
An always-on idea catcher: instantly turn what you say — and what you're listening to (YouTube / podcasts / online courses) — into searchable, editable text.
- What
- A lightweight web tool focused on personal idea capture and study notes — not long meeting recordings, but 30-second to 5-minute "fragments." It records your microphone and system audio at the same time so you can take notes while you watch; transcripts are auto-copied, editable, searchable by history, and it supports continuous auto-capture.
- How
- A pure front-end app (vanilla HTML/CSS/JS with Web Audio / MediaRecorder, IndexedDB for local storage, installable as a PWA) paired with a FastAPI backend, with transcription via Google Speech-to-Text. Privacy-first: audio is only uploaded during transcription and never stored. The hardest parts were all in browser audio — especially iOS/Safari's limited support for system audio — and mobile recording stability took many iterations.
- Outcome
- Live at voicespark.app and actively maintained, with 100+ iterative feature releases.
- Date
- 2026-01
voicespark.app →
GitHub →
PickupAI Paused
A 24/7 AI phone receptionist for Australian tradies: answers calls automatically, collects job details through natural conversation, and texts the lead to the boss.
- What
- A multi-tenant AI phone reception system: Twilio handles inbound calls and SMS, OpenAI Realtime drives live voice conversation to collect job info, with a boss-facing lead dashboard, admin console, Stripe subscriptions with a 14-day trial, a landing page and demo flow, plus a set of scraping scripts for free lead generation.
- How
- TypeScript / Node + Express, SQLite (with a PostgreSQL fallback), dockerized and deployed on Railway. The hard parts were latency and barge-in handling for real-time voice, and Australian phone-number compliance (address / regulatory bundles).
- Outcome
- Core functionality works end to end and the live site stays up as a demo, but after weighing the market against the effort I paused it — no current plans to push further. Published as a complete "building an AI voice SaaS from scratch" case study.
- Date
- 2026-04
getpickupai.com.au →
GitHub →
Explorations in validation
A couple more product ideas I'm still validating before writing much code — deliberately kept at the research stage until demand is proven: a FIRB vacancy-fee compliance helper for foreign property owners, and a concert telephoto-phone rental side-project. Each has market research, a compliance analysis, and a lean validation plan; neither has shipped yet.