A private publication control plane for evidence-backed review sites
A private control plane takes a review site from scoped candidate or domain intake through bounded evidence collection, explainable scoring, editorial review, and a versioned static release with explicit activation and rollback.
Elixir/Phoenix + Postgres/Oban · 17 worker types · LiveView office · Rust immutable release path
What needed to change
Review and comparison sites fail when evidence, scoring, editorial decisions, connectors, releases, and recovery live in disconnected tools.
The constraint shaping the build
Make the evidence trail and scoring explainable, constrain all network work, keep credentials private, and preserve an operator decision before anything becomes public.
How the pieces connect
- Candidate or domain intake
- Bounded crawl, render, screenshot, and audit evidence
- Typed extraction and configurable scoring
- Operator review and immutable revision
- Versioned static build and validation
- Explicit activation or rollback
See whether this starting point fits your workflow
The matching system explains who it is for, what a first release includes, and the rough cost. Supporting links show the implementation evidence.
How I built it
- Keep project, site, source, evidence, score, decision, and release state in one auditable control plane.
- Run orchestration, scheduling, retries, and idempotency through Oban and PostgreSQL instead of separate NATS workers.
- Treat crawl, render, and Lighthouse targets as untrusted: block private networks, recheck resolution, and bound the work.
- Keep connector credentials encrypted and write-only, while exposing only the visible configuration and approval state to operators.
- Render only frozen, versioned manifests and retain validation, activation, and rollback as separate release decisions.
What I verified
- Elixir/Phoenix/Ecto control plane with all 17 worker types running as Oban jobs over PostgreSQL
- LiveView office for scoped projects, sites, evidence, review, publication, runs, connectors, and system controls
- Go/Rod crawl and screenshot sidecar plus a bounded Lighthouse audit sidecar behind a shared target-safety guard
- Rust public renderer consuming frozen manifests with release validation, activation, retention, and rollback
- Candidate discovery, configurable scoring, revision history, encrypted connector profiles, notifications, and privacy-first domain analytics integration
Current state: The current crypto-oriented workflow and its private operator tooling are built, but they do not claim unattended discovery, publication, provisioning, traffic, or commercial outcomes. Production rollout remains an explicit approval and validation gate.