All work
Software2026Demo build

ERP Go

Based on WorkDo’s ERPGo: a whole business in one Laravel app — accounting, stock, people and 49 more modules.

ERP Go workspace overview: record totals and every module, grouped by business area.
52Module packages in one appFinance, operations, people, sales, projects, communications and integrations
9Roles, checked on the serverFor every page, record, export and approval

The problem

Small businesses rent one tool for invoices, another for stock, another for payroll, and copy numbers between them by hand. One system fixes that only if every part of it can be trusted on its own: books that always balance, stock that cannot go negative, and leave that the person asking for it cannot approve.

Constraints

Money and stock must never drift: no rounding errors, no stock below zero, no editing history after the fact.

Fifty-two business areas cannot all be finished at once, so the app has to be useful while most modules are still simple registers.

Permissions have to hold on the server. Hiding a button is not the same as stopping the export or the approval behind it.

Approach

A package for every business area

Each of the 52 areas is its own Composer package, with a manifest naming its registers, fields and icon. One module registry reads them all, so a new module is a new package, not an edit to the core.

Books that always balance

Money is stored as whole cents, never as decimals. A journal posts only when its debits equal its credits, a double submit is caught, posted entries are never edited, and a mistake is corrected with a reversing entry. The trial balance is added up live from every posted line.

Stock that cannot go below zero

Quantities are kept per warehouse in whole thousandths of a unit. Receipts, issues and transfers each run in one database transaction, and a movement that would leave a warehouse short is refused with the reason, not saved and fixed later.

One register engine for everything else

Modules without an engine of their own yet share one register: typed fields, search, filters, CSV export, assignment, due dates, drafts, approvals, archiving and a history of every change. The whole workspace is usable today while each engine is built in turn.

Roles that hold on the server

Nine roles decide who can see, export and approve what, and the check runs on the server for every page, record and action. Nobody can approve their own request or their own leave, and the dashboard shows only the modules a person can open.

Architecture

A Laravel 12 application over MySQL. Fifty-two module packages register themselves with one module registry; accounting, inventory and HR run on their own engines, and every other module on a shared register engine.

Outcome

ERP Go runs as a working demo with its own demo workspace and a login for every role. Accounting, inventory and HR do real work today; the other modules are registers for now, with their own engines planned phase by phase. It is not hosted publicly yet, so there is no link to try.

Loading Lincoln Madaraka