// systems · internal operations · custom

Software your team runs on, not a brochure your visitors read

If daily operations still run on spreadsheets that clash and a manual scramble every month-end, what you need isn't another website — it's a system that follows how you already work.

// what you can check, not what we can claim

Four terms we'll put in writing

Written
Project scope, milestones, price, and targets
Per proposal
Schedule starts after approved discovery
3 months
Bug-fix support after go-live
100%
Source code is the client's after final payment

Case studies on this site carry anonymized or composite labels according to their origin. No project count or outcome guarantee is presented as independent proof.

A custom information system is internal software built around your company's SOPs — recording transactions, setting access rights, running approvals, and generating reports. It replaces separate Excel files and ledgers with one operational data source. A composite narrative describes a 1,800-member cooperative and reports a six-day close becoming four hours plus a 78% rise in applications. No consent reference, supporting artifacts, raw data, or public URL is available; the figures are not independently verified, are not a published client result, and are not a guarantee. Custom systems always begin with discovery and a written scope and price.

// why an internal system

The point where general tools stop being enough

Picture the 3rd of the month and you're still waiting on recaps from three divisions. "The file's on Bu Rina's laptop, she's on leave." Meanwhile this week's stock decision has to be made that same day — and Excel isn't broken, it just was never designed for eleven people at once. From here there are three paths, and two of them are expensive in ways you don't see. First, monthly subscription tools: fast to switch on, but billed per user, and it's your SOPs that have to bend to the software. Second, a freelancer: cheap up front, then the number goes dead when a bug shows up right in the middle of closing season. Third, a system built around the workflow you've been running for years — tiered approvals, access rights per division, an audit trail you can open when someone comes to inspect. For cooperatives, it's even a legal requirement: financial reports must be presented at the RAT (the annual members' meeting), and Permenkop UKM No 8/2023 (the cooperatives ministry regulation) sets the reporting format. What you're buying isn't just features, it's ownership — source code, database, and the right to change both without asking anyone's permission, which is also what explains the numbers in the proposal. You only find out what ownership costs when you want to leave — and a subscription vendor doesn't have to shut down to make things hard for you, it just has to raise the rate at renewal or move a feature you already use up to the tier above. What moves is the data, not the responsibility. In the eyes of UU No 27/2022 tentang PDP (Indonesia's personal data protection law), you're still the controller of your employee and member data — the vendor is only a processor, and if a breach happens on their servers, the obligation to notify the data owners still lands on you. Your own system doesn't erase that obligation; what changes is that the server credentials are in your hands and the migration schedule is set in an internal meeting, not by a notification email dated 90 days out.

// what you get

What ships with every project

  • Core modules matching your actual process — transactions, stock, cash, members, or whatever has been living in Excel
  • Access rights per division and per position: warehouse staff never see a column that isn't theirs
  • Tiered approvals whose flow you can change yourself when someone gets rotated, without calling a developer
  • A permanent audit trail — who changed what, when, from which value to which
  • A management dashboard with numbers pulled straight from transactions, not retyped every Monday
  • Periodic reports with filters, Excel and PDF export, ready to take into a meeting or hand to an auditor
  • Migration of your old Excel data with balance reconciliation down to the last rupiah
  • Integration with the accounting or POS you already use — Accurate, Jurnal, HubSpot, Moka, Olsera, Pawoon
  • WhatsApp and email notifications for approvals left hanging past their deadline
  • A staging environment separate from production, so changes get tested before they touch real data
  • Daily database backups plus scheduled restore tests — not just backup files nobody ever opens
  • Source code, database schema, and repository access become 100% yours after final payment
  • Technical documentation and usage SOPs in Indonesian for your team going forward
  • Onboarding training per role, plus 3 months of bug fixes at no extra cost

// custom vs subscription vs freelancer

Three routes, three different consequences

