Skip to content

From R7 500

Anything custom

Think it, I make it. For the job that doesn't fit a category.

This is the catch-all. You have a specific problem, there's no product that solves it, and you'd rather have the thing built than work around it. You describe what it must do. I build it, from R7 500.

Good fit
Good for you if you know exactly what outcome you want, nothing on the market delivers it, and you'd rather have it built than keep working around the gap.
Not a fit
Not for you if the brief is still "something like Uber, but for X" — I need to know what the thing must do before I can scope it, and I'll turn down work I can't build properly.
01

What custom actually means here

The work on this site falls into four shapes: a website, an automation, an internal tool, a WhatsApp widget. This page is for the fifth thing. The spreadsheet that has outgrown itself. The quoting calculator nobody sells. The bit of admin you redo by hand every Tuesday.

You don't need a spec. I need the outcome — what should be true once this exists that isn't true now. I turn that into the spec, in writing, and you approve it before I write a line of code.

02

The stack, and why it's boring

My default is Astro 5 static, Tailwind CSS 4 and vanilla JavaScript, with no UI framework. It ships as static files served by nginx from a container on Google Cloud Run, europe-west1. Fonts self-hosted through Fontsource, images through sharp.

Boring is deliberate. Nothing breaks because a dependency moved and there's no framework churn to keep paying for. If your job genuinely needs something outside that, I say so in the scope rather than bending the wrong tool.

03

Nothing ships on a guess

I measure before I design. Every brand colour gets a contrast ratio before it goes near text. Verification is empirical: headless Chrome via Puppeteer checking overflow at 320, 390, 768 and 1440, and pixel-sampling the rendered background for the real ratio instead of the one the palette promised.

The same applies to data. On a timber decking site I typed Janka hardness as number-or-null, because composite has no Janka figure and printing "0 lbf" would have been a lie. Custom software is made of decisions like that. I'd rather show a blank than a wrong number.

Included

What you get

  • A written scope before anything is built
  • The build itself, working end to end
  • Astro 5, Tailwind CSS 4, vanilla JavaScript
  • Deployed to Google Cloud Run, europe-west1
  • Every colour contrast-measured before use
  • Overflow verified at 320, 390, 768, 1440
  • Progress by WhatsApp or email while I build
Process

How it runs

  1. 01 Tell me what it must do WhatsApp, email or the short form on this site. Describe the outcome, not the software. I ask questions until I understand the job.
  2. 02 I write the scope What it does, what it deliberately does not do, and the price. If I don't think I can build it properly, you hear that here and not later.
  3. 03 I build it Solo, start to finish. You see it working in stages rather than getting one reveal at the end.
  4. 04 Verified, then live Contrast pixel-sampled, layouts checked in headless Chrome at four widths, then deployed to Cloud Run.
Questions

Straight answers

Have you built something like mine before?
Probably not, and I won't pretend otherwise. I have built five websites, four of them live. What carries across is method: measure before you design, and verify in a real browser instead of trusting an opinion.
What can you actually build?
Websites, automations, internal tools, WhatsApp widgets, and things that don't have a name yet. Ask me about yours. If it's outside what I can do well, I'll tell you straight.
Why does it start at R7 500?
That's the floor for a job worth scoping properly. Below it you're usually better served by something off the shelf. Your real number comes from the scope, in writing, before I start.
How do we talk?
WhatsApp, email, or the form on this site. Writing keeps the scope precise and leaves us both a record of what was agreed.

Start a job

Need anything custom?

Good for you if you know exactly what outcome you want, nothing on the market delivers it, and you'd rather have it built than keep working around the gap.

Pick whichever suits you

5 builds 4 live from R4 500 Cape Town