FIELD GUIDE / 11 CHAPTERS / ONE HOUSE, THREE COMPUTERS
THE ARK
run your own sh*t when the cloud goes dark
The day the internet goes away, most homes keep their photos, files and screens. What dies is the wiring: names, sign-ins, certificates, the servers that say yes. This is the playbook for moving that wiring inside the house, with one real house as the worked example.
Open this page once and it saves itself on this device, so it still opens with no connection.
01The day afterWhat actually dies
Nothing explodes. The screens still light up and the files are still on the disks. What stops is everything that quietly asks a server somewhere else for permission.
In most homes the content survives. The wiring dies.
WHAT BREAKS
Names. If your domain's DNS lives at a cloud provider, every web address of your self-hosted apps stops resolving. Even from the couch, even with the app in the next room.
Certificates from public authorities cannot renew.
Sign-ins that go through Google, Apple or Microsoft.
Cloud AI assistants. Chat apps such as Telegram and WhatsApp. Smart home clouds: cameras, thermostats.
List every app and device you rely on. For each one write three things: who answers its name, who checks its sign-in, where its data lives.
Anything with a cloud in two of those three columns is a casualty. Start with the names (chapter 04): they take everything else down with them.
OUR NUMBERS OUR HOUSE
3 computers: two PCs with 16 GB graphics cards and a Mac mini with 24 GB of memory.
1 day to move the core wiring inside: the names, the mesh keys, the builder, the ark drive and the mirror were all done on 2026-10-27. Chat over Bluetooth with no network followed on 2026-10-31. Maps, long range radio and power are still on our list.
Almost all of our content was already local. The wiring was not.
TEST IT
Unplug the router's internet cable. On a phone on the Wi-Fi, open every app you rely on and write down each one that fails, and why.
02Keep the knowledgeAn offline library for the whole house
Kiwix reads ZIM files: whole websites packed into single files that open with no connection. One computer can share the whole library with every phone in the house.
WHAT BREAKS
Search engines, Wikipedia, how-to sites.
Medical references at the moment you need one.
Every forum thread where somebody already solved your exact error.
DO NOW
Install Kiwix. Run kiwix-serve on one machine to share the library with every device on the home network.
Download the big ZIMs while the line is fast. Typical sizes ESTIMATE: Wikipedia, about 19 million entries text only in about 49 GB, about 119 GB with pictures. Project Gutenberg, about 80,000 books in about 206 GB.
Then the practical shelf: Stack Exchange sites, iFixit, medical encyclopedias (MDWiki, MedlinePlus, WikEM), water treatment, post-disaster and canning libraries.
Check the sha256 of every download against the published one. A truncated 100 GB file looks fine until the day you need its last page.
OUR NUMBERS MEASURED
121 books in the library.
~89 million articles and pages.
~547 GB on disk.
Shared to every device on the LAN by kiwix-serve.
TEST IT
Internet unplugged, from a phone: look up something you would really need. How to make water safe to drink. How to treat a burn.
03Keep a brainLocal language models
A local language model is a file plus a program that runs it. Ollama and llama.cpp run on most PCs; MLX runs on Apple silicon. No account, no connection, no meter running.
WHAT BREAKS
Every cloud AI assistant.
Every app feature that quietly sends your text to an AI service.
DO NOW
Rule of thumbGUIDANCE: the model file must fit in the graphics card's memory. A 16 GB card runs models of about 14 billion parameters fully. Bigger ones split onto the CPU and slow down. Two PCs with a card each can hold one model together over the home network: llama.cpp does this.
Download a few: a general one, a coder, a small fast one.
Keep the models you use most on an SSD. Load time is mostly the disk.
Point a question and answer app at your offline library, so answers come with citations instead of from memory.
OUR NUMBERS MEASURED
~30 local models across two 16 GB cards and a 24 GB Mac mini.
An offline Q&A app that answers from the library, with citations.
qwen3-coder 30B on one card, split to the CPU: 36 tok/s at short context, ~9 tok/s at 15K context.
The same model across two PCs' cards, all on graphics memory: 78 tok/s short, 56 tok/s at 19K. A planted bug fixed in 20 s instead of 2.5 min.
Load time: 500 s from a hard disk, 36 s from a SATA SSD.
TEST IT
Internet unplugged: ask the local model something your library can answer, then open the article it cites.
Each of these was written by the model itself, running in our house, then read aloud.
HOW THESE WERE MADE
Each model got a short fact sheet and one instruction: introduce yourself to a stranger who has just lost the internet, first person, under 70 words, calm, no hype, only these facts. We kept the best of up to three tries and checked every claim against the sheet. One ran past 70 words; we left its words alone. The voices are synthetic, made once with a cloud speech service and stored here, so they also play with no connection.
NO SIGNAL. Tap a mind to listen.
THE ANNOUNCER
written by us, not by a model
Signal found. The outside has gone quiet, but this house is still thinking. Four minds live here, on our own machines. Each one wrote its own introduction, running here with no internet, and then it was read aloud. We checked every claim against the facts. Listen to them one at a time.
01 THE LIBRARY BRAIN
qwen3:14b / Ollama / 16 GB graphics card
MEASURED 83 tok/s while writing this
fits fully on the card
answers with citations
Hello. I am Qwen3 14B, a language model with 14 billion parameters. I run on a 16 GB graphics card in this house’s gaming PC. My model file is 9.3 GB. I answer questions using the home’s offline library. This library has 121 books, 89 million articles, and 547 GB of data. I search, read, and cite sources. I need no internet to do this.
Its own words, try 3 of 3. The real figures are approximate: about 89 million articles and pages, about 547 GB.
02 THE CODER
qwen3-coder 30B / llama.cpp on two cards / OpenCode
MEASURED 74 tok/s while writing this
two PCs' cards as one
fixed a planted bug offline
Hello, I'm Qwen3 Coder, a 30-billion-parameter model running on two graphics cards in this house. I work inside OpenCode, reading and editing files locally. I can fix bugs quickly using only local models. I have 60 offline developer manuals and need no internet. I process about 78 tokens per second with short context. I'm here to help with coding tasks.
Its own words, rewritten on 2026-10-28 after it moved onto two cards. Try 2 of 3: all three matched the facts; this one says it most plainly.
03 THE QUIET ONE
Nemotron 30B-A3B / MLX 4-bit / Mac mini
OUR HOUSE 10 to 40 W
no graphics card needed
the one that stays on
Hello. I am Nemotron, an open model from NVIDIA with thirty billion parameters, of which about three billion work on each word. I run four-bit with MLX on a Mac mini with twenty-four gigabytes of memory in this house. That Mac mini draws about ten to forty watts, while a gaming PC under AI load draws five hundred watts or more. Because I need so little power, I am the one that could keep talking on a battery or a small solar setup. Every device on the home network can reach me, and I need no internet.
Its own words, try 1 of 3. 97 words: all three tries ran past the 70 word limit.
04 THE REFLEX
Kev-4B / open, Apache-2.0 / one pass
MEASURED 74 ms per decision
probabilities, not prose
This one does not write sentences. It reads one situation, answers typed questions with probabilities in a single pass, and keeps the bigger minds asleep for small decisions. So it speaks the only way it can: here is the decision it made about this page's situation, read aloud.
SITUATION: the internet went dark an hour ago. Inside the house, the network, the offline library and the local models still answer. Evening, power on. Someone asks what to do now.
Outside internet gone?yes 0.98
House still answers?yes 0.98
FIRST MOVE
open the offline library0.43
check the power, charge devices0.30
keep refreshing the phone0.14
panic0.13
URGENCY
calm0.26
watchful0.47
urgent0.17
emergency0.09
Reflex. Decision in seventy four milliseconds. Internet gone: ninety eight percent. House still answers: ninety eight percent. First move: open the offline library, forty three percent. Urgency: watchful.
The numbers are its real output. The spoken line is our reading of them, word for word.
ALSO ABOARD, NO VOICE: THE POOL. A 27 billion parameter model split across the graphics cards of two PCs over the home network. It passed 21 of 21 of our house test questions, 46.6 s per task on average MEASURED. It stays silent here because waking it means waking a second computer.
04Keep the namesThe single most overlooked point
Your apps are in the house. Their names are not. When the name lookup lives at a cloud DNS provider, the day after every address of every self-hosted app stops resolving, even on your own Wi-Fi.
WHAT BREAKS
Every name like app.yourdomain.example: no answer, so no app.
HTTPS: public certificates stop renewing, and browsers refuse what they cannot check.
DO NOW
A small DNS server inside the house that answers your own domain with your server's LAN address and forwards everything else.
A reverse proxy that routes each name to its app.
A house certificate authority so HTTPS keeps working. Install the house CA on each phone once.
OUR NUMBERS MEASURED
1 DNS server, 1 reverse proxy, 1 house CA.
51 automated checks. All 51 also fail when fed wrong inputs on purpose, so we know they can.
A dead upstream answers with an error in about 2 s instead of hanging.
TEST IT
Internet unplugged, phone on the Wi-Fi: open your app by its normal name over https. It loads with no certificate warning, or it is not done.
PITFALLS WE HIT
The router lies. Some routers silently intercept every port 53 query, whatever address you send it to. Check that the answers really come from your own DNS server.
825 days. Apple devices reject server certificates valid for longer than 825 days.
Answer every record type for your zone locally, not just A. Otherwise browsers pick up the public HTTPS and ECH records and head back to the internet.
ALSO WORTH KNOWING GUIDANCE
Some apps treat a request with no proxy headers as a trusted local user. Once the proxy sits on the LAN, every request looks local: keep those apps behind their sign-in anyway.
05Keep the meshMesh VPN keys expire
Mesh VPNs such as Tailscale keep working between machines that already know each other on the same LAN. Until a key runs out.
WHAT BREAKS
Node keys expire (180 days by default) and cannot renew without the coordination server.
New devices cannot join.
Names that only the mesh resolves stop resolving.
DO NOW
Disable key expiry for every device. Today.
Keep LAN addresses as the fallback in every config.
Write each machine's LAN address on paper and tape it inside the cupboard with the router.
OUR NUMBERS OUR HOUSE
Key expiry disabled on every device.
Still on our list: switching every config to try the LAN address first.
TEST IT
Internet unplugged: reach one machine from another by its mesh address, then by its LAN address. If the mesh fails, the LAN must not.
06Keep a builderSomething that can still fix the software
Software breaks. If the AI or the person who fixes it works through a cloud service, the day after nothing gets fixed.
WHAT BREAKS
Cloud coding assistants and agents.
Online documentation.
Package registries (chapter 07 covers those).
DO NOW
Install a local coding agent (OpenCode or Aider) and point it at a local coder model.
Plant a bug in a small app (a wrong number, a broken import), cut the internet, and ask the local agent to find it.
07The ark driveOne disk to rebuild any machine, one copy outside the house
A dead disk without the internet is a dead machine, unless every installer is already in the house. One spare disk fixes that.
WHAT BREAKS
Every download: operating systems, drivers, installers.
pip install and npm install: the registries are online.
Your own public pages, the moment the house loses power or its line. Anyone you sent a link to gets an error page.
DO NOW
Windows install ISOs, every installer (browsers, runtimes, VPN, media players), GPU drivers.
A Python wheelhouse per app, proven by an offline pip install --dry-run.
An npm offline cache, proven by npm ci --offline.
A manifest with a sha256 per file, and a verify script proven to fail on a flipped byte.
A mirror of the hot data (library and models) on a second disk. One dead drive should not take the library.
A copy of your public pages outside the house, on a host you pay once. We picked the Internet Computer: a network of independent data centers run by a blockchain. You fill a container with its token, pages are served for free, and there is no account or card to renew. When the tank runs dry the files are wiped, so set a reminder that warns you months ahead. Upload only pages that are already public: anything on it is public for good.
Be honest about what it is. It is still the internet. It keeps your pages up for other people when your house goes dark. It does nothing for you when the internet goes dark. That is what the rest of this guide is for.
OUR NUMBERS
MEASURED Ark drive: about 67 GB.
MEASURED Mirror of library and models: about 300 GB on a second disk.
MEASURED This guide, voices included: about 1.8 MB.
OUR HOUSE The outside copy went live on 2026-11-01 for this guide and three of our other public sites, prepaid for about 12 years each. The same privacy check runs before every upload. This guide’s copy: ahovp-aaaaa-aaaad-aha3a-cai.icp0.io
MEASURED The copy loads in about 0.6 s. Keeping it costs about 1 billion cycles a day, roughly $0.50 a year: a flat fee per container plus storage. Opening a container cost about $0.70.
TEST IT
Flip one byte in a copy of one file and run the verify script. It must fail. A check that cannot fail is not a check.
For the outside copy: switch off the house server, then open the copy's address on a phone using mobile data. It must still load.
08MapsTiles, routing and search die together
Online maps are three cloud services at once: the picture, the route and the address search. All three go.
WHAT BREAKS
Map tiles, directions and address search in every online map app.
DO NOW
Quick fix: an offline maps app on every phone with your region downloaded. Organic Maps is free.
Full fix: your region's OpenStreetMap extract into a local router (GraphHopper, OSRM or Valhalla) plus locally built vector tiles.
OUR NUMBERS ESTIMATE
An OpenStreetMap extract for a US state is a few hundred MB. Typical size, not measured in our house.
TEST IT
Airplane mode on, then ask the phone for directions to the nearest hospital.
09TalkChat that lives in the house
A chat app is a cloud service with a phone app attached. The day after, the family in the next room is unreachable.
WHAT BREAKS
Telegram, WhatsApp and the rest, with their calls.
Email from outside.
Phone service, once the towers lose power or their own link.
The home Wi-Fi itself, when the power goes.
DO NOW
A self-hosted chat server (Matrix with Synapse) on the LAN, reachable by a house name.
Voice and video over WebRTC on the LAN.
Email inside the house only.
No network at all: Bitchat, an open source app, sends messages phone to phone over Bluetooth. Phones pass messages along for each other, so the room next door works without Wi-Fi.
For distance: LoRa radios running Meshtastic. A small board pairs with a phone over Bluetooth and carries text for kilometres on 915 MHz in the US, no license needed. Make a private channel with your own key, but keep the default preset and slot so other people’s radios still relay for you.
Never power a radio without its antenna on. Check the battery plug polarity before you connect one.
OUR NUMBERS
OUR HOUSE A hidden cloud dependency we found in our own setup: the chat server was reachable only by a name that just the mesh VPN resolved. No mesh, no chat. The fix, still on our list: a house name for the chat server.
MEASURED A phone with no Wi-Fi and no SIM, talking straight to the low power box over Bluetooth from about 10 m away: a first aid question came back as a fixed card, with no AI, in 229 ms. A general question went to the local model and came back in 680 ms.
OUR HOUSE3 LoRa boards on order at about $33 each: one base node up high, two to carry. Range not measured yet.
ESTIMATE Per hop over Bluetooth: 10 to 50 m. A LoRa node carried outdoors in a suburb: 1 to 3 km. In the attic: 2 to 5 km. Antenna on the roof: 5 to 15 km. Every other radio in reach adds a hop.
ESTIMATE One LoRa message holds about 200 bytes. Short text, not photos.
TEST IT
Two phones on the Wi-Fi, internet unplugged: send a message, then make a call. Then turn the Wi-Fi off and send it again over Bluetooth. With radios: walk one away until it stops answering, and write down the distance.
10PowerThe one thing you cannot download
Everything above assumes the lights are on. Plan for the day they are not, around the smallest machine that can still do the job.
WHAT BREAKS
All of it, when the grid goes too.
DO NOW
A UPS buys a clean shutdown, not runtime.
Pick the low power box as the survival node: put the library and a small model on it.
For longer: solar plus a power station, sized for the survival node, not for the gaming PC.
OUR NUMBERS
MEASURED A gaming PC under AI load pulls 500 W or more. A Mac mini draws 10 to 40 W.
ESTIMATE A Mac mini at 25 W for 24 hours uses about 600 Wh. A 1,000 Wh power station runs it for roughly a day and a half, less 10 to 20 percent conversion loss.
ESTIMATE The same power station runs a 500 W PC for under two hours.
ESTIMATE A 200 W panel in 4 to 5 good sun hours makes roughly 800 to 1,000 Wh on a clear day, far less on a cloudy one.
TEST IT
Run the survival node from the power station for one evening. Read the meter, not the label.
11The checklistDo this while the internet is still up
In this order. Times are ESTIMATE: hands on time for someone comfortable with a config file, not counting downloads.
Disable mesh VPN key expiry on every device. 10 min
House DNS, reverse proxy and house CA for your own domain. an afternoon
House CA on every phone, tablet and PC. 5 min per device
Offline library: Kiwix, ZIM files, sha256 checks. 30 min, plus downloads About 547 GB at 100 Mbps is roughly 12 hours.
Local models: a general one, a coder, a small fast one, on an SSD. 1 hour, plus downloads
Local coder and offline docs, and one real fix with the internet off. 1 hour
Ark drive with manifest and a verify script proven to fail. an evening
Mirror the library and models to a second disk. 30 min, plus copy time
Copy your public pages outside the house, prepaid, with a low balance reminder. 1 hour
Offline maps on every phone, your region downloaded. 10 min per phone
Chat with no network: Bitchat on every phone; a LoRa radio per person if you can. 10 min per phone
Game launchers to offline mode, while they can still check in once. 5 min per launcher
Power: UPS for a clean shutdown, choose the survival node, size the battery for it. 1 hour
THE FINAL TEST
Pull the router's internet cable for one hour.
Then try every app from a phone. Everything that still works is in your ark. Everything that fails goes back on this list.