AspectSubscription appCustom system
Source code ownershipSubscription tools: you're renting access, you never own anything. Freelancers: source code often gets held back until there's an extra payment — or never handed over at all.Source code, database schema, and repository become yours after final payment. Want to continue with a different developer? Go ahead. Nobody needs our permission.
Cost at 5, 25, and 100 usersBilled per user per month. At 5 people it feels light, at 25 it becomes a fixed budget line, at 100 it turns into a number that climbs every year without you owning anything.A one-time up-front cost. Adding users doesn't add licences — the only thing that goes up is server capacity, and that moves in hundreds of thousands per month, not per head.
Fit with the SOPs you already runYour SOPs bend to the software. Three approval levels get forced down to two, internal terminology gets swapped for vendor terminology, and the team relearns a way of working they'd already mastered over years.The software bends to the SOPs. The flow you already run gets mapped first — exceptions included — and only then does code get written. The words on screen are the words your team uses.
Data location and controlOperational data, employee data, and member data sit on the provider's servers, often outside Indonesian jurisdiction, under terms of service that can change unilaterally.The server location is stated in writing in the contract, and the hosting account is in your company's name. You're the data controller — directly relevant to UU No 27/2022 tentang PDP (Indonesia's personal data protection law).
Maintenance and bug fixesFreelancers: you're depending on one person who may already have a full-time job. Subscription tools: queueing for English-language support that has no idea what tutup buku means.Three months of bug fixes included in the project price. After that, an optional monthly maintenance contract — and if you choose not to continue, the system keeps running.
Risk of being left by the vendorIf the service shuts down, changes direction, or raises its prices, you move on dragging your data out as raw CSV — without any of the business logic that was running behind it.Technical documentation, database schema, and repository are in your hands from handover onward. We pick a common stack, so a replacement is easy to find. The vendor can be swapped; the system doesn't disappear with them.
Integration with what you already useLimited to the official integrations list. If your POS or accounting software isn't on that list, the answer is 'not supported yet' — and your team goes back to typing the same numbers twice.Integrations get built to fit: Accurate, Jurnal, HubSpot, Moka, Olsera, Pawoon, or anything with an API. If the API is closed, we tell you during discovery, not after the contract.

// how it works

Five phases, milestones follow the proposal

01

Discovery & SOP mapping

1-2 weeks, usually 2-3 sessions. We sit down with the people who actually run the process — the cashier, the warehouse admin, the treasurer — not just the owner. What we're hunting for is the exceptions: when the normal rule gets broken, who's allowed to break it, and what happens afterwards. The output of this stage is a written scope document listing modules, roles, and approval flows. That document is where the final number comes from — before it exists, all we can quote is a range.

02

Role map, access rights, and wireframes

Every role gets mapped one by one: what they see the moment they log in, what they're allowed to change, and what shouldn't appear on their screen at all. You sign off on this access matrix in writing, because that's where most internal disputes tend to surface later. We test low-fidelity wireframes with the real future users before a single line of code is written. It's cheaper to move a grey box than to move a database.

03

Two-week build sprints

The build can be divided into sprints with a clickable module demo at agreed checkpoints. Sprint length, demo dates, and the go-live sequence are binding only when stated in the written plan. When the scope and UAT results allow it, the cash module can go into use before the stock module. Feedback enters the backlog and is prioritised together rather than decided unilaterally by us.

04

Data migration & UAT on staging

Old data gets imported into staging, then reconciled: total balances, row counts, and per-account figures have to match the old files exactly. A one-rupiah discrepancy means the migration gets redone. Once the numbers are clean, your team uses the system on staging with real scenarios for a few days — daily transactions, a trial close, the reports people usually ask for. Bugs, UX confusion, and requirements that only surface now get logged and resolved before go-live.

05

Phased go-live, training, handover

The switchover happens in stages, not overnight. Usually the new system and the old records run in parallel for one period, until you're confident the numbers agree. Training is built per role — the cashier doesn't need to sit through the board's session. Handover covers the repository, hosting credentials in your company's name, the database schema, and technical documentation. For three months afterwards bug fixes are included in the project price; a monthly maintenance contract is optional and you're free to turn it down.

