Capability 10 · Business Software

Business Software

Software for how your business actually runs — not how a template pretends it runs.

Before you read: Written from live engineering practice — the money-moving, million-user work our team runs on our own products, set down so anyone building something can learn from it.

01 · What it is

Generic software forces your business into its shape. We build business software the other way around: shaped around your actual process — your forms, your approval chains, your terminology, your statuses — while staying flexible enough to change when the business does. Whether it is one workflow you want out of Excel or a complete operation replacing three disjoint tools, the result is software your staff actually want to use, with records that are searchable, statuses that are honest, and reports that match the decisions you really make.

What a business software build covers:

  • Built around the specific process, not a generic template
  • From a single flow to a complete operation, grown deliberately
  • Forms, approvals & workflows with an audit trail
  • Records, statuses & searchable history for every item
  • Role-based access for staff, managers & owners
  • Reports that answer the questions you actually ask
What we do · How we do it — as TGJOF Enterprise

This is how we do Business Software

Business software lives or dies on whether it adopts the shape of the operation instead of forcing the operation into its shape. We build the systems a company runs its days on — orders and stock, jobs and cases, approvals and documents, invoicing and collections — with every status, field and approval chain written in the business's own words. Money is present from the first invoice, so the discipline that protects it is present from the first sprint. The measure is unglamorous: the system is still earning its keep on ordinary Tuesdays years after go-live.

What we do

  • Process-first modelling — the statuses, fields and approval chains are taken from how the business actually decides, never from a template's assumptions.
  • The workflow out of the spreadsheet — the tabs and the exceptions that passed between desks become one record with versions, history and rules that refuse the invalid next step.
  • Money runs inside the workflow — invoices, collections and refunds are ledger entries with references, written atomically with the balance they change.
  • Records that survive the question — every status leaves an audit trail, every approval carries its evidence, and stable references stay traceable years later.
  • Adoption built as a deliverable — training, champions inside the business and a support line that answers are engineered in from the first week, because an unused system is a museum piece.

How we do it

  • We study the floor before any screen appears — the work starts as a study of the real flow, exceptions included, so the design matches the operation instead of a demo.
  • Rules replace remembering — where the old process relied on someone checking, the system refuses the invalid next step outright and escalates whatever stalls.
  • Every rail is a first-class adapter — M-Pesa/Daraja, PayPal, Stripe, PayStack, cards and bank transfers integrate behind one interface with idempotency, verification and reconciliation on each.
  • History is imported, never rebuilt — old rows come over with their dates and references intact, verified batch by batch against the source before anyone relies on them.
  • Cutover is earned, not scheduled — the new and old systems run side by side until the new one has proven itself on real work, with a rollback path kept open.

02 · The full discipline

Generic software forces your business into its shape. We build software that fits yours — and survives the week it goes live.

Every business that has run on paperwork, spreadsheets and a WhatsApp group has hit the same wall: the tools bend the work into their shape, the template's terms replace your terms, and the one record everyone depends on lives in someone's inbox. Business software that is worth the money takes the messy, real operation — the forms, the approvals, the statuses, the people — and makes it run faster without making it run differently.

We build the operational systems behind Kenyan businesses — the software a company runs its days on: orders and stock, jobs and cases, approvals and documents, invoicing and collections, reports and the money moving underneath it all. Because we operate KodiiPay as a live payments platform on M-Pesa, every business system we touch has payments wired in as a first-class citizen: STK Push collections, PayBill and Till receipting, wallets, ledgers, idempotency, escrow, rate limits, reconciliation and audit trails — the discipline of money applied to the day-to-day operation, not bolted on afterwards.

Below is how we build business software that people actually use. Every section covers the machinery from intake to approval to payment to the report that tells the owner the truth — what matters, why it matters, and how it is genuinely built.

03

Shaped around your process, not a template's

