Repository file
Can’t Explain — project brief
docs/BRIEF.md
From Can’t Explain On GitHub
Can’t Explain — project brief
Author: Colin Dixon
Canonical domain: cantexplain.au
Also: cantexplain.com.au
Repository: github.com/coldix/cantexplain
Local path: /web/cantexplain
Updated: 2026-08-14
1. Project overview
Name: Can’t Explain
One-line mission:
A fun, viral, evidence-backed “hall of ridiculous claims” that collects low-evidence, high-emotion political accusations, pairs them with original sources and immutable timestamps, and presents them with humour. Inspired by Hanson Derangement Syndrome, but open to any figure or pattern that fits.
Tone & family:
- Observational, slightly exaggerated, receipt-first humour (in the spirit of the Please Explain cartoons).
- Part of the same family as ministryofdoubt.com (“Suspicion is not proof. Authority is not proof either. Show me the evidence.”).
- Also sits alongside electiontracker.au, ozeunleashed.substack.com, and the broader Oze / Colin Dixon projects.
- Cross-link where natural. Shared design language and values where practical (evidence, independence, checkable sources).
See FAMILY.md and TONE-GUIDE.md.
2. Confirmed tech stack (do not change)
| Layer | Choice |
|---|---|
| Framework | Astro (static output) |
| Hosting / CDN | Cloudflare Workers Builds — assets-only Worker (same path as electiontracker.au). Pages remains a valid fallback. |
| Content | Markdown / MDX in content/entries/ via Astro content collections |
| Evidence | Git-committed files in /evidence/ — commit history is the immutable timestamp |
| Authoring | AI-assisted drafting; human approval only |
Why this stack:
- Already used on electiontracker.au and consistent with the family’s Cloudflare setup.
- Astro is excellent for content-heavy, static-first sites with optional islands.
- Official Cloudflare adapter exists, but this site does not use it. Official Astro and Cloudflare docs both say: if you are using Astro as a static site builder, you do not need
@astrojs/cloudflare. That adapter is for on-demand rendering (SSR, server islands, sessions). Can’t Explain is a static collection with a client-side filter — no request-time compute. - Deploy config lives in
wrangler.jsoncand points at./dist. NomainWorker entry, no bindings.
No other framework or host unless there is a clear, documented reason that outweighs consistency with existing projects.
3. Goals & non-goals
Goals
- Fast, shareable, mobile-first collection of ridiculous claims with receipts.
- Low ongoing maintenance (AI collects & drafts → owner approves).
- Clear family membership with ministryofdoubt.com and the rest of the Oze / Dixon sites.
- Launch with a solid Hanson-focused set, then expand sideways.
Non-goals
- Not a daily news site or long-form essay platform.
- Not pure rage or partisan campaigning.
- Not a heavy user-generated content free-for-all at launch.
4. Content model (entry)
Each entry needs:
- Claim / accusation (quote or screenshot)
- Original source URL + date
- Immutable evidence link (Git-committed file preferred)
- Short humorous / observational caption
- Tags (person, claim-type, year, etc.)
- Optional media (cartoon, short clip, side-by-side)
- Status:
draft|published|featured
Launch themes:
Hanson Derangement Syndrome, “Gina’s Puppet”, “No Evidence Required”, then broader.
Exact fields and examples: CONTENT-MODEL.md.
5. Repo & local structure
cantexplain/
├── README.md
├── docs/
│ ├── BRIEF.md ← this document
│ ├── CONTENT-MODEL.md
│ ├── TONE-GUIDE.md
│ ├── AI-PIPELINE.md
│ ├── FAMILY.md
│ └── ROADMAP.md
├── content/entries/
├── evidence/ ← Git-timestamped screenshots / source files
├── public/
├── src/
├── scripts/ ← entry helpers + (later) AI collection
├── astro.config.mjs
├── wrangler.jsonc
└── package.json
Local development root: /web/cantexplain.
6. Design & family notes
- Keep visual and tonal consistency with the family where it makes sense (evidence emphasis, clean typography, dark/light theme — electiontracker.au already has this).
- Can’t Explain is the fun, viral, claim-collection sibling — not a clone of ministryofdoubt.com.
- Footer / “Elsewhere” links include ministryofdoubt.com, electiontracker.au, and other relevant Oze properties.
- Homepage situates the site in the wider “show me the evidence” approach in one short paragraph, then gets on with the hall.
See FAMILY.md.
7. Launch criteria
- Both domains resolve to the site (canonical = cantexplain.au)
- Astro site deployed on Cloudflare
- Homepage explains the concept cleanly
- 15–30 strong, well-sourced entries live
- Every entry has original source + Git-timestamped (or equivalent) evidence
- Search / basic filters
- Mobile-friendly, fast, shareable
- Family links present
- Clear path for owner to add new entries
This scaffold stops before bulk content and before wiring the AI pipeline. Three labelled format-example entries exist so templates can be reviewed.
8. Scaffold status (2026-08-14)
Done in this pass:
- Repository created at
https://github.com/coldix/cantexplain - Astro static project + Cloudflare assets-only Worker config
- Planning docs in
docs/ - Entry content model (Markdown / MDX collection)
/evidence/convention with Git timestamps- Local
npm run devfrom/web/cantexplain - Homepage, hall listing, single-entry templates, about, method
- Family cross-links and tone guidance
Stopped, as requested, before bulk content and before complex AI pipeline wiring.