Quick facts
- What it is: OptiAI is an AI-powered family and life organizer with a shared calendar, lists, chores, meals, kids’ money and more, and an assistant, Opti, that does the typing.
- Stack: React and TypeScript web app (installable PWA) with Capacitor wrappers for iOS and Android, on Supabase and Vercel.
- Size on 2026-10-31: 196 Supabase edge functions, 1,112 database migrations, 11 app languages.
- How it is built: day-to-day development, tests, releases and several operations jobs run with Claude Code agents, with human approval gates.
- Not claimed: not built entirely by AI, and no endorsement by Anthropic. Claude Code is a tool we use.
- Price: the app is free with every module and no trial; higher AI limits are paid (Full Access is the free tier).
- Publisher: Aspire Digital LLC, Austin, Texas.
Last reviewed 2026-10-31.
A family app is not a list app
This week XDA Developers published a first-person piece about using Claude Code to build a shared grocery list for one family. It is a good example of how far one person with a coding agent can get on a single practical app. We are doing the same thing at the other end of the scale: a whole-household app with real users, run day to day with agents, and I want to be specific about what that means.
OptiAI covers the calendar, chores, shopping, meals, kids’ money, health notes, childcare, pets and a family assistant, on web, iOS and Android. As of today the repository holds 196 edge functions and 1,112 migrations, and the app ships in 11 languages. That surface is where an agent earns its place, and where it needs the most supervision.
Where it started
We prototyped on Lovable in 2024 and 2025, which was a fast way to find out what the product should be. We then moved to Vercel for hosting and Supabase for the database and server functions, and from that point development has been done in Claude Code, in a normal git repository with a normal test suite and a normal release process. Nothing about the production setup is exotic. The unusual part is who does the typing.
What the agents actually do
- Feature work. A person writes a short brief. An agent works on its own branch in its own git worktree, writes the code and the tests, and reports a branch and a commit.
- Tests and releases. Agents write and fix tests and prepare the release notes. Running the full suites before anything is pushed is part of the written process, not a hope.
- Nightly triage. A scheduled job reads the day’s problems and prepares candidate fixes for review.
- Daily reports and marketing operations. Scheduled agents write the internal morning reports and draft marketing posts. Each post is reviewed by a separate critic agent before anything is published, and everything is logged so it can be taken down.
- Content. A K–12 learning product is in development and is not released.
On the machine that runs this there are 19 scheduled jobs under our me.optiai prefix. Some launch Claude Code agents. Others are plain scripts, such as the support inbox watcher and the bounce checker, and I would rather say so than let “agents” imply more AI than there is.
What a good brief looks like
The quality of the work tracks the quality of the brief. A useful one names the problem and the files involved, says what “done” means, lists what must not change, and states which checks to run before reporting back. When a brief is vague, the agent fills the gap with a plausible guess, and plausible is the dangerous word. We keep the project’s rules in the repository itself, in a file the agent reads at the start of every session, so the rules for branches, translations, database changes and pull requests apply to every agent without anyone repeating them.
The same idea runs through the scheduled jobs. Each has a written prompt, a spending cap, a log and a way to pause it. If a job misbehaves I can stop it with one command, and I can read exactly what it did.
Where a human decides
- Agents cannot ship a batch. They push branches and stop. A hook blocks pull-request creation unless I have allowed it, so one integration pull request carries a whole batch, and merging to production is my decision.
- Releases wait for a go. Store releases are submitted only after I have tested the build.
- Outbound mail has caps. Outreach goes through one branded mail module with a daily send limit and a minimum gap between sends, and a kill switch if a provider pushes back.
- Sensitive data stays out of reach. By our rules, agents read production data only through read-only queries, and any schema change is a reviewed migration file.
What the app looks like when it works
These are real screens from our test environment with a sample family. The shopping list is the part that looks most like the XDA project; everything around it is what a household needs next.




What went wrong
- Usage limits are real. Long agent runs stop when a limit is reached. We built a scheduled job that picks up unfinished work, and a health check that looks for usage-limit messages in the job logs.
- A network outage sent blank reports. On 31 October a DNS outage at the start of the morning meant the daily executive reports went out empty. The job now waits for the network and refuses to send a blank report.
- Agents trampled each other. Two agents sharing one checkout once swept up each other’s files in a commit. Every agent now works in its own worktree.
- Green tests that test nothing. We have had tests whose assertions admitted both the broken and the fixed behaviour. We now ask of each new test what it would catch if the code were wrong.
- Output still needs review. The agents are quick and usually right. “Usually” is why the approval gates exist.
Why a whole-family app is a harder test
A shared grocery list has one data type and one question: what do we need to buy. A household has many, and they interact. A school trip becomes a calendar event, a packing list and a payment; a child’s allowance touches chores and money; a note about a doctor’s visit must stay private unless someone chooses to share it. Those interactions are where agent-written code can look right and be wrong, which is why so much of our process is about checking rather than generating.
It is also why the product matters more than the method. Families do not care how an app was built. They care that the shopping list is right, that the reminder arrives, and that private things stay private.
What I would tell someone starting
Treat the agent like a fast colleague who has never met your product. Write the brief down. Give each one its own workspace. Put the irreversible steps, merging, releasing, sending, spending, behind a person. And measure the outcome, not the exit code: a job that exits cleanly can still have done nothing.
Our bias, stated plainly
I run OptiAI, so this account is told from inside. It is not a claim that software now builds itself, and it is not an endorsement from Anthropic; we use Claude Code as a customer. If you try the app, the whole thing is free, and only higher AI limits are paid. This guide is general information about how we work, not advice.