1. The idea
In most business software, the things you see — a screen, a report, a chart, an approval route — are written in the programming language the product is built in. Changing one means a developer, a build, a test cycle and a release window. That is why "add a column" costs three weeks.
In ZakERP those things are declarations instead: short text files that describe what you want rather than how to fetch it. The engine reads them at runtime. Save the file, refresh the browser, and the change is live — nothing is compiled, nothing is restarted, and nobody using the system is logged out while it happens.
2. What you can build
Together these cover almost everything a company asks for after go-live.
ScreensA record screen — list, form, fields, validation rules, buttons and permissions.
ReportsA report: columns, filters, a period bar, sorting, export and email.
ChartsA chart with its own filters and date range.
DashboardsA dashboard composing charts and KPI tiles.
ApprovalsAn approval flow: states, levels, actions, notifications.
CalendarsA calendar with layers drawn from different sources.
DialogsA dialog, such as the leave application form.
Home pagesA role's home page: KPI tiles, columns and widgets.
ID cardsA printed ID card, laid out in millimetres.
A standard installation ships 88 screens, 77 reports, 24 charts, 5 dashboards, 8 approval workflows and 17 print templates — all written this way. The product is its own best evidence that the mechanism is enough to build a real ERP with.
3. A report
This is a complete, working report definition. Not an extract — the whole file.
search lateArrivals table attendance select "active = 1" order date desc rows 31 search paginate export columns staff, date, in_time, out_time, status headers "Staff","Date","In","Out","Status" daterange date caption "Period" default month end daterange filter status caption "Status" pick "Late,Late & Early Leave" end filter end search
- A period bar with Today, This Week, This Month, Last Month, This Year, All time and a custom range — opening on the current month.
- A keyword box and a status filter that combine with the period.
- Sortable headings and paging that survive as you move between pages.
- Export to CSV, Excel and PDF of exactly what is on screen.
- A place in the menu, visible only to the roles you allow.
Twenty lines. No SQL joins to hand-write for the paging, no export code, no email code, no permission check to remember. Those come from the engine, which is why they behave identically on all 77 reports.
4. A chart
The same idea gives you charts. A few lines produce an interactive chart with zoom, export, a date range and filters whose options come from the data itself. Defined once, it can sit on a dashboard or on somebody's home page.
5. An ID card
This is the example that usually settles the argument, because it is the kind of thing people expect to need a designer and a developer for. It is a printed employee badge — double-sided, in millimetres, with bleed and safe margins for the print shop.
- Print-ready PDFs at the right physical size, with bleed, for a commercial printer.
- Batch printing for a whole department, from the employee list.
- A self-verifying QR code — scanning a badge opens a page that confirms whether it is genuine.
- Company details pulled from your own settings, so a change of phone number does not mean re-laying-out the card.
6. An approval chain
Approval routes are the thing companies change most often and the thing most systems make hardest to change. In ZakERP the route is a ladder you edit on a screen.
Edited on the Approval Matrix screen. Each level carries a condition, so a level that does not apply to a particular applicant is skipped — and the skip is written to the history. Four different routes through one ladder, as data.
Adding a fifth level, giving a level a stand-in for the holiday season, or changing which manager signs are all edits on a screen: no developer, no release.
7. Without typing anything
You do not have to write these files. The built-in Customisation Studio is a point-and-click builder that writes them for you: add a field to a screen, build a report, make a chart, compose a dashboard.
It also does the parts people forget — it shows you what a change will do before it does it, keeps versions so a change can be rolled back, and exports a set of changes as a bundle you can import on another server. That is what makes "test it first" practical rather than aspirational.
Who actually does this in practice. Not developers, and not everybody. It is typically one or two people — often the person who already builds the company's spreadsheets. Give them a day's training and most requests stop being requests.
8. Getting it live safely
Fast to change and safe to change are different problems. The recommended path:
-
Build it on a test installation
The same product, on any spare machine, restored from a copy of your database.
-
Confirm it does what you meant
Against real data, not three invented rows. This is where most surprises surface, and they are cheap there.
-
Export it as a bundle and import it on the live server
A copy, not a retype — which removes the class of mistake where the live version differs from the tested one by a typo.
-
Refresh the browser
That is the deployment. No restart, no maintenance window, nobody logged out.
9. What your team changes
Most requests after go-live are configuration that your own trained staff do in hours.
Configuration — hours
- New reports, charts and dashboards
- New fields and new screens
- Validation rules and mandatory fields
- Approval routes, levels and stand-ins
- Document numbering, menus, roles and access
- Home pages, printed cards and PDF layouts
The useful question to ask any vendor is not "can it be customised" — everyone says yes. It is "show me the last change you made for a customer, and tell me how long it took." We will answer that on a call, with the file open.