Generic software ships with the assumptions of whoever wrote it — its statuses, its terminology, its idea of how your work flows. The moment a business is forced to translate its own operation into a stranger's model, that system starts losing money in friction it never sees. We build the other way around: the software adopts the shape of the process, and the process keeps its shape.

  • Custom statuses — the statuses your work actually passes through, named in your words, ordered in your order, enforced so nothing skips a step that matters.
  • Your fields — the form captures the information your operation needs, no more and no less; a template field that is 'mostly right' is a battle fought every single day.
  • Your approval chain — who approves what, in what order, with what named fallback when someone is away — modelled the way your business actually decides.
  • One workflow out of Excel — the spreadsheet that passed between desks becomes one record one person updates, with versions and history replacing silent overwrites.
  • Or an operation replacing three tools — bookings, delivery, payment and follow-up consolidated into one connected flow instead of three half-synchronized systems.
  • Room to change — the workflow ships configurable enough that next month's new requirement is a field and a rule, not a rewrite of everything built so far.

The measure of fit is boring and exact: staff stop translating their job into software-speak and start just doing it. If the system fights the process, it will be abandoned; if it carries the process, it gets adopted.

04

The workflow out of Excel

Most good business systems do not replace a glorious model — they replace the heroics of a spreadsheet that 'kind of works' if everyone uses the same tab. The migration starts by studying the real process while it is still running, because the spreadsheet's truth is in its exceptions as much as its rules.

  • Audit the current process first — we sit with the people who actually do the work and watch the real flow before any screen is drawn; the migration starts as a study, not a design.
  • Capture the exceptions — what happens when someone is away, when stock is short, when a customer disputes — because a system that handles only the happy path fails exactly when it is needed most.
  • Keep the team's words — the word the floor uses is the word in the system; nobody should translate their own job to operate software.
  • Import the past — historical rows come over with their dates and references intact, so the new system starts with the business's real history instead of a clean slate that lies.
  • Let rules replace hope — where the spreadsheet relied on someone remembering to check, the system refuses the invalid next step outright.
  • Cut over without burning the business — new and old run side by side until the new one has earned its place; the switch is a decision made on evidence, not a deadline imposed on a Friday.

A workflow migration is a change to how people work, and people trust what they have watched succeed. The system earns its cutover by being faster on the second day, not by a launch announcement on the first.

05

Software your staff actually use

The best architecture in the world is worthless if the person entering the data is fighting the screen. The system that wins is the one people keep open on Friday afternoon — which is why the daily experience gets the same engineering attention as the database.

  • Speed — the screen that opens in one second gets used; the screen that takes five is a reason to go back to the notebook.
  • Searchability — search, filters and saved views that find any record in seconds, because the person waiting is usually a customer or a boss.
  • Sensible defaults — fields pre-fill where the answer is predictable, so entry becomes confirmation instead of typing.
  • Fewer fields — every field is a question; we cut the ones nobody can answer and keep the ones the work actually answers with.
  • Clear next steps — every screen knows what happens next, so a user never dead-ends at a record with no idea what to do with it.
  • The Friday-afternoon test — the real standard is whether people still keep the system open at the end of a draining week; that is the bar we build to.

Adoption is not a training problem rescued at the end; it is a design property of every screen. The system that is a pleasure to use at 4pm on a Friday has already won the adoption war.

06

Records you can stand behind

Business software is a promise-keeper: it remembers what was agreed, what was approved and what changed. When a dispute arrives — with a customer, a supplier, an auditor, a regulator — the record is the answer. That is only true if the record is trustworthy and complete.

  • Every status leaves a trail — who changed a record, when, and from what to what, recorded automatically so 'who decided this' is always answerable.
  • Approvals with an audit chain — the approver, the timestamp, the version they approved and the evidence they saw all sit on the record together.
  • History and versions — edits append rather than overwrite, so nothing is lost to a silent save; the previous state is a click away, not a restore job.
  • Statuses that mean the same thing everywhere — one definition, one owner, written down, so sales and finance are looking at the same reality, not their own versions of it.
  • Stable references — every record carries a reference that survives renames and reorganisations, because invoices and agreements will cite it for years.
  • The record outlives the person — when the staff member who 'knows where it is' leaves, the system still knows; that is the actual point of good records.

A record that cannot answer 'who, what, when and why' is not a record — it is a rumour with formatting. We build records that hold up under the question they get asked hardest.

07

Approval chains with real teeth

