BusinessOS
A multi-tenant platform in Go for configurable ERP, POS and CRM, with one core and no per-industry forks
- Type
- SaaS platform
- Status
- Private system
- Year
- 2026
- 27 platform modules built
- 39 architecture decision records
- 1,452 Go test functions

BusinessOS is a business operating system I’m building in Go. Each business switches on the modules it needs and configures its own ERP, POS and CRM without new code.
Entities, fields, forms, workflows, automations and roles are data that each tenant defines, and engines interpret that data at runtime. Twenty-seven modules are built so far: platform core, authentication, tenant and organization management, user management, a field-level permission engine, the dynamic entity engine, the form builder, the workflow, automation and notification engines, inventory and sales, purchase, POS, accounting, CRM, HR, reports, dashboards, a public API, an AI assistant, integrations, a marketplace, white-labelling, a mobile sync API and self-monitoring.
I record design decisions as ADRs, 39 so far. One example: I built the entity engine before the permission engine, because field-level permissions need fields to exist first.
How it works
- Platform core
- Authentication and tenants
- Dynamic entity engine
- Permission engine
- Form builder
- Workflow engine
- Automation and notifications
- Inventory and sales
- Purchase, POS and accounting
- CRM, HR and reports
- Public API and integrations
- AI assistant
- Self-monitoring
Engineering decisions
- Fields, forms, workflows, automations, reports, dashboards and roles are metadata that each tenant configures. The aim is one platform that serves restaurants, pharmacies, clinics, retail and manufacturing without code changes.
- The dynamic entity engine publishes a JSON Schema for every entity a tenant defines, with relationships, computed fields, and record import and export.
- A form only arranges fields. Leaving a field off a form hides nothing and adding one grants nothing, because permissions live in their own engine.
- The workflow engine moves records through states and transitions, with conditions evaluated on the server and approval steps.
Built with
- Go
- PostgreSQL
- Multi-tenancy
- JSON Schema
- REST API