The system your team runs the business on.
Orders, money, stock and approvals, in one place, with every change recorded. Built around how your business actually works, not how a generic tool assumes it does.
From spreadsheets and chat groups to one system.
Most growing businesses run on a mix of spreadsheets, WhatsApp groups and memory. It works until it does not: two people edit the same sheet, an approval is lost in a chat, nobody knows who changed a price. An internal system gives every process a home, a person responsible, and a record. It is not an off-the-shelf ERP you bend to fit. It is built around your workflow, in your language, and it grows when the business does.
- The business runs on spreadsheets, chat groups and a few people's memory.
- Approvals, handovers or stock counts get lost or duplicated.
- You cannot answer who changed what, and when, with confidence.
- An off-the-shelf ERP would force your process into its shape.
Orders, finance and inventory are separate modules on one shared data model. Roles decide who sees and does what. The audit trail records every change across all modules, which is what makes the numbers defensible.
What is included in an internal system
Workflows
Each process modelled as states and transitions: who can move it, what is required at each step, what happens automatically.
Roles and permissions
Owner, manager, operator, accountant, guest. Field-level control where needed, and a screen that shows exactly who can do what.
Audit trail
Every create, update and delete recorded with user, time, before and after. Exportable. Nothing deleted for real.
Reporting
Dashboards for daily operations and exports for the accountant. Numbers reconcile with the source rows, every time.
How we build internal systems
A boring, well-modelled core that survives ten years of changes.
- Data model first
- Entities, states and money are modelled before any screen. Amounts are stored in minor units with currency; dates in UTC with the business timezone applied at the edge.
- Postgres and constraints
- Foreign keys, unique constraints and check constraints enforce rules in the database, so a bug in a screen cannot corrupt the ledger.
- Append-only history
- Change tables and soft deletes. You can answer what the stock was on any past date without restoring a backup.
- Role-based access
- Permissions enforced in the API, not only hidden in the UI. Sessions, device management and optional two-factor for sensitive roles.
- Imports and exports
- Migration from your current spreadsheets with validation reports, and scheduled exports to accounting or Excel in the format your accountant already uses.
From a process map to a running system
- Phase 1
Map the process
We sit with the people doing the work and draw each flow: inputs, decisions, exceptions, outputs.
- Phase 2
Model and agree
You review the data model and the role matrix in plain language before any code.
- Phase 3
Build by module
The most painful process first. Each module goes live on its own, with your data imported.
- Phase 4
Run and extend
Monitoring, backups and change requests handled monthly. New modules added as the business grows.
Questions people ask
- Why not buy an ERP?
- If an ERP fits your process, buy it. Most small and mid-size operations end up fighting the tool. A custom system costs about the same over three years and fits on day one.
- Can it connect to our accountant's software?
- Yes. We export in the format they use, or integrate directly where the software has an API.
- What about our old data?
- We import it, validate it, and show you a report of what did not fit so you can decide before go-live.
Tell us what you need to build.
A short message is enough to start. We reply within 24 hours.