An approval chain is a promise about who decides. If the chain can be skipped by silence, ignored by absence or forged by impersonation, the promise is decorative. We build chains that decide when the deciders are away, record every step, and refuse the shortcuts.

  • No bypass by silence — an approval that quietly expires into an approval is a policy decision, not a default; the expiry rule is visible and consciously chosen.
  • Honest fallbacks — when an approver is away, the chain reaches their named alternate and the trail records who actually approved and on what basis.
  • Evidence in front of the approver — the approver sees the amount, the lineage and the attached documents, not a bare 'please approve' button.
  • Segregation by design — the person who raises a payment never approves it; spending and checking are different hands, enforced by the system's rules.
  • Limits that bind — approval thresholds come from recorded policy, so a manager can never be routed a decision past their authority by accident.
  • Escalation that moves — a stuck approval surfaces on the dashboard and reaches the right person instead of lingering in a queue until someone asks about it.

Speed and control are not opposites in a good chain — the chain is fast because it is unambiguous about who, when and how. We build approval that a growing business never has to rebuild.

08

The money inside the workflow

Most business systems eventually touch money — invoices, deposits, payments, refunds. That is where a business system turns into something serious, and where the payment discipline we run on our own platform becomes the client's safety. Money inside a workflow must be exact, idempotent and provable, exactly like money on a payments platform.

  • Invoices that collect on the rail the customer holds — M-Pesa via a PayBill account or an STK Push in the home market, cards, PayPal or Stripe elsewhere — the same screen opens the payment the moment the customer is ready.
  • Ledgers that never lie — every collection, refund and fee is a ledger entry with a reference, written atomically with the balance it changes.
  • Idempotency everywhere — a retried payment request is answered with the settled truth, never a second charge; a flaky network never takes the customer's money twice.
  • Escrow and holds — a payment that is pending stays out of 'available' until it is genuinely confirmed; nothing is spendable before it is real.
  • Reconciliation with the bank — the system's day totals are matched against the statement, so 'the money cleared' is verified, not assumed.
  • KRA-ready records — receipts carry the references, dates and amounts an accountant or a Kenya Revenue Authority inspection can trace without a scramble.

When an invoice becomes a payment, the business system becomes a money system — and it must behave like one. We bring the machinery of a live payments platform to every invoice and settlement in the workflow.

09

The discipline of money applied to business

Money attached to a business system inherits every hazard of money anywhere else: double charges, lost payments, racing collections, fraud that walks through open doors. The discipline that protects it is structural, applied at the data layer and the gateway, not left to procedure documents.

  • Rate limits on every money action — per-user, per-action windows at the gateway and inside logic, because a money API being hammered is a fraud attempt, not a load test.
  • Row-level locks for concurrent collections — two payments on the same account cannot both succeed past the available balance; the check and the write are one atomic act.
  • Terminal states — once confirmed, reversed or failed, a transaction is final; every retry and every callback returns the settled answer and never re-runs the work.
  • Callbacks verified before credit — a payment claim is checked against the gateway's own status before the business books it; the truth is proven, not trusted.
  • Advisory-locked crons — scheduled jobs — stale-payment expiry, dunning, reconciliations — claim locks and skip rows already in flight, so overlapping runs cannot double anything.
  • Audit trails a regulator recognises — actor, timestamp, reference and outcome on every movement, so 'where did that money go' has an answer in minutes, not a reconstruction over weeks.

The difference between business software with money and a real money system is exactly this discipline. We build both sides because we run one side every day.

10

Money, through every rail

The customer who is ready to pay will settle on whichever rail they already hold — the M-Pesa number in their pocket here at home, the card on file, a wallet balance, a transfer slip — and the protection around that money must be identical no matter which pipe carries it. M-Pesa/Daraja is where we live this discipline day to day, and PayPal, Stripe, PayStack, cards and bank transfers join it as adapters held to the same bar.

  • Rails as adapters, one discipline — M-Pesa/Daraja, PayPal, Stripe, PayStack, cards and bank transfers come in behind one interface, so the workflow never forks a special path per gateway.
  • Verified on every rail, not just the home one — whatever the gateway, its 'paid' callback is checked against that gateway's own status before the ledger books a shilling.
  • Idempotency that travels with the payment — a retry or a redelivered callback returns the settled truth whichever rail carried the original attempt.
  • One ledger for every collection — the entry, the reference and the balance change are written atomically regardless of which adapter delivered the money.
  • Rate limits and locks on every path — per-user windows and row-level locks guard a card swipe, a bank transfer and an STK push with the same strictness.
  • Reconciliation against each rail's statement — day totals from every adapter are matched to that adapter's own settlement, so nothing is assumed and nothing drifts.

