Day zero: the spine
The first commit. A backend framework, a tool-scoped brain, and the one decision everything else follows from: the AI never gets to invent a fact.
Today's the first commit. Not a prototype, not a proof of concept — the spine. Everything that gets built on top of Neeos over the next year has to sit on this, so it got more thought than a first commit usually earns.
The idea is simple to say and hard to build honestly: one private AI that actually knows your life, instead of a folder of disconnected apps that each know one slice of it. Your training affects your budget. Your calendar affects your recovery. Nothing today connects those two facts, and Neeos exists to be the thing that does.
The decision underneath every other decision
The AI does not compute facts. It reads them. Every number, every record, every "here's what's true" comes from a canonical Postgres database — the model's job is to interpret that data and talk to me about it, never to do the arithmetic itself and hope it's right. That's not a performance optimization, it's a trust one. The day an assistant starts quietly making up a number is the day I stop trusting anything it tells me, and a personal OS that isn't trusted is just a chatbot with better branding.
Concretely, that meant deciding the storage shape before writing a single feature. The
early plan was to reuse Atlas's — my other project, the finance engine already running at
neeos.ai — encrypted single-JSON-blob vault. It's the right shape for small,
bounded financial state. It's the wrong shape for an ever-growing, multi-source dataset
that needs to answer questions like "show me every run in the last six weeks where sleep
was under six hours." That needs to be relational, queryable, and joinable across domains.
So: Postgres, with pgvector for semantic search and S3 for files, and I keep Atlas's good
patterns — envelope encryption for the sensitive fields, the auth stack, the operation
registry — without inheriting its storage.
What actually landed
- Phase 0 backend framework — the operation registry that every client (iOS, Mac, the brain itself) calls through, so there's exactly one door into the data, not one per client.
- The first two connectors: manual entry and document import, built concrete before any abstraction. The plan is to generalize the connector contract after a couple of real ones exist, not to design it speculatively and hope reality matches the diagram.
brain.ask— a skeleton for the tool-scoped AI layer. The brain gets a curated, permission-scoped set of operations, never a raw dump of the whole database in a prompt. That boundary is drawn here, on day one, because it's much harder to draw later once every feature assumes it isn't there.
None of this is visible yet. There's no screen to show you. But the constraint that everything downstream has to respect — deterministic core, AI only interprets — is real code today, not a sentence in a README.