Skip to content
All work

Platform  · shipped

os.manncave.dev

A self-hosted command center that replaced the whole SaaS stack — projects, client CRM, invoicing, notes and booking in one app we own outright.

Year
2026
Disciplines
Product, platform engineering, integrations
Stack
Next.jsTypeScriptPostgresSelf-hosted

The brief

Stop renting the business.

Running a studio on rented software means the client list is in one tool, the invoices in another, the notes in a third, and every one of them charges per seat to read your own data back. Cortex was built to collapse that: one Next.js app on our own box, holding the projects, the pipeline, the money and the knowledge, with the pieces a client touches published straight out of it.

What we built

  1. 01

    One screen that answers "what now"

    Today pulls what is due, who is waiting, what is owed and what moved since yesterday into a single view — the answer most dashboards make you assemble from four tabs.

  2. 02

    A CRM that runs on real money

    Clients by stage with deal value and time since last contact, wired straight to proposals and invoices — so the pipeline number and the money owed come from the same record rather than two systems that disagree.

  3. 03

    Notes that know what they are about

    A block editor whose notes link to the project and client they came out of, indexed into a knowledge graph so the connections are navigable instead of remembered.

  4. 04

    The client-facing half, published

    Booking pages, embeddable lead forms, proposals signed in the page and invoices with a payment link — all served by the same app, which is how the enquiry form on this site reaches it.

  5. 05

    Integrations that report their own failures

    GitHub activity per repository, calendar subscriptions, and mail resolved to the client it belongs to — each surfacing the reason for a failed sync rather than going quietly stale.

  6. 06

    An assistant with read-only hands

    Claude answers questions about the data over streamed tool use, restricted to reading. Every model call is priced to the token on its own page, so the running cost of the AI is a number rather than a surprise.

Screens

  • Today — Twelve weeks of shipping, clients, writing and weigh-ins on one axis, above the money and the day.
    Today — Twelve weeks of shipping, clients, writing and weigh-ins on one axis, above the money and the day.
  • Pipeline — Every client by stage, with the deal value and how long since anyone spoke.
    Pipeline — Every client by stage, with the deal value and how long since anyone spoke.
  • Invoices and proposals — What is out, what is overdue, and what has been signed.
    Invoices and proposals — What is out, what is overdue, and what has been signed.
  • Graph — Notes, projects, clients, repositories and transcribed episodes, and the edges between them.
    Graph — Notes, projects, clients, repositories and transcribed episodes, and the edges between them.
  • Proposal — Opened from a capability link by someone with no account, and signed in the page.
    Proposal — Opened from a capability link by someone with no account, and signed in the page.
  • AI spend — Every model call this system makes, by feature, priced to the token.
    AI spend — Every model call this system makes, by feature, priced to the token.

Where it stands

Running in production as the daily driver, and serving the enquiry form embedded on this site. Single-operator by design — multi-tenancy, billing and teams are explicitly out of scope. The repository is private; the screenshots below come from the app itself, seeded with an invented studio and fictional clients.

Tables behind one app
16 Tables behind one app
Client-facing surfaces published
5 Client-facing surfaces published
Per-seat cost
$0 Per-seat cost

Next case

Lotline

Read it →