The customer should be free to choose the rail, and the business should never have to lower its money standards to let them. When every pipe behaves like a well-run rail — verified, idempotent, reconcilable — 'where did the money come in' stops being a worry and becomes a settled answer.

11

Search and speed: the daily experience

In a busy operation, every slow lookup is a customer on hold or a decision on pause. Speed is not a performance nicety in business software — it is the difference between a system people consult and a system people resent.

  • Indexed from day one — the lookups people actually run — by name, reference, status and date — are indexed before the volume arrives, not after the complaints.
  • Filters that compose — status plus branch plus date range in two taps, with saved views for the searches the team runs every single morning.
  • Autocomplete and typeahead — the customer is found as you type; nobody waits for a full query to submit to find a record they already know.
  • Paginated and bounded — the screen loads the page, not the table; even a hundred thousand records open fast because no query drags the whole set.
  • Clean exports — the report, the list and the history export to the formats the accountant and the boss actually open, without gymnastics.
  • Browsing without fear — fast navigation means the person answering a customer question can read the whole history, because no single wait has taught them not to bother.

Speed is respect for the person doing the work. We treat every added millisecond as a tax we are charging the employee who just wants to finish the task.

12

Reports that match the decisions you actually make

Reports exist to support decisions, and decisions happen at a cadence — daily stock calls, weekly sales reviews, month-end closures. A report that is built from decoration metrics nobody acts on is theatre. We build reports from the operational data, at the cadence the decisions actually run.

  • Built from the operational data — the report reads the same records the floor works on, so the dashboard and the files can never disagree.
  • Cadence that fits — daily, weekly, month-end — each decision gets its report at the moment it is made, not in a monthly ritual nobody attends.
  • Drill without losing the trail — every total can be traced back to the individual rows that made it, so 'why is this number this' is one click away.
  • Decisions, not decoration — every chart answers a question someone actually asked; the pretty metric nobody acts on is removed at the first review.
  • One source for owner and floor — the owner reads the operation the way the floor lives it, because both read the same records; no department reports its own private numbers.
  • Automated delivery — the report lands in the inbox and on the dashboard on schedule; nobody has to remember to pull it.

A report nobody believes is worse than no report, because it poisons the numbers the whole operation runs on. We build reports that survive being checked against the floor.

13

Documents and files that stay attached

Contracts, delivery notes, receipts and photos are the evidence side of business records. When they live on personal drives and in WhatsApp chats, the record is only as good as someone's memory of where things were saved. We attach documents to the records they belong to, governed and versioned.

  • One home for every attachment — contracts, delivery notes and photos live against the record they belong to, in one governed store, not across personal drives.
  • Versioned, not overwritten — the new contract version lands beside the old one with who-uploaded-and-when, so the audit trail covers documents too.
  • Compressed for the Kenyan network — uploads are downscaled and re-encoded so a photo taken on a modern phone does not cost somebody a month of data to open.
  • Access controlled — the document a department should not see is not served to it, enforced at the data layer rather than left to discretion.
  • Attachments travel with the workflow — the approval shows the evidence, the handover shows the agreement, the payment shows the receipt; context stays whole.
  • Findable by content — filenames alone are unreliable memory; rich metadata turns 'find the Nakuru branch contract' into a query, not a scavenger hunt.

A document that cannot be found is a document that does not exist when it matters. We make the evidence as searchable and auditable as the record it belongs to.

14

Integrations: the system talks to itself

A business system that stands alone recreates the spreadsheets it replaced — a second set of records that drift from the first. The real win is integration: accounting, the website, WhatsApp, SMS, email and exports connected so the business records each fact once and the truth flows. And integrations, like payments, fail intermittently — so they must be built to survive retries.

  • Payments in, payments out — collections and disbursements wired through the discipline of the rails themselves, with M-Pesa/Daraja as the lived example (STK Push, PayBill, Till, C2B, B2B, B2C) and PayPal, Stripe, PayStack, cards and bank transfers as first-class adapters — with verification before any credit.
  • The rest of the stack — accounting, the website, WhatsApp, SMS and spreadsheet exports connected so the business records the truth once and it flows, instead of being re-keyed everywhere.
  • Webhooks that survive — integrations carry idempotency and retries, so a lost webhook never means a lost order or a lost payment record.
  • Dead-letter honesty — what fails is quarantined visibly with its payload intact, so nothing is silently dropped and nothing is silently replayed later.
  • One source of truth — the record lives in the core system and references travel outward, so no spreadsheet copies can drift until they disagree.
  • Migration-friendly by design — imports and exports move data cleanly in and out, because the client's data is theirs and leaving a vendor is a right, not a fight.

