Skip to main content
All work
Manufacturing ERPWeb + Mobile

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.

Landing page
Darmabox — Landing page home
Office web app
Darmabox — Costing calculator
Phone app
Darmabox — Cost breakdown & sheet layout
Darmabox — Production board
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
PlatformsLanding pageOffice web appFloor appServer & API
StackGoVue 3FlutterPostgreSQLRedisDocker

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

Darmabox — Landing page home
Darmabox — Landing page on mobile

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.

Open full size

Darmabox — Costing calculator

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.

Open full size

Darmabox — Material master data

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.

Open full size

Darmabox — Order detail

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.

Open full size

Darmabox — Production card

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.

Open full size

  • Darmabox — Costing form

    Costing form

  • Darmabox — Cost breakdown & sheet layout

    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.

  • Darmabox — Production board

    Production board

  • Darmabox — Task detail

    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.

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.