Why it exists
My day job is writing proposals for public-sector contracts in the United States: deadlines that do not move, documents that have to agree with each other, and a lot of people to keep track of. My own life was spread across as many places as my work — a journal in one app, goals in another, contacts in a third, the proposal pipeline in spreadsheets. Nothing could see anything else.
Life OS is the answer I built for myself: one place where a whole life sits as records, so that anything can be found, linked to anything else, and reused rather than rewritten.
One spine, two surfaces
Underneath is a single table of records. A journal entry, a goal, a contact, a role on my résumé, a case study, a training session and a proposal in the pipeline are all the same shape, with a kind and a body. That is the spine. Two surfaces read from it: a private app that only I sign in to, and the public website, which never touches the private database at all.
Publishing copies a record into a separate public store. The rule that only I can publish is not a promise written in the code; it is enforced by the database's own grants, so no script, agent or automation can write to the public store even by mistake. The old public site followed from that: nothing written in the page, every claim read from a published record.
Work Mode
The part I use every day is Work Mode, the proposal tracker. Each pursuit moves through pipeline stages and carries its own tasks, and its progress comes from the stage it has reached rather than from a checkbox someone remembered to tick. Only I can mark a task done. Anything else that works on a task can take it as far as waiting for my confirmation, and no further.
An assistant with limits
Life OS speaks MCP, the protocol AI assistants use to reach tools, so an assistant can use it as its memory and its rulebook. I run one that is always on, reachable from my phone. It can read everything, capture a thought, triage the inbox, plan tasks and write my weekly review.
The interesting design work was deciding what it must never be able to do. It cannot delete, cannot publish and cannot mark anything done, and those limits are not instructions it could talk itself out of: it signs in with its own database login, which the database always treats as an agent. Every change it makes is attributed to it and can be undone.
Free to run
There is no funding behind any of this, so it runs on free tiers. Backups are taken every day by a scheduled job; an email digest of what is waiting goes out on a schedule the database itself keeps. The small server the assistant lives on is the one recurring cost.
What it taught me
Mostly, discipline about truth. When a fact lives in one place, every screen that shows it agrees by construction. When it lives in two, one of them is already wrong. I learned to check what is actually running before believing what the documentation says about it — the documentation is usually the copy that drifted.