Integration done badly doubles the record-keeping; done well, it ends it. We build the wiring so the business stops typing the same thing in two places.

15

Security and permissions in a working business

Business systems hold the company's commercial truth — prices, customers, salaries, margins — and the access model must match the organisation, not a flat 'everyone can see everything'. We build permissions that follow roles and branches, enforced by the database, with admin actions themselves audited.

  • Roles that match the org chart — the accountant sees finance, the floor sees their desks, the manager sees the branch; access follows the role, not the person's memory.
  • Row-level privacy — employees see their own records and their own branch where it matters, and the boss sees the whole — enforced by the database, not by hope.
  • Audited admin — even system administrators' changes are logged; the person who can modify a record is not the person who can hide the modification.
  • Real sign-in discipline — authentication with device limits, session controls and lock screens, borrowed from the security posture of our own payments platform.
  • Revocation that works — when someone leaves, access dies with the exit; session invalidation and audit review are procedures the system supports, not plans in a drawer.
  • The export is the risk — bulk export is a permission like any other, logged and limitable, because the spreadsheet is how data actually leaves the building.

Security in business software is mostly boring — the right people, the right records, the right log. Boring done consistently is what survives the day the question is asked in a serious tone.

16

Adoption: the feature that makes every other one matter

A technically perfect system that nobody uses is a museum piece. Adoption is engineered like a feature: it needs visible early wins, champions inside the business, a support line that answers, and a feedback loop that makes the team feel heard. We treat it as a deliverable, not an afterthought.

  • Train the trainers — we train the people who train the floor, so the system spreads by word of mouth inside the business rather than by a one-day workshop nobody repeats.
  • A low-hassle edge — the morning routine — the check-in, the print, the order entry — works so smoothly on day one that the old way feels slower by day three.
  • Visible wins early — the first report that saves a Friday of manual work is the advertisement that sells the rest of the system to its own users.
  • A support line that answers — a real person who answers the 'how do I do the thing I used to do' questions in the first month is worth more than any training PDF.
  • Feedback is a channel — the team's 'this screen fights me' complaints go into the backlog and get fixed; adoption dies the moment asking feels pointless.
  • Champions inside — we find the person who actually runs the old system and make them the natural owner of the new one; they lead the change better than we ever could.

The best feature of a business system is that people keep using it after the novelty passes. We build the adoption work in from the first week, not as a launch-day event.

17

Migrations that do not panic the business

Migrating from spreadsheets or a legacy system is where most projects quietly fail — data is cleaned lazily, totals drift, and the business ends up reconciling two worlds for months. We treat migration as a verification exercise: every batch imported, every total matched, every phase reversible.

  • Extract with respect — the spreadsheet's data is cleaned, de-duplicated and reconciled against its source before a single row loads; garbage in is a choice, not a given.
  • Historical integrity — old transactions keep their dates, references and ledgers intact, so an accountant can still trace the past inside the new system.
  • Parallel run — both old and new operate until the new has proven itself on real work; the switch-over is a decision made with evidence in hand.
  • Verification checkpoints — after each import, totals are compared — row counts, KES sums, status distributions — so a bad batch is caught before anyone relies on it.
  • A rollback path — the migration is reversible by design; if the new environment misbehaves, the business keeps trading on the old one while we fix.
  • People move too — the plan includes who learns what, when, and who answers questions in the first week; the humans are part of the cutover, not an afterthought.

A migration that keeps the business trading and the books reconciling is a quiet win. We make the quiet win the expected outcome, not a miracle.

18

Operations: who runs it on a Tuesday

