Our work

Built by us, in daily use.

Five systems, all running with real users. Three are client builds, shown without names, logos or customer data. Each one is recreated here in our own visual language with sample data, the way the demos on the homepage are.

01Our own product · in pilot

Whispr. WhatsApp for schools, done properly.

Schools run parent communication through WhatsApp groups: chaotic, unauditable and dependent on one administrator. Whispr replaces the groups with a platform.

One message, the right parents, a delivery record. Write it once. No group, no forwarding, no phone numbers shared between families.
  • What it does

    Structured contact and class-group management, targeted broadcasts to exactly the right parents, delivery and read tracking, and parent verification by WhatsApp one-time code.

  • What we built

    Everything, from nothing: the brand, the Meta business setup, the database design, the parent and admin apps, authentication and roles, and the marketing site.

  • Why it matters

    A WhatsApp group cannot be audited, cannot be targeted and dies with whoever runs it. A platform can be handed to the next administrator intact.

Built with
ReactViteSupabasePostgres RLSWhatsApp Cloud APIVercel

02For XMwize Solutions

XMByte. Reporting for WhatsApp micro-learning, one tenant at a time.

XMwize delivers short courses over WhatsApp. XMByte is the portal where each facilitator sees how their learners are doing, and only their learners.

Two clients, one platform, no crossing over. The administrator sees everything; each facilitator sees only their own.
  • What it does

    Learner activity flows from the WhatsApp course into a webhook that matches learners, tracks sessions, scores modules and captures every answer. The portal turns that into live dashboards with filtering, paging and one-click Excel export of whatever is on screen.

  • Why it matters

    Tenancy is enforced in the database with row-level security, not in the app code, so no facilitator can see another client's data even if the front end has a bug. That guarantee is what lets XMwize sell live portal access as a premium tier.

Built with
React 18ViteSupabaseEdge functionsRow-level securityRechartsSheetJSManyChatWhatsApp Cloud API

03For a multi-store telecoms retailer

LeadFlow. A WhatsApp group became a tracked pipeline.

Enquiries landed in a WhatsApp group. Whoever saw one first picked it up; after hours, nobody did. Leads were missed, ownership was unclear and nothing was measurable.

Round-robin by store. The live version of this runs on the homepage: an enquiry arrives, becomes a lead, and is assigned and answered.
  • What it does

    Every enquiry is captured as a lead, assigned automatically to a consultant across the stores in turn, and tracked through to a result. The consultant is told by email the moment a lead is theirs.

  • Why it matters

    The clearest before-and-after we have. The same enquiries, the same people, and now every one has an owner, a status and a time on it.

Built with
ReactViteSupabasePostmarkVercel

04For a JSE-listed enterprise ICT provider

Client-success scorecard. Every account's health, in one place.

Service managers look after a portfolio of enterprise accounts. The scorecard is where they track and report each client's health, and where their leadership sees the whole portfolio at once.

One row per account. Managers score their own; leadership reads the whole list. Names here are made up.
  • What it does

    Manager and administrator views with role-based access, user management, and scorecards seeded from live operational data so nobody starts from a blank page.

  • Why it matters

    Enterprise buyers worry about one thing: will this be shipped safely? The development pipeline mirrors the backend's branches, so feature work runs against an isolated copy while production stays untouched.

Built with
ReactViteXanoVercelBranch-based environments

05For the same enterprise ICT provider

Consolidated CX portal. Three tools became one.

Customer nominations, close-the-loop case management and remedial-action tracking lived in three separate systems. Now they are one portal with one login.

One login, three jobs. Every case from the old systems is still here, with its history.
  • What we built

    The interface was the easy part. Years of history arrived as CSV exports from three systems with three different structures, and had to be reconciled, de-duplicated and loaded without losing a record. A secured super-admin layer sits over all three tools.

  • Why it matters

    Most agencies show new builds. This one shows we can replace systems people already depend on, with their history intact.

Built with
ReactViteSupabaseData migrationVercel

Your turn

Want something like this?

A rough idea is enough, even a sentence. You will hear back within 24 hours.