Web design and development  ·  websites

Old site bleeding leads.
New site closing them.

Marketing sites, internal tools, e-commerce stores, bespoke web apps. We build on stacks you own and ship in weeks, not quarters.

Open source. Yours to ship. Yours to keep.

What a rebuild looks like, frame by frame

Drag the divider. Three industries. Three rebuilds.

Same brand, same content, two different decades. Load time on the right is real. Lighthouse scores under the slider are real.

WordPress relic → bookings live in three weeks.

HomeAbout UsMenuReservationsGalleryBlogContact

~ Welcome to Stella Rosa! ~

Est. 1998 · Sandton's Finest Italian

STOCK PHOTO: PASTA
STOCK PHOTO: WINE

Welcome to our website! We are a fine dining establishment located in the heart of Johannesburg. Our chef Giuseppe prides himself on using only the freshest local ingredients...

★ NEW! Check out our online menu! ★

Visitors: 00012847 · Best viewed in IE 8+ · © 1998-2014
STELLA · ROSA
MenuCellarStory

Sandton · Since 1998

A table.
A bottle.
An evening.

Reserve · 19:00 / 21:30Book a table
BEFORE
AFTER

Drag the slider · or tap a side

Load time

6.2s0.8s

Lighthouse score

3898

Reservation conversion

+340%

Four real rebuilds we've shipped

Where the redesign moved the number.

Restaurant on WordPress

Before

Six-second load. R900/month managed WordPress. R500/hour every time the menu needed an edit. Hacked twice in 18 months.

After

Next.js on Vercel. 0.8s load. R0 hosting tier. Menu lives in a headless CMS the manager edits from her phone. Reservations doubled in three months.

Stack · Next.js · Sanity · Vercel · Resend

Law firm template the partners hated

Before

Wix template. Nobody knew the login. Articles rendered as PDF attachments. Search-console errors going back four years.

After

Bespoke Next.js site with an article system the partners use. 99 Lighthouse, full sitemap, structured data. Inbound enquiries up 4×.

Stack · Next.js · Payload CMS · Cloudflare Pages

Spreadsheet ops at a 15-person SME

Before

Orders in one sheet, stock in another, customer requests in a Trello board. Three days of every week spent on data entry. Reports were screenshots.

After

Bespoke web app with role-based dashboards. Orders, stock, customers in one Postgres database. Email and WhatsApp alerts on the rules that mattered. The spreadsheet era ended in three weeks.

Stack · Next.js · Postgres · Supabase auth · Resend

E-commerce stuck on Shopify

Before

R1,200/month Shopify Plus plus 2% of every transaction. Can't customise checkout, can't integrate with the warehouse, theme edits are R450/hour.

After

Migrated to self-hosted Medusa with a Next.js storefront. Zero transaction fees. Warehouse API plugged straight in. R168K saved in year one before counting dev hours.

Stack · Medusa · Next.js · Payfast · Hetzner

Six lines under one team

From a one-pager to a full back office.

MARKETING

Marketing & Landing Pages

Built for conversion. A/B tested. Sub-second load. The page exists to move a number, and we move it.

PRODUCT

Web Applications

Portals, dashboards, booking systems, internal tools. If your team runs it on a spreadsheet, it needs a web app.

STORE

E-Commerce

Self-hosted Medusa or Saleor. Payfast, Peach, Stripe. Your store, your storefront, your margins.

DESIGN

Framer & Design-Forward

Pixel-perfect editorial sites. Real motion, real typography, real interactions. Right for agencies and product launches.

MIGRATION

Migrations

Off WordPress, off Wix, off Squarespace. Content moved, redirects mapped, SEO preserved, zero downtime.

HOSTING

Hosting & Maintenance

Managed hosting on Vercel or your own VPS. SSL, monitoring, backups, security patches. Monthly retainer so you stop thinking about it.

0.8s

Median LCP on launched sites

Lighthouse + WebPageTest

98

Median Lighthouse performance

On the production domain at full load

100%

Source code handed over

Repo · pipelines · secrets · docs

What we choose and why

The toolbox.

Open source by default. Your repo, your hosting, your domain. Everything runs on your terms.

Frameworks

Next.js · React · TypeScript · Astro for static. Server Components where they earn their keep.

Styling

Tailwind for utility, CSS modules for components, Framer Motion for the parts that move.

Commerce

Medusa · Saleor · WooCommerce when the client insists. Payfast · Peach · Stripe on the payment side.

CMS

Sanity · Payload · Strapi · Directus. Self-hosted by default so the content lives in your database, not someone else's.

Hosting + Edge

Vercel · Cloudflare Pages · Hetzner VPS · Railway. Edge functions, global CDN, automatic preview deploys.

Data + Auth

PostgreSQL · Supabase · Prisma. Email-link, password, OAuth. Magic where it matters, boring where it doesn't.

What the engagement looks like

Five weeks. Five steps. Then you own it.

01 · build

Discover

Sit-down. What does this site need to do for the business? Reservations, leads, sales, credibility, applications? We anchor every decision to that number.

02 · build

Wireframe

Structure before style. Every page, every flow, every CTA mapped. You approve the skeleton before we touch colour or font.

03 · build

Build

Design and code happen together. Preview deploys every push. You see weekly progress, not a six-week reveal.

04 · ship

Test

Every device, every browser, every flow. Load speed, accessibility, SEO, forms, payments. We break it ourselves so customers can't.

05 · ship

Launch

DNS cutover, SSL, analytics, search console. 30 days of post-launch monitoring included. Handover docs in writing.

Send us the URL.
We'll send back the rebuild.

30-minute call. Audit the current site, scope the new one, give you a number. Bring the current URL and a question.