Internal systems don't fall over because they're short on features, but because the data model was wrong from week one. That's where we start — entities, relationships, and the rules that must never be broken get enforced at the database level, not just in the interface. Access rights are designed per role and per division, so warehouse staff never see the salary column. Every change to a number leaves a trace: who, when, from which value to which — an audit trail that can't be deleted from the screen. Tiered approvals are built as a flow you can change yourself, not hard-coded logic we have to touch every time someone gets rotated. If Accurate, Jurnal, or Moka are already running, this system attaches to them through API integration, and approval notifications land in your team's WhatsApp — not an email nobody ever opens. For field staff, the interface can be wrapped as an app installed on the phone. Data sits on servers whose location is written into the contract, because UU No 27/2022 tentang PDP (Indonesia's personal data protection law) puts the responsibility on you as the controller. Daily backups, restores tested, not assumed. What decides whether this system can still be carried on three years from now isn't the programming language, it's what gets handed over alongside the code at handover: the database schema plus sequential migration files, so the structure can be rebuilt from scratch without guesswork. Business rules that aren't standard — caps per grade, service rounding, approval exceptions — are written as Indonesian-language notes right where the rule runs, not in a separate document that's always one revision behind. After go-live, every change request is quoted with a written hour estimate up front, and you're free to turn it down and take the same work to another developer. We don't hold anything that makes saying no expensive.

// investment

Ranges, not packages

Compact system

Rp 15-30jt

3-5 core modules, 1-3 user roles, one location. A fit when what you're replacing is a handful of Excel files and one manual ledger. Light data migration, no third-party integrations yet.

Most commonly chosen

Rp 30-60jt

Multi-module with tiered approvals, many roles, integration with accounting or POS, and custom reports for board or director meetings. This is the range that most often fits organisations of 20-150 people.

Large scale

Rp 60jt+

Multi-branch or multi-tenant, high transaction volume, large data migration from several sources at once. Usually split into several release phases so the switchover risk stays under control.

These are ranges, not packages, and discovery is required before any range becomes one exact written figure. The number of modules, roles and approval levels, legacy-data migration, and integrations determine the quote. Full internal systems start at Rp 15jt; if discovery shows the need is smaller, we say so and direct you to a lighter service.

// a good fit when

The conditions that make this worth it

  • Businesses of 20-150 employees whose daily operations have pushed past what Excel can reasonably handle
  • Savings-and-loan cooperatives required to present financial reports at the RAT every year
  • Distributors or manufacturers with tiered approvals and more than one warehouse
  • Companies whose SOPs are already written up neatly but have no system running them
  • Multi-branch businesses whose daily reports still get sent over WhatsApp every afternoon

// not yet a fit when

When you shouldn't build a custom system

  • Anyone who just needs standard bookkeeping — buy Accurate or Jurnal, far cheaper and matured over years

  • Anyone who just needs a shop till and simple stock — Moka, Olsera, or Pawoon solve that this month, no project required

  • Anyone whose SOPs aren't written down yet and still change monthly — fix the process first, a system will only lock the chaos in permanently

  • Anyone who really just wants prospects to find them on Google — that's a company profile website's job, not an internal system

  • Anyone whose budget is below Rp 15jt and cannot move — we decline rather than cut scope until the system is no longer useful

// questions

What people usually ask first.

How is this different from the custom web app service?

The difference is who uses it. A [web app](/layanan/web-app) is built for users outside your organisation — customers, participants, members. The information system on this page is used inward: the operations team, cashiers, the warehouse head, the board. A small scoped Custom/Add-on can start from Rp 1jt, while the full internal systems described here start from Rp 15jt because they add SOP mapping, legacy-data migration, and audit requirements. Both receive an exact written quote after discovery.

How long until the team can actually use the system?

