Skip to main content

Case study · Cygnet, Tasmania · May–August 2026

There was no brief. There was a pub.

A community campaign to buy a pub went from idea to functioning digital operation in weeks. I built the machinery around it as the problem unfolded.

commercial deadlinecommunity politicsprivate datamoney in motionno stable requirementsworking system

01 / No brief

Discovery and delivery had to happen at the same time.

The Commercial Hotel—the Bottom Pub to anyone local—was closed. People in Cygnet wanted to know whether the town could buy it together. That simple question concealed almost everything that had not yet been decided: ownership structure, money, governance, appetite, legal boundaries, operating model, and even what could honestly be said in public.

The campaign needed a credible public face immediately. Then it needed ways to listen, organise, publish, protect people, test claims, move information between systems, and keep all of that aligned while the facts changed underneath it.

There was no finished specification to implement. Each answer exposed the next missing piece. The work was to understand the problem quickly enough that the infrastructure could appear before its absence became the bottleneck.

3 months
idea → live campaign → acquisition attempt → archive
543 responses
across four instruments
56 artefacts
in the verified public archive
13 August
the bid failed. The research, the record and the system persisted.

02 / What appeared, and when

The requirements changed repeatedly, sometimes within hours.

Not every commit. Fourteen moments where the problem changed and working infrastructure appeared behind it.

  1. May 9 19:01

    Claim scanner, research vault, proposal drafts and a public site—four commits in the same minute.

    By midnight the briefings rendered as pages and the legal hedging had been replaced with cited legislation.

    9 commits
  2. May 10 14:58

    Expression-of-interest form wired to a database.

    Security headers, SEO, structured data and an offline-capable shell followed before midnight.

    36 commits
  3. May 18 17:35

    Contact intake: form, database, triage, email and issue tracker—landed inside three minutes.

    The working group needed somewhere to put what people were telling them. The admin vault and members area arrived the same evening.

    57 commits
  4. May 19

    EOI admin panel and CSV export. Property watchdog. CI. Public status page. Admin cockpit. Public and admin search.

    Each one working before the next began; the last of them landed at 23:18.

    83 commits
  5. Jun 2 13:23

    Financial feasibility survey: public form, endpoint, schema, consent handling, notifications.

    By 16:31 the EOI flow and news archive had their own pages, the media section was rebuilt and the navigation changed site-wide.

    19 commits
  6. Jun 4 01:16

    Community survey. Admin result pages for both surveys by 02:31.

    The financial survey was renamed the Bottom Pub Pledge—the word the campaign would live on for two months.

    39 commits
  7. Jun 8–10

    In-house mailing list merged at 15:06. Full site replatform started at 15:18; cutover merged two days later.

    Live site, live forms, live database—none of it paused.

  8. Jun 12 13:05

    Brief, assumptions and CI changed state.

    The Commercial Hotel was formally listed. The research stopped being hypothetical.

  9. Jun 24

    Eight-day acquisition sprint kit: feasibility study, adviser memos, finance figures, guardrail checklist, supporters strategy.

    Pledges passed $1 million the same day.

    18 commits
  10. Jun 28 13:48

    Final pledge system: worker, database, admin panel, homepage call to action, community loan tier.

    Drafted for review at 13:48; live with launch copy by 19:19.

    27 commits
  11. Jul 7 – Aug 17

    One automated commit a day.

    Six weeks of waiting on other people’s decisions.

  12. Aug 13

    The offer failed.

  13. Aug 18 18:26

    Outcome published. Intake endpoints closed at 18:52. Public archive—two tranches—by 21:25.

    Every page that had been asking for support now had to say so honestly.

    19 commits
  14. Aug 19 17:42

    Community findings brief specified. Rendered at build time, with suppression rules and privacy tests, at 18:13.

    Thirty-one minutes. The linkage bug that turned fourteen people into one was found and fixed before 23:00.

    82 commits

Dates and times from the project’s commit history, Hobart time. Commit counts are per day.

03 / Judgement

Three moments from the same months.

01

Fourteen people quietly became one.

Fourteen survey responses shared the same placeholder in the name field. An early linkage pass interpreted that shared value as one identity and produced a single, wildly prolific respondent. The error was caught before publication; identity matching was narrowed to exact email, and the failure became a permanent check.

Fast analysis is useless if the system invents a person who never existed.

02

Removing names does not make a small town anonymous.

A business, family relationship, health circumstance, or recognisable anecdote can identify someone just as effectively as a name. Free text was therefore reviewed by hand before publication. Proper nouns were examined, risky details generalised or removed, and small counts suppressed. Private words went in; only safe aggregates came out.

The constraint wasn’t “strip identifiers.” It was “do not expose a neighbour.”

03

The bid died. Every public claim changed with it.

On 13 August the offer failed. Copy that had been accurate days earlier was suddenly asking people to support something that was no longer happening. The site could not publish a sad update and leave stale promises behind; it had to change state.

Homepage, forms, footer, structured data and thirteen briefing pages changed in the same pass.

04 / After

The offer failed on 13 August.

The research still exists. The community record still exists. The infrastructure changed state and kept working.

Three months earlier, none of it existed.