← Back to writing
& Whatever · Jul 3, 2026 · 6 min read

I Built My Son a Visual App With No Server, No Login, and No Subscription

My son doesn’t read instructions. At seventeen, he’s on the medium-to-severe end of the autism spectrum, semi-verbal, and he learns best through pictures. Show him a photo of the tasks he needs to do and he knows exactly what to do. Hand him a written list and you’ve handed him anxiety.

For years my wife has worked on and perfected a visual task board — what he earns when he achieves his goals — and for every task we teach him, he gets a printed visual task list. Once he has mastered it, we move to instructions. Any time we travel, he gets something similar: a visual schedule of what’s coming. That alone lowers his anxiety.

I have explored plenty of apps for this, and there are some tremendous ones out there. But my biggest problem has always been reliability. Every autism parent carries the same worry — who will take care of him once we are gone — and anything we build his life around cannot depend on a subscription, or on an app that goes out of support. And we have a deadline: we are moving back to India next year, and whatever we set up has to keep working through that move and be simple enough for any developer to take over.

We do paper visuals today, but long term we want to move him to an app — one we can use now and hand over to his future caregivers later. He loves his iPad, so whatever we built had to work on his iPad or any computer.

So I built him an app using Claude. And the most important decisions I made had nothing to do with features.

The Requirement Nobody Puts on a Spec

Every app I evaluated before building my own failed the same test. Subscriptions that lapse. Accounts that need passwords. Servers that go down when the startup pivots or dies. Gamification — streaks, scores, timers — that turns a calm routine into a source of pressure. My son doesn’t need a streak counter. He needs the same six photos, in the same order, every single morning, for the next decade.

So I wrote one requirement above all others: the app must run untended for years. No server. No account. No subscription. No update I forget to install. If I get hit by a bus, it keeps working. If the hosting company disappears, it keeps working. It lives entirely on his iPad, and the iPad owes nothing to anybody.

That single constraint made every technical decision for me.

How It Actually Works

The app is called Visual Companion, and the architecture is deliberately boring.

It’s a progressive web app — a website you install once from Safari using “Add to Home Screen.” After that first load, a service worker keeps the entire app cached on the device. Turn off Wi-Fi forever and nothing changes. Every activity, every step photo, every audio clip lives in the browser’s local database (IndexedDB), stored as raw images right on the iPad. Nothing is ever fetched from a network.

For my son, it’s a calendar of picture cards. He taps today, taps an activity, and gets one big photo at a time with a short line of text, a read-aloud button, and one big Done button. Photos can carry arrow callouts and setting chips — his heat-press activity shows the temperature and time exactly like the printed card it replaced. When he finishes, there’s a gentle “All done!” No scores. No timers. No way to fail.

For us, there’s a guardian mode behind a PIN: build activities, take photos, record your own voice for each step, assign days of the week. And one feature I consider the most important in the whole app: Export. One button produces a single plain JSON file containing everything — every activity, photo, and audio clip. Import it on any other device and the whole library comes back. That file is the survival mechanism. It’s also, frankly, the handoff mechanism — the thing a future guardian imports on a future device, long after I’m not the one managing his routine.

There is one AI feature — a question box that answers from his stored activities. It runs through a tiny serverless relay so the API key never touches the device, and it’s built under a strict rule: it is allowed to die. If the relay vanishes, the app shows a gentle “not available right now” and everything else works exactly as before. The AI is a guest in this house. The routine is the resident.

I built the whole thing with Claude Code over a few evenings, and we have slowly started testing it. The timing matters: he finishes school this year. School gave him a predictable schedule; after that, he has none — and that gap is exactly the kind of thing that spikes his anxiety. He needs predictability. He needs a boring routine. That’s the key to his calm.

The real test comes next year, when we move to India — new home, new caregivers, new everything. If his routines survive that move because they live in one file and one app on his iPad, then this app has done its job.

If You Want This for Your Family

I’m releasing it as open source under MIT — free, no strings: github.com/leogift80/visual-companion

A note on timing: the repository is still private while we test it with our son. Once it has proven itself in daily use, I’ll flip it public — if the link doesn’t work yet, that’s why. But if you want it for your family right now, just leave a comment or reach out and I’ll make it public immediately. No waiting on my timeline when someone actually needs it.

When it’s public, here’s all it takes — you don’t need to be a developer, but you’ll want one developer-hour: clone the repo, run npm install and npm run build in the app folder, and drag the resulting dist folder onto any free static host — Cloudflare Pages and Netlify both work and cost nothing. Open the URL in Safari on the iPad, Add to Home Screen, and you’re done. It loads once and then works offline indefinitely. The AI relay is optional and separate; skip it entirely and the app doesn’t care.

This isn’t a finished product, and I’m not pretending it is. It’s something we will keep testing and iterating with him over the next couple of years — through the end of school, through the move, through whatever his routines grow into. What I’m sharing is the foundation and the philosophy; the app will keep earning its place one morning at a time.

The Takeaway

We’re drowning in software built to hold our attention and bill our credit cards. The most valuable thing I built into this app is its ability to be abandoned — by me, by its host, by the entire industry — and keep doing its job anyway.

Software for vulnerable people should be built like a laminated card: no dependencies, no expiry, no one to call.

It should just be there tomorrow.

Written by the nerd

Photography, choral music, PKM, and whatever else. New posts most weeks — read them on Substack.

Keep reading

Southern California Landmarks – Part 2 Laguna Beach Pirate Tower

Southern California Landmarks – Part 1 Angels Gate lighthouse

Visual Companion: How to Set It Up for Your Family