The value of business software is realised on ordinary Tuesdays — long after the launch celebration. That is why operations are built in: health monitoring, scheduled jobs, support channels, rehearsed backups and honest reporting about degradation. A system without operations is an incident waiting for a weekday.

  • Monitored health — the system reports when an integration is slow, a queue is building or an error rate is climbing, before the floor notices in production.
  • Scheduled jobs — reconciliation, stale-payment expiry, reminder runs and backups happen on clocks with advisory locks, not on 'someone remembers'.
  • A named support path — a channel where the business raises issues and we answer with a timeline; software without a support path is a liability with a logo.
  • Backups that restore — the restore is rehearsed, not assumed; a backup nobody has restored is a hope, not a backup.
  • Honest uptime — we monitor what the client sees and we tell the truth about degradation; a signal that degrades gracefully beats radio silence that panics.
  • The business knows its system — documentation, contacts and runbooks live where the owner can reach them, so the business is never hostage to one person's head.

The systems that earn their keep are the ones somebody keeps healthy on a normal morning. We operate the ones we build, and we teach the business to run them well when we step back.

19

Honest about what business software cannot do

Because the pitch for business software is so strong, the honest limits deserve saying out loud. Software shapes process; it does not define company character. Adoption is a people problem wearing software clothes. Data quality is a standing discipline. Money software is never finished. We say these things before the contract, not in the post-mortem.

  • Software does not fix a broken process — if the workflow itself is broken, the system just automates the confusion faster; we say so before building confusion at speed.
  • Adoption is a people problem wearing software clothes — the best system can be defeated by a team that never chose it; change management is part of the build or it fails.
  • Data quality is a standing discipline — the system is as honest as the entry habits around it; we build guard rails, but the floor must feed the machine.
  • Money software is never 'done' — the rails change, the regulation changes, the fraud changes; running money is a standing duty, not a one-time feature.
  • Reconciliation reveals the truth — the day the system's totals match the bank's statement to the shilling is the day you know it is real; we build towards that day from the first sprint.
  • You own it — the code, the data, the integrations and the keys are yours; nothing that runs your business should ever be hostage to a vendor relationship.

We would rather tell you the honest limits and earn your trust than skip the warning and earn your disappointment. And when the limits are understood, the system that fits them is genuinely built to last.

The toolchain

The business operations toolchain

The stack we bring to every business system is the same machinery that has kept a live payments platform honest — records, workflows, money, integrations and operations held to standards a working business actually feels.

stack.toolchain

01

Records & workflow

Where the operation lives

  • Managed PostgreSQLThe single source of truth behind every record, status and report the business runs on.
  • Workflow & state engineStatuses, transitions and rules that enforce the real process instead of hoping it is followed.
  • Approvals engineChains, thresholds, fallbacks and escalations that decide with an audit trail and teeth.
  • History & versioningAppend-not-overwrite records so nothing is lost to a silent save.
  • Object storageAttachments and documents governed, versioned and compressed for the Kenyan network.
  • Search layerIndexed lookup, filters and saved views that find any record in seconds.

02

Surfaces & experience

What the floor sees

  • Responsive web appThe main daily screen for the office, fast and navigable without ceremony.
  • Mobile appField work, approvals on the move and data entry where the work actually happens.
  • Desktop experienceHeavy operations, printing and high-volume entry for the people who live in the system.
  • Admin panelConfiguration, permissions, fee/limit settings and the operational controls.
  • Reports builderDecision-shaped reports delivered at the cadence the decisions actually run.

03

Money & ledger

The money inside the workflow

  • Daraja (M-Pesa)STK Push, PayBill, Till, C2B, B2B and B2C wired into invoices and settlements.
  • Double-entry ledgerEvery collection, refund and fee with a reference, written atomically with the balance.
  • Idempotency layerRetries answered with the settled truth; the customer's money is never taken twice.
  • Escrow semanticsPending funds stay out of 'available' until genuinely confirmed.
  • Reconciliation engineDay totals matched against the bank's statement; verified, not assumed.
  • KRA-ready receiptsReceipts and records traceable by an accountant or an inspection without a scramble.

04

Safety & security

Who can do what, and what is recorded

  • Role-based accessPermissions that follow the org chart instead of a flat 'everyone sees everything'.
  • Row-level securityBranch- and owner-scoped visibility enforced by the database, not by discretion.
  • Rate limitingPer-user, per-action windows on every money path — a rate-limited money action is a fraud control.
  • Row-level lockingFOR UPDATE on money rows so concurrent collections cannot both succeed past the balance.
  • Audit trailsActor, timestamp, reference and outcome on every change and every movement.
  • Session controlDevice limits and revocation that actually end access when someone leaves.

05

Integration & data

