What We Build
Three case studies, then our product portfolio. The first two clients are anonymised; the third is our own product. Each one is framed the same way — the Problem we were asked to solve, our Approach, the Technology we used, and the Outcome.
Case studies
Case study 1 · Anonymised client
A national agricultural education group
A national agricultural education group asked us to take over a student system a vendor had stopped supporting. The client is anonymised here.
- Problem
- Their student records sat in a locked-in platform the vendor wouldn't fix. Payments went missing (Finance kept a second copy in a spreadsheet), staff shared logins, every applicant touched seven manual steps, and there were no backups. A system they paid for had become a liability.
- Approach
- We took over running and securing the live learning platform, then built a new student system from scratch — application, student, and admin portals behind one login — so the group owns its own data and its own process, end to end.
- Technology
- Python and FastAPI on PostgreSQL, Next.js on the front end, Authentik for single sign-on, Docker for deploys. The kind of boring, well-documented tools you can still maintain in ten years.
- Outcome
- Ten campuses and 51 qualifications now run on the new system. A single payment action kicks off six automations at once. We also caught a subtle copy bug that had been quietly corrupting assessments in a third of their courses, and fixed it without losing a single grade.
Case study 2 · Anonymised client
A Johannesburg electronics company
A Johannesburg electronics company had us modernise a security platform they'd inherited. The client is anonymised here.
- Problem
- They ran a guard- and security-management platform built from two inherited systems nobody had documented — a 137,000-line web app and an Android app where one file made up nearly half the code. It looked unprofessional, the hosting was unreliable, and the owner told us plainly that the look and feel was the main thing holding back growth.
- Approach
- We rebuilt it as one platform: a web Control Room for supervisors and clients, and a native Android app for guards in the field, on a hardened backend. We documented the old system before changing a thing, and migrated every table without losing data.
- Technology
- React and TypeScript for the web, Kotlin for Android, the existing PHP backend hardened rather than rewritten, MySQL, Docker, and push-to-deploy CI/CD.
- Outcome
- In the first month we shipped what had been planned for ten weeks — the infrastructure, the whole web Control Room, and the admin API. Web and native Android delivered together, which their main competitor can't match (theirs is a web app only).
Case study 3 · Our own product
reverseTax
A live, public tool we built and run ourselves — you can try it before you read any further.
- Problem
- Every South African salary calculator works one way: put in your gross salary, see what lands in your bank. But the question people actually ask is the opposite — "I want to take home R40,000; what gross do I need to negotiate?" Nobody answered it.
- Approach
- We built reverseTax: type the take-home pay you want, get the gross salary that delivers it, with the full PAYE, UIF and benefits breakdown. The calculation engine was checked against real payslips until it was right.
- Technology
- React and TypeScript, running entirely in your browser (no data leaves your device), Docker and nginx for hosting, GA4 and Sentry so we can see it working.
- Outcome
- Live and growing on organic search. The net figure matches a real payslip to within a cent, and after an optimisation pass the bundle dropped by two-thirds with Core Web Vitals firmly in the green.
Products
Portfolio products built to solve focused business problems.
TimeSlot
Scheduling and time-slot management for teams that need precise coordination without the operational drag.
SpriteStash
Asset and sprite management for game developers, keeping art pipelines organized and version-controlled.
reverseTax
Reverse-calculates tax-inclusive figures so finance teams see the exact breakdown behind every transaction.