ReviewOS

The forge that takes review seriously

Most forges treat review as a tab on a pull request. ReviewOS is built around it, on hardware you own.

reviewos {{ reviews > 0 ? verdicts[(reviews < verdicts.length ? reviews : verdicts.length) - 1] : '' }}
reviewos.localhost
# Bun, PostgreSQL and git are installed and started for you
$ ./buddy setup
$ ./buddy dev

# then push the way you already do
$ git remote add origin https://reviewos.localhost/you/project.git
$ git push -u origin main

Review is where the time goes, and where the tools give up

A hundred-file diff loads slowly, a rebase drops half the conversation, and a large change arrives as one unreviewable lump because splitting it is more work than explaining it.

  • Threads anchored to a commit, so a rebase moves them instead of losing them.
  • Stacks as a first class object, so a big change can arrive in reviewable pieces.
  • Server-rendered diffs, so the size of the change is the reviewer's problem and not the browser's.

What that means concretely

The decisions below are the ones that make review better or worse. Everything else follows from them.

Review threads that hold their place

A thread anchors to a path, a line, a side, and the commit it was written against. Rebase the branch and it follows the line, or marks itself outdated and stays readable.

Stacked pull requests

Dependent changes that merge in order. Each one diffs against its parent, so it shows only its own work.

  • Merging a parent retargets its children
  • Merge the whole stack in one action
  • Detected from branch topology on push

Diffs against the merge base

Not against the base tip. The difference is every change you did not make, quietly added to your review.

Rendered on the server

The browser receives HTML, not a diff library and a JSON payload. A hundred files stays usable.

Ordinary bare repositories

Driven by the git binary, on your disk. Nothing about your history is locked inside this application.

One Postgres, one process

No queue cluster to operate before the first repository exists. Scale the parts that need it, later.

On this instance

Hosted here, reviewed here

Not screenshots. Every one of these is a repository on this instance, served by the code browser and reviewed on the diff described above.

More of it, and what changed on it today, is on Discover.

Where it is

The core forge is here

Repositories, issues, pull requests, reviews, notifications, and webhooks are implemented. Search, discovery, and the public site are the current open tracks.

00 Bootstrap Done
01 Foundation Done
02 Git hosting Done
03 Issues Done
04 Pull requests and reviews Done
05 Notifications and webhooks Done
06 Search and explore 20/21 complete
07 Marketing and docs 21/45 complete

Diff performance, mirroring, pipelines, and the remaining work stay visible in the full roadmap.

Deliberately not doing

Saying so keeps these from being re-proposed every few weeks, and keeps the roadmap readable.

A package registry

Not until the forge itself is good.

A wiki

Markdown in the repository covers most of it.

Projects and boards

Issues, labels, and milestones come first.

A hosted CI execution plane

Self-hosted runners work now. Running untrusted code on instance-managed infrastructure still needs a reviewed isolation model.

Self-hosting

One command, on your own machine

Pantry installs and starts the toolchain, creates the database from your environment file, and runs the migrations. Nothing needs to be installed first.

Bun 1.3.14 PostgreSQL 17 git 2.47 MIT
install
$ git clone https://reviewos.org/reviewos/reviewos.org.git
$ cd reviewos.org
$ ./buddy setup

# PostgreSQL started, database created, migrations applied
$ ./buddy dev