Skip to content

Our work

Systems already running
for real businesses.

Client names are withheld where the engagement is under NDA, but the systems, the numbers and the technology are real.

What we've built

Products already running
for real businesses.

01 / 06
Frappe CRM

Frappe CRM

Sales pipeline, deployed and customised

Screenshot coming soon

FrappePythonMariaDBSelf-hosted

Frappe CRM

Sales pipeline, deployed and customised

A self-hosted CRM on the Frappe framework — pipeline stages, lead assignment, quotations and dashboards, customised to the client's own sales process rather than a vendor's template. No per-seat licence.

Case detail

Healthcare retail2025

Pharmacy ERP

A retail pharmacy running 100–150 transactions a day on batch-level inventory, with expiry control and prescription-gated dispensing.

The problem

Generic billing software treats a medicine as one product. The same SKU actually sits on the shelf in three batches at three expiry dates and sometimes three printed MRPs, so batch tracking lived in a paper notebook beside the till — which meant expiry losses were discovered during stock-taking, after the supplier return window had closed.

What we built

Inventory modelled at batch level from the ground up, with first-expiry-first-out selection at billing so old stock clears before it becomes a write-off. Expiry alerts fire in 90/60/30-day tiers grouped by supplier, so one return covers a dozen items. Schedule H dispensing is blocked server-side until the prescribing doctor and prescription reference are captured. Reorder points compute from real sales velocity against supplier lead time rather than a fixed minimum.

100–150
Daily transactions
Per batch
Inventory granularity
Caught in window
Expiry write-offs
Server-enforced
Compliance gate
Home services2025

Field Service CRM

Enquiry-to-invoice for a service business with technicians in the field, replacing a WhatsApp group and a shared spreadsheet.

The problem

Enquiries arrived across three phone numbers and a website form, were copied into a spreadsheet when someone remembered, and got assigned to technicians in a WhatsApp group. Nobody could say how many jobs were open, which technician was free, or why a customer from ten days ago had never been called back.

What we built

A single pipeline with stage-gated required fields and an owner on every record. Overdue follow-ups escalate to the manager's board rather than sitting silently on a rep's list. Technicians get a mobile view of their assigned jobs that works offline in basements and stairwells, with photo capture on completion feeding straight into the invoice.

4 → 1
Lead sources unified
Escalating
Follow-up visibility
Offline-first
Field app
Same day
Job to invoice
Fuel & retail2024

Billing Platform + App

Multi-site billing and reconciliation where every shift closes with an attributed variance instead of a next-day paper argument.

The problem

Fuel retail reconciles in a way no standard billing module expects: dip readings against nozzle totalisers against cash collected against credit issued, per shift, per attendant. Across three sites this happened on paper the following morning, by which point nobody could say which shift a shortfall belonged to.

What we built

Nozzle-level entry capturing opening and closing totaliser readings, tank dips and density, reconciled against cash, card and credit at shift close — so a variance is attributed while the attendant is still on site. Credit customers carry limits enforced at the point of sale rather than reviewed monthly. Thirty-plus reports built from what the operators actually asked for each morning.

3
Sites live
30+
Custom reports
Per shift
Variance attribution
At point of sale
Credit control
Distribution2026

Invoice Extraction Pipeline

An extraction pipeline replacing hours of daily retyping, with a confidence threshold that routes anything uncertain to a person.

The problem

A staff member spent most of each morning opening supplier invoice PDFs and retyping line items, quantities and rates into a spreadsheet. High volume, entirely mechanical, and error-prone in exactly the way that produces disputes with suppliers three weeks later.

What we built

Invoices land in a watched inbox, get parsed to structured line items, and are written straight through when extraction confidence is high. Anything below the threshold — a scanned copy, an unusual layout, a smudged total — goes to a review queue where one click confirms or corrects it. Accuracy is logged per supplier, and drift raises an alert rather than quietly corrupting a quarter of data.

Mostly removed
Manual retyping
Human review
Low-confidence path
Per supplier
Accuracy tracking
Queue, not silence
Failure mode

Next step

Tell us what's slowing
the business down.

One call, a written scope, a fixed price. If a tool you can simply buy would do the job better, we'll say so.

  • Free first consultation
  • Fixed price, written scope
  • Reply within one working day
  • No obligation to proceed