Two freelance engineers. One monorepo. An MCP server, cascading AI context on every entity, and a full-stack workflow Claude can understand without being told twice.
The pillar
Clients, missions, projects, tasks — each one owns a dedicated AI Context block. We write there what matters: who the decision-maker is, the rollback rule, the cadence of reviews, the compliance constraint. TOSSE exposes that cascade through an MCP server, so Claude Code (and any MCP-capable agent) reads it with a single tool call and acts with the same understanding we would.
This is the reason we built TOSSE in the first place. Every other feature serves this one.
Each AI Context block is scoped to its level — client-wide details on the client, mission-specific on the mission, task-specific on the task, codebase-specific on the repository. The MCP cascade stitches them together on demand; duplication is forbidden at the data layer.
MCP in action
Same session, our terminal, Claude Code. No prompt engineering, no pasted context — just MCP tools reading the cascade.
Two critical items on Payments v3:
The Nordway context says decisions are fast but PRs should include a Loom; I'd prepare the checksum diff walkthrough before posting it. Want me to draft the Loom outline?
Task management
Drag a task, it moves. Complete every subtask, the parent auto-ships to Review. Mark one task as blocking another; the graph view redraws with the critical path, and the blocker shows an outgoing chain on the kanban card. Only a human flips a task to Done.
Finance
Integrations
Every integration runs a health check on a cron; a red pill on the Settings page is how we hear about a broken OAuth token before the user does.
Google Calendar
OAuth2 · read-only sync of client meetings
iCloud Calendar
Shared .ics URL · read-only sync
GitHub
Repos linked to projects · PR + commit activity
Qonto
Bank API · transactions sync + reconciliation
How it stays clean
Context cascades from client → mission → project → task. We never repeat parent context in a child. The MCP server exposes the whole chain in a single call so agents see only what matters, once.
DELETE endpoints set status = Archivé. Nothing is actually gone.
Analytics, activity logs, and the audit trail stay trustworthy.
Agents can create, edit, and move tasks to Review. Only a human flips a task to Done. The rule is enforced in the backend, not the prompt.
Every mutation emits an SSE event and appends to activity_log.
Any open browser tab updates without a refresh.
Stack
No microservices. No Kubernetes. Three Railway services, one monorepo, one language across the stack. The interesting choices are the Bun runtime and the MCP server; everything else is boring infra that stays out of the way.
Next.js 16
App Router, React Server Components
Hono on Bun
Sub-10ms API latency at idle
PostgreSQL 16
Prisma ORM, SQL views for aggregates
Better Auth
Cross-domain sessions, password reset
MCP SDK
Streamable HTTP + OAuth2 per-user
SSE
Realtime mutations to all open clients
Playwright
E2E tests + automated screenshots
Railway
Three-service Docker deployment
Two freelancers. We built TOSSE for ourselves — to cut friction in our day-to-day, ship faster, and weave AI into the way we actually work, not as a chatbot bolted on the side. It's the tool we wished existed.
If this is the kind of software you'd want in your stack, get in touch.