The house
runs itself.

Family OS is a self-hosted operating system for the most demanding home on earth — the school run and the perimeter drones, the grocery list and the microgrid. Seventy-five modules. One interface. Hardware you own.

Illustrative overlay · the real UI is below
The actual interface

Not a rendering.
The real dashboard.

Everything below is the product's own design language — a Next.js app that runs on a mini-PC in a closet. What you're seeing is the live component system with seeded demo data, ticking in real time.

hub.local:3000 / dashboard
SARAH · PIN ✓

Good evening, Sarah

MODE · HOME
Tonight 3 events
nowMaya — soccer practiceWestlake field
18:30Family dinner — taco nightmeals · planned
19:15Eli — recital rehearsalpickup 20:00
21:00Trash nightupkeep · reminder
Power live
Use3.24kW
Solar1.86kW
Battery84%
Grid0.00kW
Lights 12 on
Kitchen72%
Great room45%
Patio60%
Kids' wing25%
Climate auto
71.4°F
set 71° · main floor
Humidity46%· AirGood
Cameras 9 online
DRIVE
POOL
GATE
Activity ledger
Alarm armed · stay Pool 84.1° River 4.2 ft · normal Wi-Fi 41 devices Backups 03:00 ✓
Seeded demo data — the layout, tokens and components are the production app's Next.js 16 · React 19 · TypeScript · runs on a mini-PC
One day, start to finish

It runs the day
you actually live.

Scroll through a Tuesday. The house wakes before you do, empties without a checklist, banks the sun while you're gone, and puts itself to bed after you're asleep.

05:58
The house wakes first.

BRIEFING
Security · every acre

And the night shift
no one sees.

Cameras, thermal, buried perimeter sensors, patrol drones, radar — fused into one live picture of the property. Click a mode and watch the whole estate answer. This is a live demo, drawn frame-by-frame in your browser.

Family OS · Command
⚠ Lockdown — perimeter sealed · drones airborne · all feeds priority
MODE HOME PERIMETER SECURE DRONES 2 PATROL
Live property · illustrative
Radar 6 contacts
Power draw 3.2 kW
RF spectrum 2.4 / 5.8 GHz
Event log live
CAM 02 · GROUNDS · EAST WALKREC
AI TRACKING · PERSON
CAM 04 · THERMAL · TERRACEREC
IRONBOW · HEAT SIGNATURE
CAM 07 · DOCKREC
2 VESSELS · MOORED
GATE CLOSED ALARM ARMED · STAY SENSORS 24/24 UPS 100% Live demo · illustrative data · footage: licensed stock
The catalog

Seventy-five modules.
Nine systems. Zero stubs.

Not a roadmap — routes in the product. Every node below is a real module sharing the same storage engine, the same API conventions, and the same design system. From Allowance to Aviation.

75
modules · live count
Move your cursor through the constellation
Ask · command · automate

It speaks house.

The assistant reads the live state of the home and acts on it. It turns plain sentences into automations. Point it at any OpenAI-compatible endpoint — a local model on your own hardware included — or run it fully offline on built-in heuristics.

Assistant offline heuristics · no cloud
alerts

Escalation that won't give up

Outbound alerts walk a chain until a human acknowledges: push first, then SMS, then a phone call. Quiet hours respected — unless it's a water leak.

PUSHSMSCALLACK ✓
recognition

It knows who's home

Familiar faces and plates get logged, not flagged. Strangers at 2 AM get the full treatment — camera track, drone eyes, and your phone buzzing.

FACE · NANA ✓·PLATE · 4KX-889 ✓·UNKNOWN → TRACK
bring your own model

LLM optional

One env var points the assistant at any OpenAI-compatible endpoint — a llama.cpp box in the rack, Ollama on a mini-PC, or a cloud key if you choose. Unset it and everything still works.

FAMILYOS_LLM_URLyour model
For the engineers

Built like infrastructure,
not a weekend script.

Every one of the 75 modules is the same vertical slice: typed domain, Zod at every boundary, file-backed storage you can read with your own eyes, and a provider seam where real hardware plugs in. This is the actual source:

src/lib/lights/provider.tsTypeScript · verbatim
import type { Light, LightStatePatch } from "@/lib/lights/types";
import { mockLightsProvider } from "@/lib/lights/mock-provider";

/**
 * The control surface every lighting backend implements. The UI and API only
 * ever talk to this interface, so swapping the mock for a real integration
 * (Home Assistant, Hue, etc.) is a one-line change in `getLightsProvider()` —
 * no route or component touches a concrete backend.
 */
export interface LightsProvider {
  readonly id: string;
  listLights(): Promise<Light[]>;
  getLight(id: string): Promise<Light | null>;
  setState(id: string, patch: LightStatePatch): Promise<Light | null>;
}

/**
 * Resolve the active lighting provider. Today this is always the file-backed
 * mock. When real hardware is wired up, branch here on a stored config
 * value (e.g. `lights.provider` in data/) and return the matching impl.
 */
export function getLightsProvider(): LightsProvider {
  return mockLightsProvider;
}
Unedited file from the repository — every device domain has this seam
One request, end to end
0
lines of TypeScript
0
API routes
0
source files
0
hardware provider seams
0
modules · zero stubs
0
external databases
Local-first storage

Versioned JSON on disk — human-readable, diffable, backed up with rsync. No database to babysit.

Zod at every boundary

Every API payload and every file load is schema-validated. Bad data bounces at the door, typed end to end.

Guarded mutations

Per-person PIN auth with sessions. Every write passes a guard and lands in the activity ledger.

Real integrations

Ring cameras via ring-client-api, Open-Meteo weather, iCal feeds, web-push — behind the same seams as the mocks.

Designed and built end-to-end by Thomas Sprayberry Sprayberry Labs · Next.js 16 · React 19 · TS 5 · Zod 4 · Tailwind 4
Private by architecture

Your data lives in your house.

Calendars, cameras, codes, kids' names — file-backed JSON on a machine in your closet. Open it in a text editor. It's yours, legibly.

The only cloud it needs is the weather.

Off the shelf, Family OS talks to exactly one outside service: the forecast. Connect Ring and it talks to your cameras' account too — your call, your keys.

Cut the internet. The house keeps working.

No accounts, no telemetry, no subscription, no vendor to sunset your hardware. The assistant even runs offline on heuristics — or on a model in your own rack.

Run the house
like it matters.

Family OS is running today — a private build, on private hardware, for one very demanding property. If you want to see it live, ask.