System DesignSLW fleet rivent.dev →

Where things run

What each part of the fleet depends on to stay alive, and what happens when a piece goes away. Companion to the fleet map: that page covers what the apps do, this one covers where they run. Last verified 2026-08-09.

Open the one-page diagram →

The short version

Three layers, and they fail independently.

  1. The rooms — every user-facing app is served from cloud hosting and a hosted database. No app is served from a machine we own.
  2. The workers — the background jobs that do work while nobody is watching all run from cron on one server, slwdev.
  3. Identity — no automated job depends on a person being signed in anywhere. Every agent session runs on its own app API key.

The thing people get wrong: the trigger lives in the app, the muscle lives on slwdev. Queueing a research job in Quill is a row in Quill's database — that part is fully hosted. The runner that picks the row up and does the work is a cron job on the server.

What runs where

Job App Cadence Runs on Credential
Research runner Quill Every 10 min, plus a daily full pass slwdev Quill's API key
Voice runner Quill Twice an hour slwdev Quill's API key
Ingest runner Quill Every 10 min slwdev Quill's API key
Intake drain Ford Every 10 min slwdev Ford's API key
Stale recompute Slide Library Nightly slwdev No agent — plain code
Portal sync · vault backup · watchdog Platform Hourly / nightly / 5 min slwdev No agent — plain code

Terminal, LP Flow, Podcast and DealFlow have no background work on the server. They are entirely self-contained in their hosting.

Every runner is free when its queue is empty — it checks, finds nothing and exits, so a frequent cron costs nothing.

What breaks when something goes away

If this goes away What still works What stops
Any person's laptop Everything Nothing
Any person's Claude account Everything Nothing
slwdev Every room stays up and usable; nobody is logged out Quill stops researching, distilling voice and ingesting; Ford stops draining intake; Slide Library stops recomputing
Cloud hosting or Supabase Nothing The affected room, and any worker that writes to it

slwdev is the fleet's single point of failure for automation only, never for availability. That is a deliberate trade — one box is cheap and simple — but it is worth knowing rather than discovering.

The rule that keeps identity out of it

An app's automated work runs on the app's own API key, never on a person's login. Where a runner cannot find its key it stops, rather than quietly falling back to whoever is signed in on the box.

This is enforced in the runner scripts themselves. It matters because the alternative fails in an invisible way: the work keeps happening and looks healthy, while it is billed to a person and dies the moment they sign out, switch accounts or leave.

Open question

Moving the five slwdev workers into their apps' own hosting would remove the last machine dependency in the fleet. Not scoped — the current arrangement works, and the cost of the move is real.

Edit this page·History