Project Plan & Status · updated 2026-08-07

Ratecenter — open-source billing for ISPs and telcos

Phase 0 — in progress built by Fibernetics MIT · Go · React · PostgreSQL ratecenter.app

What & why

Ratecenter is a ground-up, open-source successor to Freeside, the Perl/Mason billing platform for ISPs, WISPs, VoIP and hosting providers. Freeside 4.x is ~250k lines of core Perl over 306+ database tables and is effectively unmaintained (last upstream commit July 2024). Our primary goal: a fully operational billing system that existing Freeside deployments — starting with our own — can migrate to safely and fully accurately. Read the full design specification.

The accuracy guarantee is engineered, not promised: from Phase 3 onward, CI imports a production snapshot, re-runs historical billing cycles, and diffs every generated invoice line against the real historical ones. A commit that changes an invoice by one cent fails the build.

Decisions of record

DecisionChoice
StackGo API + React/TypeScript UI + PostgreSQL — modular monolith, one self-hostable binary with the UI embedded
LicenseMIT, with a strict clean-room rule: Freeside (AGPL) code is a behavioral reference only, never ported
MigrationClean new schema + one-way importer from Freeside 4.x, grown and tested continuously from Phase 1
V1 scopeBilling core, CRM, payments, tax, CDR rating, provisioning, customer portal, multi-company, RT integration, importer
TicketingIntegrate the existing RT server — not rebuilt
UIModern feel, familiar structure: Freeside's menu tree and workflows preserved, no staff retraining
ReportsAsync + streaming from v1 (no frozen pages); deep SQL optimization deferred deliberately
BrandingNeutral product name; Fibernetics credited as creator and flagship production user

Roadmap

PhaseScopeStatus
0 · Archaeology & harnessLegacy code index, production usage inventory, Freeside 4.2 reference instance, invoice-diff harness, repo + CI + guardrails, UI structure contractIN PROGRESS
1 · Catalog & partyPackages/pricing/tax classes; customers/contacts/locations/agents; importer v1; first staff screensPENDING
2 · Package lifecycleOrder/suspend/cancel/change state machine; event framework; importer v2PENDING
3 · Billing engineBilling runs, proration, invoices, tax, credits/voids; importer v3; golden CI gate on, permanentlyPENDING
4 · Payments & collectionsGateway interface + drivers we use + Stripe reference; dunning; refundsPENDING
5 · ProvisioningExport framework; RADIUS/LDAP/DNS/SSH drivers + what inventory says we needPENDING
6 · CDR & ratingCDR import + rating engine → invoicesPENDING
7 · Portal & RTCustomer self-service; RT integrationPENDING
8 · Cutover kitDry-run, reconciliation, rollback, runbook — safe migration for any Freeside shopPENDING

Phase 0 checklist

Method

Each phase runs a full spec → plan → implement → review cycle with fresh-context subagents per task and human review gates. Vertical slices: every phase ends with working software, and the Freeside importer grows with every phase rather than being a big bang at the end. All money math is developed test-first; floats are banned from money paths by CI.