Skip to content
04 Pricing from R15 000

Pricing

These are starting prices, in rand, for work I do alone in Cape Town. Nothing here is a template I bought and reskinned. The sites on this page are built from scratch in Astro 5 with Tailwind 4 and vanilla JavaScript, and the live ones are deployed to Google Cloud Run in europe-west1, served by nginx from a container.

01

Small site

R15 000

Starting price

A trade or a one-person business that needs a real address on the internet instead of a Facebook page. You know what you do, you can say it in five pages, and you want people to phone you.

3 to 6 pages

  • Every brand colour measured for contrast before I design with it. Anything that fails as text gets split into a fill-only token plus a darker text-safe one. Solar DNA's orange #FE9700 measured 2.18:1 as text, so it became fill-only and #AB6600 at 4.53:1 carried the words.
  • Astro 5, Tailwind 4, vanilla JavaScript. No UI framework, no page builder, no plugin bloat.
  • Fonts self-hosted through Fontsource. Images run through astro:assets and sharp.
  • One contact form, fields matched to what you actually collect, with an error message that appears when the form fails.
  • A WhatsApp enquiry button in WhatsApp's own brand green, using WhatsApp's exact logo geometry.
  • Checked in headless Chrome at 320, 390, 768 and 1440 for horizontal overflow. The built output is what I test, not the source.
  • Deployed to Cloud Run, europe-west1. I hand you the URL.
Ask about Small site

02

Full site

R38 000

Starting price

An established business with several services, real photography or a brand book, and enough to say that one page won't hold it. Both revamps I've done landed here: Solar DNA and Wilton Plumbing.

8 to 14 pages

  • Everything in the small site.
  • A colour and type system built from your existing brand, not around it. On Solar DNA I scraped their live site for the exact hex codes rather than eyeballing screenshots, and kept Fjalla One and Source Sans 3.
  • Your own photography downloaded and self-hosted, so nothing on your site depends on someone else's server staying up.
  • Service pages, a gallery with a lightbox, and your FAQs consolidated into one set. Wilton Plumbing had scattered, inconsistent per-page FAQs. They became one global five-question FAQ.
  • Contrast pixel-sampled from the rendered page in Puppeteer, not calculated from the CSS and hoped for.
  • A video hero if you want one: poster paints first, preload="none", 1280x720 above 768px and 640x360 below, and no video request at all under prefers-reduced-motion or Save-Data.
  • Old bugs fixed rather than carried across. On Solar DNA the form error box could never appear, because only its class was toggled and not its hidden attribute.
Ask about Full site

03

Big build

R75 000

Starting price

A firm with a company profile, a long service list and a project history that all has to go online without being flattened into three bullet points. Construction, property, manufacturing, anything with depth.

20 to 30+ pages

  • Everything in the full site.
  • A multi-column mega menu that stays usable at that size. The Veritas menu carries 26 links across three columns.
  • Your company profile reproduced verbatim where accuracy matters. On Veritas that was 20 service names, 18 project-experience items and both directors' details, with nothing reworded or "improved".
  • Content typed so the data can't lie. The Custom Timber Decks species table types Janka hardness as number-or-null, because composite decking has no Janka figure and printing "0 lbf" would be false.
  • Motifs drawn in CSS with clip-path, not shipped as image files. Veritas uses a chevron notch and a blueprint grid.
  • A two-ground design system where the design needs one, with ink measured separately on each ground. CamelPhat's tan #C89B6E measures 6.59:1 on the night ground and 1.60:1 on the sand one, so the accent changes with the ground.
  • A full image audit before launch. On CamelPhat that destroyed four of 25 stock images, removed 3.6MB that was bundled but referenced by no page, cut one 8.2MB file to 739KB, and lifted breadcrumb contrast across seven page heroes from 1.49:1 to 5.04:1.
Ask about Big build
Adjustments

What moves the price

Priced in the open. Nothing here is a surprise on an invoice.

  • Extra pages Beyond the count in your tier. A page means its own route with its own content and its own metadata, not another section on a page you already have. R1 500 a page
  • Who writes the words R0 if you send me the copy. R650 a page if I write it from material you already have: a company profile, a brochure, an old site. I don't invent claims about your business, so if there is no source material there is nothing to write from. R0, or R650 a page
  • Images R0 if you supply your own photography. R2 800 to source and audit a stock set at full size, one image at a time. That audit is not padding: on CamelPhat, three images carried tiled rawpixel watermarks, one keyed "solar-farm-rows" and used in two places was a torii gate on a beach with no solar panels in it, and another was the International Space Station's array wings. I don't shoot photography. If you need a shoot I'll tell you what to brief and you pay the photographer directly. R0, or R2 800
  • Forms and WhatsApp R2 500 for a contact form with validation, routing to your inbox, and an error state that actually shows. R14 000 for a multi-step WhatsApp quote builder that walks a customer through options and hands them a pre-filled message. Anything between the two gets scoped and quoted on what it actually does. R2 500 to R14 000
  • Editing it yourself A content management layer so you can change copy, prices and photos without me. R8 000 for a handful of editable pages. R18 000 when the whole site is editable, including collections like projects or products. Skip it entirely and you send me changes instead. R8 000 to R18 000
  • Selling online A product catalogue and a card checkout. This is the one thing that turns a static site into something with moving parts, ongoing failure modes and a payment gateway to reconcile, and the price reflects that. Gateway choice is yours; I'll build against it. from R22 000
  • A second language Afrikaans, isiXhosa, whatever you need. You supply the translated copy. I build the routing, the language switch and the metadata. I don't translate, and I won't run your copy through a machine and call it done. R550 a translated page
  • A deadline you set If you need it live by a fixed date, I move other work to hit that date and charge 25% on top. If the date is mine, there's no surcharge. This is a real cost to me, not a pressure tactic, and it's the only surcharge on this page. +25%

Worth knowing

  • 01 Standard on every build, at no extra charge: every brand colour measured for contrast before design, any failing colour split into a fill-only token plus a text-safe one, headless Chrome checks at 320, 390, 768 and 1440 for horizontal overflow, contrast pixel-sampled from the real rendered background, self-hosted fonts, and images through sharp. I don't charge extra for the site being readable. On CamelPhat the hero text was measured against the worst frame of the video, not an average one, because bright aluminium rails swept through and dropped the lead paragraph to 1.07:1. It ships at 11.2:1 headline and 6.8:1 lead on mobile.
  • 02 The site runs on Google Cloud Run in europe-west1. A static site scales to zero when nobody is on it. Google publishes its own pricing, and I'd rather you read their number than take mine second-hand.
  • 03 After handover: R750 an hour for changes, no minimum, no retainer. Or R450 a month if you want me keeping it patched and redeployed. Or nothing at all.
  • 04 What I won't do: WordPress, Wix or Squarespace. Search rankings I can't control, so I make no SEO promises and sell no SEO packages. And no discounts. There is no limited-time price and no cheaper number if you sign this week. The figure I quote today is the figure in three months. Half up front, half when the URL is yours.

Start a job

Tell me the job and I will price it.

One fixed number, in writing, before anything starts.

Pick whichever suits you

5 builds 4 live from R4 500 Cape Town