Custom software  ·  Durban

We replace the spreadsheet, the workaround, and the ten-year-old website.

Custom software for South African businesses that have outgrown what they are using. Websites, applications, integrations and the automation behind them — built by the two developers you will deal with directly.

thornhill-logistics.co.za
BeforeAfter Drag to compare

Neither company is real. Send us your web address and we will build you the same comparison, with your own site in it.

01
What we build

Applications, integrations, automations and care plans.

Websites are the one at the top of the page. Here are the other four. Each of them runs, on invented figures, so you can try them instead of taking our word for it.

Applications

When the spreadsheet stops coping.

Somebody is keeping the business alive in a workbook nobody else can open. We turn it into a system with permissions, a history, and no version seven.

  • Everyone works in the same record, at the same time
  • Who changed what, and when, without asking around
  • Rules enforced once, instead of remembered by one person
Claims_FINAL_v7_USE_THIS(2).xlsx
D7 =IF(ISERROR(VLOOKUP(A7,'Sheet3 (old)'!A:F,4,0)),IF(C7>30,"OVERDUE",VLOOKUP(…
 ABCDE
1RefClientDaysStatusAmt
2CLM-1841Naidoo Bros12ok14 200
3CLM-1842Naidoo Bros.12ok?? dup14 200
4CLM-1855Pinetown Mills41OVERDUE38 900
5clm 1856Thornhill #REF!#REF!
6CLM-1861Umhlanga Dental3waiting on S.6 400
7CLM-1862Ballito Retail33OVERDUE21 750
8     
Sheet1Sheet3 (old)DO NOT DELETECopy of Sheet1

One row is a duplicate, one formula has given up, and the status column is in three people’s handwriting. If yours looks anything like this, switch it over.

Integrations

Two systems that should be talking.

Someone is retyping the same record twice a day because the policy system and the accounting package have never been introduced. They can be.

  • APIs, scheduled syncs, or a file drop — whatever the older system allows
  • Every transfer logged, so a missing record is a question with an answer
  • Retries and alerts, so a failure is noticed before the client notices
integration monitor
Policy system
On-premise · SQL Server
Connected
Accounting
Cloud · REST API
Connected
08:14:02CLM-1861 posted → invoice INV-4417
08:12:48CLM-1856 posted → invoice INV-4416
1 284Synced this month
0Retyped by hand
2.1sMedian round trip

Send one through and watch it cross. The number worth watching is the one that stays at zero: nobody has to retype anything, ever again.

Automations

The Monday morning report, run without a Monday morning.

Every business has a job somebody does by hand every week because it has always been done by hand. It is usually the cheapest thing we will ever fix for you.

  • Runs on a schedule, or when something happens — not when someone remembers
  • Tells you when it could not finish, instead of failing quietly
  • The same output, every time, at 06:00 on a public holiday
By hand 2h 40m
Ready — 14 steps, every Monday
Automated 4.2s
Ready — runs 06:00, unattended
138 hrsGiven back per year
06:00 MonRuns without anyone

The job here is a weekly report: pull the figures, clean them, build it, send it to six people. Run them both and see what your Monday could look like.

Care plans

Someone watching your system at two in the morning.

Hosting, monitoring, updates and a few change hours a month, for a flat fee you can cancel on a month’s notice. This is what the fee actually buys.

  • We are told before you are, and usually before your customers are
  • Patches and backups applied on a schedule, with restores tested
  • Small changes included — no quote for a phone number that moved
status — thornhill production

Response time, last 24 hours

99.98% uptime
Web front end 182 ms
Quote API 240 ms
Nightly backup Completed 02:00
02:00 Backup completed — restore verified

The alert, the fix and the all-clear happened while the client was asleep. Nobody phoned them, and nothing was broken in the morning.

02
How we work

Three stages, and you can stop after any of them.

You never pay for the next stage before you have seen the last one.

Stage one — paid, fixed fee

Discovery sprint

We write down exactly what the software must do, draw the main screens, and give you a price you can hold us to. Credited against the build if you go ahead.

Stage two — fixed scope

The build

Half on signature, half when you sign the work off. A working demo every two weeks, so nothing is a surprise at the end.

Stage three — optional

Launch and care

Migration, go-live and handover, then 30 days of defect fixes at our cost. A care plan afterwards if you would rather we kept running it.

03
What you pay, and when

Half on signature, half when you sign the work off.

Two invoices, and nothing in between. Move the slider to whatever you had in mind and both figures follow. Nothing arrives that you have not already seen working.

Project value, excluding VAT
R 120 000
R 20 000R 400 000
Invoice one — on signature
R 60 000Payable before we start. Work begins on receipt.
Invoice two — on your sign-off
R 60 000Payable when you have accepted the finished work.

Nothing in between. No progress billing, no surprise line items. A change to the scope is quoted and signed before anyone builds it — including the free ones.

04
Who you deal with

You deal with both of us, every time.

NG

Navashen Govender

Delivery and technology

Architecture, hosting, databases and integrations. The one who will still be there at 02:00 when the alert goes off.

YV

Yasin Vermeulen

Product and clients

Scoping, process design, and the person you call. A background in commercial operations, on your side of the desk.

Tell us what is not working. We will tell you what it costs to fix.

Book a discovery call