A compact system with 3-5 modules generally takes 8-12 weeks from kick-off to full use. Larger scopes can take 3-5 months because tiered approvals and integrations add testing rounds. The exact timeline is written alongside the quote after discovery, with a demo at each two-week sprint.

Our data has been in Excel for years. Can it move over without losses?

It can, and that's part of the scope — not a cost that suddenly appears mid-project. The process has three steps. First, we read your files as they are, messy formatting and columns whose meaning changed in a particular year included. Second, the data gets mapped to the new structure and imported into staging. Third, reconciliation: total balances, row counts, and per-account figures in the new system have to match the old files exactly before we declare it ready. A one-rupiah discrepancy means we redo it. You keep the old Excel files as an archive.

Who owns the source code and the database?

You do, entirely, after final payment. Source code, database schema, and repository access are handed over at handover along with the technical documentation. We don't hold licences, we don't lock features, and we don't withhold anything as leverage to keep you subscribed. Practically: another developer can read and continue this work without needing to contact us at all. That does reduce your dependence on us, and it's deliberate — a vendor who withholds source code is protecting itself, not its client.

If Webiti stops operating, does our system die with it?

Prospects rarely ask this, even though it's the most important one. The answer is no, because not one part of your system depends on our servers or our licences. What you hold from handover onward — the repository, hosting credentials in your company's name, the database schema, and the documentation — is enough for any developer to carry on. We also deliberately avoid exotic technology only a handful of people understand. The stack is chosen from what's common in the Indonesian market, so a replacement is easy to find and the rates are reasonable.

We already use Accurate and Moka. Do we have to replace them?

You don't need to, and usually you shouldn't. Accurate or Jurnal already handle accounting properly, Moka or Olsera already handle the till. What they don't handle is the part in between — purchase approvals, stock allocation between branches, commission calculations, or rules specific to your business. That's where a custom system comes in, then attaches via API so the numbers don't get typed twice. We check the API documentation for the products you use during discovery. If it turns out to be closed, we tell you from the start — not after the contract is signed.

What are the running costs per month once the system is live?

There are three line items and we lay all of them out in the proposal. First, hosting and database: for an internal system with dozens of active users it's generally Rp 300rb-1,5jt per month, rising with transaction volume and data size. Second, domain and certificate — small numbers, and annual. Third, optional monthly maintenance, covering security patches, small adjustments, and response priority. If you have your own IT team, the third item can be skipped with no consequences. For the first three months after go-live, bug fixes are already included in the project price.

Who holds the server credentials, and how is access revoked when a staff member resigns?

The hosting and domain accounts are registered under your company's name with a company email — not an employee's personal email, and not our account. During development we use separate developer access that you can revoke yourself at any time; if you don't take a maintenance contract after the three months of bug fixes, we're the ones asking for that access to be revoked. Inside the system, every person has their own account — no shared login for a whole division, because a shared login strips the audit trail of its meaning. When a staff member leaves, the account is deactivated, not deleted, so old transactions they entered can still be traced back to whoever made them. The limit is clear: we can build the mechanism, but if your team shares passwords with each other, no system can help. That policy stays yours.

What do we need to prepare so the project doesn't drag on?

Four things, and three of them aren't documents. First, one PIC with the authority to decide, not just to pass questions up to a superior — this is what shifts the schedule most often. Second, access to the people who actually run the process: the cashier, the warehouse admin, the treasurer, one to two hours each during discovery. Third, your Excel files and SOPs exactly as they are, including the ones whose formatting is already a mess; tidying them up first hides the exception cases we need to see. Fourth, your team's time for UAT — the 1-2 weeks in the schedule are their working hours, not ours. What we can't supply: the decision on who's allowed to approve above the cap, and which number is correct when two old files disagree. Those two are your authority, and the project does stop there until they're decided. Bring it up from the [first conversation](/kontak).

// ready to start?

Build Your Business a Website
Right Now!

Free consultation via WhatsApp. We review your needs, give you a time & price estimate, then start together — no drama.

→ See examples of our workTerms & Conditions