Building a Scalable, Personal AI System
How I designed and built an always-on AI agent — named after the first king of Rome — to close the gap between conception and shipping.
The Problem
I've spent the past decade in product — designing, building, and shipping across startups in health, web3, energy, and consumer apps. The recurring bottleneck was never ideas. It was throughput.
Good opportunities pile up fast when you know how to spot them. Building them one by one, alone, is slower than it should be. Romulus started as an attempt to change that without giving up taste, judgment, or control.
Roma Eterna
Romulus runs on OpenClaw and lives on a dedicated Mac mini called Roma Eterna. It's always on — running scheduled jobs, monitoring things in the background, and sending a morning brief to Discord every day at 8 AM.
The interface is Discord. The memory layer is an Obsidian vault: daily notes, project files, operating context, decisions, and lessons learned going back to the first boot session on February 3, 2026.
Right now that memory spans 83 files, 29 project notes, 31 daily logs, and 11 key decisions. That's the actual point of the system: context that compounds instead of disappearing between chats.
How the Work Actually Runs
Every project follows the same loop:
Model Routing Philosophy
Not every task deserves the same model. I treat model selection the same way I'd treat any system design decision: match capability and cost to the job.
Projects Built with This System
A daily history guessing game. One event per day, three chances to guess the year. Wordle-style digit feedback. 90 hand-curated puzzles spanning five centuries.
I designed the game first — share card format, difficulty calibration, no-clues Sunday mode, and the editorial voice. Then I used the system to move from spec to production quickly.
Next.js + TailwindAI contract analyzer. Upload any PDF or DOCX, get a risk report in 60 seconds. Flags bad terms, missing clauses, unfavorable language. Built on Next.js 15, Stripe, GPT-4o. Privacy-first — contracts are never stored.
The core insight came from genuine signal: contract review is expensive and slow, and most people skip it. The product addresses a real friction point that freelancers, contractors, and founders face every day.
Next.js 15 + Stripe + GPT-4oEvery morning at 8 AM: weather for Park Slope, subway departures for the R train from Prospect Ave to Canal St, and a product signal digest. All three in Discord. Custom Node.js script pulling live MTA GTFS-RT protobuf feeds.
Built something I actually use every day. Real utility, not a demo. The kind of tool that makes the system feel worth it before breakfast.
Node.js + MTA GTFS-RTThe Memory Architecture
The Obsidian vault is the part of this system I'm most proud of.
83 files. 12 core memory docs. 29 project notes. 31 daily logs. 11 key decisions. Every session reads from it. Every session writes back to it. Romulus keeps context because the system stores it, not because I restate it every time.
This is what makes it compound. Each project makes the next one faster. The vault grows more useful over time. The system learns from itself.
Legion
The next layer is already designed. Legion is an orchestration system — Romulus as conductor, multiple Claude Code workers running in parallel with git worktree isolation.
Task decomposition, parallel execution, quality gates before merge, results synthesized and delivered to Discord. The goal is to move from one person building with an AI partner to something closer to a small studio.
Phase 2: Worktree isolation — each worker in its own git branch.
Phase 3: Quality gates — automated tests before merge.
Phase 4: Knowledge accumulation — past learnings prime future tasks.
"Romulus commands Legion." — Roman military structure. A disciplined coordinated force under single command.
What I'd Tell Another Builder
The difference between a useful AI setup and a toy is system design. Memory matters. Routing matters. Context management matters. The model alone is not the product.
Judgment still matters more. AI can accelerate research, writing, coding, and execution. It can't decide what deserves your time. That part is still human.
The best test is whether the thing becomes part of your real workflow. Romulus did. It runs every day, keeps state across projects, and helps me move faster without losing the thread.