Skip to content
Chrison Simtian edited this page May 17, 2026 · 2 revisions

ERP.Satisfactory

ERP-style production planner for the game Satisfactory. Tell it what you have and what you need; it returns a plan, flags the gaps, and reconciles against your live .sav file.

Primary objective: help the user plan a factory based on the inputs they have and the outputs they need.

Quick links

What's here

Page Read this when…
Getting Started You want to clone, build, and run the app locally
Architecture You want the big-picture map of the codebase
Save File Parsing You're touching .sav ingestion or the SatisfactorySaveNet fork
LP Planner You're working on the OR-Tools planner, sensitivity, or generator-aware planning
Background Scheduler You're adding a recurring job or touching the TickerQ wiring
Persistence You're touching EF Core / SQLite / Postgres / migrations
Dashboard and Alerts You're working on the /dashboard glance view or alert rules
Domain Glossary A term in the codebase is unfamiliar (target, available, shortfall, …)
Roadmap You want the milestone view
Contributing You're opening a PR

At a glance

  • .NET 10 + Aspire orchestrated app — dotnet run --project src/AppHost and go.
  • Blazor Server UI on MudBlazor.
  • Onion architecture + CQRS in-process via Wolverine.
  • Google OR-Tools (GLOP) for the LP planner.
  • TickerQ for background work — auto-ingests .sav files when they change on disk.
  • EF Core with SQLite by default and Postgres opt-in.
  • .sav ingestion via a forked, v1.2-patched SatisfactorySaveNet.

Conventions

Repo-level Claude conventions are in CLAUDE.md and .claude/. Anything architecturally significant lives in an ADR.

Clone this wiki locally