This monorepo contains my personal website and the first pieces of an agentic, AI-driven operating system. The website is the public face of my work; the agent runtime is the private engine I am building to handle real tasks through stateful, auditable workflows.
- Create a single, coherent home for public-facing content and the systems that power agentic workflows.
- Iterate in public on the UX while evolving agent capabilities in parallel.
- Share UI, types, and tooling across web and agent surfaces to keep the system consistent.
Key pieces:
- Web app: Next.js App Router site for essays, research, and portfolio content.
- Agent runtime: Cloudflare Worker using the
agentsruntime with Durable Objects for stateful, per-identity agents. - Shared packages: UI components, transactional email renderer, and shared TypeScript configs.
apps/
web/ # Next.js website (somai.me)
agent/ # Cloudflare Email Routing agent worker
packages/
ui/ # Shared UI components + styles
transactional # React Email renderer helpers
notion/ # Notion-related utilities (placeholder)
typescript-config/ # Shared TS configs- Next.js 16 + React 19
- Tailwind CSS + shadcn/ui + Radix
- Cloudflare Workers + Durable Objects
- Vercel (web), Wrangler (agent)
- Turborepo + pnpm
- Biome via Ultracite (format/lint)
Prerequisites:
- Node.js >= 24
- pnpm >= 10
Install dependencies:
pnpm iRun everything in dev mode:
pnpm devRun a specific app:
pnpm --filter web dev
pnpm --filter backend-email devpnpm dev- start all appspnpm build- build all appspnpm test- run testspnpm check- run Ultracite checkspnpm fix- format + fix lint issues
- Website is live and actively maintained.
- Agentic OS components are early and evolving; expect breaking changes.
- Web app details:
apps/web/README.md - Agent worker details:
apps/agent/README.md
Contributions are welcome. Please open an issue or PR with a clear description of the change. Before submitting:
- Run
pnpm checkandpnpm test - Follow the Ultracite code standards in
AGENTS.md
MIT licensed. See LICENCE.