The system talking to itself

  • REST APIsThe business records facts once and the truth flows to the rest of the stack.
  • Webhooks with retriesIdempotent delivery so a lost webhook never means a lost order or payment record.
  • WhatsApp / SMS / emailThe channels customers and suppliers actually have open, under consent and quiet-hour rules.
  • Import & exportMigration-friendly movement of data, because the client's data is theirs.
  • PDF & document generationInvoices, receipts, delivery notes and agreements rendered consistently.
  • Dead-letter queuesFailures rest visibly with their payload; nothing is silently dropped or replayed.

06

Operations

Runs while you sleep

  • pg_cron jobsReconciliation, stale-payment expiry, dunning and backups on clocks with advisory locks.
  • Health monitoringLatency, error rates and queue depth reported before the floor notices in production.
  • Rehearsed backupsRestores proven, not assumed; a backup that has never been restored is a hope.
  • Support channelA named path with timelines where the business raises issues and gets answers.
  • Feature flagsReleases that can be switched rather than regretted.
  • Incident runbooks'Why is this slow / where is this money' answered in minutes from the records.

07

Delivery & quality

Built to hold

  • CI/CD pipelineEvery change built, tested and promotable without a leap of faith.
  • Automated testsWorkflows, permissions and money paths covered before they reach the floor.
  • Replay & race testsRetries, double-submits and overlapping jobs proven to change the ledger exactly once.
  • Staging environmentThe real shape of the system rehearsed before it touches production data.
  • Versioned migrationsSchema and data changes that roll forward and roll back cleanly.
  • Load checksThe system proven at the month-end volume the business actually expects.

Lifecycle

The business software lifecycle — from the floor to go-live and beyond

Every business system we build follows the same arc: study the real work, model the real process, wire the real money, and then keep it honest through adoption, operation and evolution.

01

Discover

Sit with the people who do the work and map the real process, including the exceptions.

02

Map the money

Trace every payment, approval and record in the current flow before designing anything.

03

Model

Statuses, fields, roles and approval chains agreed in the business's own words.

04

Design

Screens and flows that match how the team works, not how a template imagines it.

05

Build

The system itself — records, workflows, rules and the daily experience.

06

Wire the money

Invoices, payments, ledger, idempotency and reconciliation layers connected.

07

Harden

Permissions, row-level security, audit trails, locks and the fraud posture.

08

Import

Historical data migrated and verified batch by batch against the old records.

09

Train

The people, the champions and the support line that make adoption stick.

10

Cut over

Parallel run until the new system has earned its place on real work.

11

Operate

Monitoring, scheduled jobs, rehearsal of backups and a support path with timelines.

12

Evolve

The system changes as the business changes; nothing is frozen by the first release.

Closing

More than development

Business software is promise-keeping at the scale of a working day — the record of what was agreed, what was approved, what was paid and what changed. We build it so the promise holds. That includes:

Software shaped around your process, not a template's.Statuses, fields, roles and workflows written in your words.Approval chains with audit trails on every step.History and versions on every record, never a silent overwrite.Fast search, filters and saved views that find any record in seconds.Reports that match real decisions at the cadence they are made.Invoices and collections on M-Pesa — STK Push, PayBill and Till.Ledgers, idempotency, escrow and rate limits on every money path.Callbacks verified against the gateway before anything is credited.Reconciliation against the bank's statement, built in and scheduled.KRA-ready receipts and records that trace without a scramble.Integrations — webhooks, WhatsApp, email, SMS and accounting.Webhooks with idempotency so a lost delivery never means a lost record.Row-level permissions that follow roles and branches.Audited admin, so no change can hide itself.Migrations from spreadsheets that verify every batch.Real training, champions inside and a support line that answers.Monitored health, rehearsed backups and honest uptime.Documented, runbooked systems the business can run without us.You own the code, the data, the integrations and the keys.

The value of business software is felt on an ordinary Tuesday — the query answered in seconds, the approval that moved, the payment that reconciled. That is the everyday promise we engineer for.

Our own platform runs on the same discipline — live money on M-Pesa held to a standard a regulator would recognise. Your business system gets the machinery that survived being live, not the one that survived a slide.

Previous capability

Payment & Transaction Systems

Next capability

CRM & Customer Platforms

Building something like this?

The discipline above is what we run on our own products every day. If it would help on yours, our door is open.