MicroNode
MicroNode is the static edition of this platform: the public record — the archives, ledgers, field guides, and investigations — pre-rendered into plain files that any web server can serve. No database, no application processes, no accounts. Shared hosting can serve it. An old tablet can serve it. A USB stick handed across a table can serve it.
A platform that lives in one datacenter can be turned off by one company — we know because it happened to us, twice in one week, in August 2026 (the receipts are on Pulse, our public downtime ledger). The answer isn't a bigger datacenter. It's making the public record cheap to copy and easy to serve, so taking down any single machine accomplishes nothing.
MicroNode is that copy. It is a build artifact of the full platform, regenerated from the same code and data — never a fork. What can't work without a server (accounts, posting, live checks) is omitted or degrades honestly with a note saying so, rather than pretending with dead forms.
The static edition. Serve it from shared hosting, a tablet on a shelf, or hand it around on a USB stick. This page describes exactly what's in it.
The same static edition, always on, at a permanent public address — a cheap box or hosting account that never leaves the house at 5 pm.
The full stack — database, API, memberships, live modules — on hardware your community owns. Everything on this site, out of your own building.
| Module | Policy | Why |
|---|
full = works entirely from static files · degraded = ships and works read-only; anything needing the live API fails visibly instead of silently · omitted = needs the full platform, so it's left out rather than stubbed. The manifest is the honest record: it lists every omission and the reason.
| Module | Reason |
|---|
The exporter lives in the platform's own repository and assembles the whole tree in one command:
python3 scripts/export_micronode.py # builds micronode/ — the full static tree
Test it the way it will actually be hosted — as dumb files:
cd micronode && python3 -m http.server 8000
Every page in the export is checked against exactly that condition before it ships: if a module needs the live API, it must say what's missing on screen and disable any form that would silently throw away input.
The endgame in our redundancy plan is Tier 3: small, physically-present machines living in the communities they serve — a shop counter, a library corner, a garage shelf. The reference form is an arcade cabinet: familiar furniture nobody questions, room inside for the electronics, and a screen that doubles as the town's public notice board. Below is the reference schematic. Nothing here is exotic — every part is off the shelf, and the software load is exactly the tree this page describes.
| # | Part | Reference pick | ≈ Cost |
|---|---|---|---|
| ④ | Single-board computer | Raspberry Pi 4 (2 GB is plenty) or Pi 5; any thin client / old laptop board also works | $45–80 |
| ⑤ | Storage | 256 GB+ USB SSD — the full tree is under 100 MB; the rest is room for the market archive to grow | $25–40 |
| ② | Screen | 19–24" monitor, secondhand; 4:3 looks right in a cab | $0–50 |
| ⑥ | Power ride-through | UPS HAT or small line-interactive UPS — outages are the whole reason this exists | $25–60 |
| ③ | Kiosk input | Arcade trackball + 2 buttons, USB encoder | $25–35 |
| ①⑧ | Cabinet + power | 18mm plywood flat-pack, or a gutted donor cabinet; one grounded cord | $0–150 |
| Total | device-on-a-shelf works with just rows ④–⑤ — the cabinet is the community form | $120–400 |
Software load, in order:
flash stock Raspberry Pi OS Lite → install Caddy → copy the MicroNode tree to
the SSD → Caddy serves it as plain files (the same one-liner as the test above)
→ browser in kiosk mode pointed at http://localhost/ → advertise
micronode.local over mDNS → optional: put the Pi's own Wi-Fi in
AP mode so the node is readable with the street's internet down → nightly
rsync pull from the origin, outbound only, so the host forwards no
ports and publishes nothing about their network.
Honesty rule, which is also the spec: a node that joins the network joins the Pulse ledger and gets probed from outside like every other machine we run. No cabinet claims more uptime than its ledger shows. None of these cabinets exists yet — this page is the build plan, and the first build will be documented here when it's real.
This work is dated so the record can be checked, the same way we date everything else.
| Conceived | during the Namecheap Phoenix datacenter power outage that took the whole platform dark — the two-editions-one-codebase architecture (MicroNode as a build artifact, never a fork) was decided the same day, mid-outage. The outage itself is entry one on Pulse. | |
| First export built | the exporter assembled its first working tree — 14 modules — the same night, and a copy was serving from Reykjavík before the workshop that evening. | |
| This page published | MicroNode became a named module on the main platform, with the arcade-cabinet reference schematic. The export set had grown to 36 modules. |
You're reading this on the main platform, out of a rented US datacenter — we say where things physically are, always. A copy of the MicroNode tree also serves from a rented shared-hosting account in Reykjavík at localnode.is, which fronts the platform's failover switchboard. Neither is yet a box we own on a shelf — that's the rung we're climbing toward, and we'll say so plainly when it's real.