Use case

A forge with an operational surface you can hold in your head

You are the team that gets paged. The question is not what a product can do, it is what it does at three in the morning.

What it actually needs

Bun, Postgres, and the git binary. That is the dependency list to start. Queues, caches, and search are drivers you enable when there is a reason, not prerequisites in an install guide.

Failure modes you can predict

  • Repositories are ordinary bare git directories, readable without this application running
  • Every merge ends in a guarded ref update, so a concurrent push is never silently discarded
  • Outbound webhooks cannot reach loopback, private ranges, or the metadata service
  • Backups are a directory copy and a database dump

Migrations are generated from the models

The schema is described once, in the model, and the SQL is derived from it. Reviewing a schema change means reviewing a generated migration rather than reconciling two descriptions that drifted apart.

No vendor lock in the storage layer

Nothing about your history is inside a proprietary format. The exit plan is the same as the backup plan, which is the only exit plan anybody ever executes.

Operate it without a runbook the length of a novel

One process and one database, with the optional parts genuinely optional.

Self-host ReviewOS See the features