Darmabox
Consolidating work that used to live across several disconnected apps into one system — from costing a custom box to accounting entries that are created automatically.




- Client
- Darmabox — custom box manufacturer, Malang
- Industry
- Packaging manufacturing
- Our role
- Product definition, system design, and full development — web, server, and floor app
- Duration
- 8 months (November 2025 – June 2026)
- Year
- 2026
Scope at a glance
18
feature modules in the agreed scope
3
connected apps: office web, server, floor app
8
user roles, each with its own access rights
14
cost-rate tables the owner can edit without a developer
The problem
Darmabox's daily work was spread across several third-party apps that did not talk to each other. Order data, invoices, and the production board each lived in a different place, so the same figures had to be retyped and were harder to check when they disagreed.
The sharpest pain was costing. The price of a custom box depends on dozens of interlocking cost components — sheet size, how many boxes fit per sheet, dies, die-cutting, lamination, screen printing, hot stamping, embossing, spot UV, PVC windows, glue, dividers. All of it was worked out by hand in spreadsheets.
Besides taking time, the result could differ depending on who did the calculation, which made it harder to check the figures before a quote was sent.
Constraints
- Material prices move constantly. Cost formulas had to be editable by the owner, without calling a developer every time a rate changed.
- Production-floor operators share tablets, and the signal down there cannot be relied on.
- Customers communicate over WhatsApp, not through an app. The system had to meet that habit rather than fight it.
- Everything follows Indonesian practice: VAT, deposits, staged invoices (deposit first, then final payment), and addresses that follow the official administrative regions.
Approach
The costing formula stands alone, separate from the database
The part of the program that works out costing is not allowed to touch the database (where data is stored) at all: numbers in, numbers out. That makes calculations easy to test, quickly and cheaply, without setting up any stored data. On this project, the test code grew to roughly twice the size of the calculation code itself.
The total and the breakdown are calculated two ways and checked against each other automatically
The system works out the same figure in two ways: one produces the total, the other produces the itemised breakdown that users read. An automated test checks that the two stay identical, so a difference can be caught before a change is released.
Every cost rate can be changed from a menu, without a developer
Fourteen kinds of rate — cutting, die-cutting, dies, glue, screen printing, lamination, hot stamping, embossing, spot UV, windows and more — are not written into the program but stored as data, editable from a menu. A rise in material prices no longer means waiting for a developer's release schedule.
Selling prices follow an approval flow
Cost and selling price are separated. Staff can run calculations, while the selling price passes through draft → pending approval → approved, with specific permissions for the owner and finance team. This helps maintain control over pricing and margin.
A costing result is reused from the order through to the books
A calculation can be saved as a product and then used in an order, production card, delivery note, invoice, payment, and the accounting entry. This flow reduces the need to re-enter the same figures in several places.
WhatsApp messages are switched off in test environments
The system runs in three separate environments (self-contained copies of the system), and WhatsApp is switched off in the two that are not for real use. This separation reduces the risk of test messages reaching customers.
Screens


Landing page
Landing page home + Landing page on mobile
On darmabox.com, visitors can configure their own packaging — type, size, and quantity — and send it as a pre-filled WhatsApp message. The public pages and the office web app live in one application, but the ERP pages stay locked behind login. An automated test makes sure the public pages open for anyone while the ERP pages always ask for a login.

Office web app
Costing calculator
The costing form and the sheet-layout preview (the plano, a large printing sheet) sit side by side, so how many boxes fit per sheet is visible while the numbers can still change — not after the quote has already gone out.

Office web app
Material master data
Each material's reference price is stored as editable data. The right-hand panel shows which figure is used while no actual cost has been recorded, so the basis of the estimate is easy to check.

Office web app
Order detail
One order shows its status, its invoices, and its accounting entry on the same page. A deposit is deliberately booked as customer funds held rather than revenue until the goods ship — the books follow when the work is done, not when the money arrives.

Office web app
Production card
A production card draws down stock only after each material is approved individually, and a shortfall is flagged on that material's own row — not as a single banner at the top of the screen that is easy to scroll past.

Costing form

Cost breakdown & sheet layout
Phone app
Costing form + Cost breakdown & sheet layout
The same calculator runs in the floor app, breakdown included. The per-piece cost is pinned to the bottom of the screen so it stays readable while the form is scrolled — on the floor, that figure is what someone is after, not the form.

Production board

Task detail
Phone app
Production board + Task detail
The production board and its task detail travel to the phone, so a job's status can be changed from the production floor without walking back to an office computer.
Outcomes we observed
Work that used to be spread across several apps now runs in one system: costing, sales, purchasing, inventory, the production board, and double-entry bookkeeping (every transaction recorded as a debit and a credit) all sit in the same place and share the same numbers.
Costing became a more standardised process. Rates are stored as shared data, the formula is applied consistently, and each result can be traced component by component.
The owner can follow the business from a phone — dashboard, stock, orders, even approving purchase orders — without sitting at an office computer.
An honest note: the business impact has never been measured. We hold no before-and-after data, so we make no savings claims on this page.
Other projects




Bersama Jaya Cup
2026Bringing a packaging printing company's records into one system while keeping habits the team already uses, such as dot-matrix invoices and the way operators write print colours.



Flashlight Cleanstar
2026Digitising a motorcycle wash's whole workflow, including a self-service tablet in the waiting room that is not given access to set prices.
Get in touch / →
Working through a similar need?
Tell us about the situation. Together, we can map the need, possible approaches, and an initial scope.
We usually reply within one business day.