JOHN HERBST

> build_log --status

I build the systems nobody notices until they break.

Full-stack developer working across Python, TypeScript, and C# — from desktop tools to deployed web apps.

$ last push → John-Herbst-Portfolio · 2d ago

// STACK

C#.NET, WinForms, MVC
PythonFlask, automation
TypeScriptNext.js, React
SQLSQL Server, SQLite
ASP.NET CoreMVC, EF Core, Identity
DockerContainerised builds
GitGitHub, CI deploys

// FEATURED BUILDS

FIG — DIE-BESTEMMINGCLIENT WORKLIVE

Die Bestemming

An Afrikaans ordering site for a family takeaway and car wash, built to be run from the owners' phones with no database

die-bestemming.vercel.appopen ↗
The Die Bestemming site

5 screenshots · tap or click to enlarge

Next.jsTypeScriptReactVercelVercel Blob
Problem
A family-run takeaway and car wash in Thabazimbi sold its daily dinner through hand-made Facebook posters and took orders by phone. They needed a website customers could order from on their phones — no payments, no accounts — and the owners had to be able to update it themselves from a phone in under a minute.
Approach
Next.js (App Router) and TypeScript with no database: all content is a single versioned JSON file in Vercel Blob, which keeps running costs near zero. Customers fill a basket that stays on their phone, and the site turns it into a pre-filled WhatsApp order with prices and a total. The day's dinner opens and closes for orders automatically on South African time, and a password-protected, phone-first admin in Afrikaans lets the owners upload the day's poster, edit the menu, car wash prices and opening hours, and manage a gallery — with photos shrunk in the browser before upload.
Outcome
Live at die-bestemming.vercel.app, with a look built for it: deep navy and yellow, a stylised thorn-tree mark, and badge-style controls. A day's update is three fields and one tap, and with no database or payment fees there is almost nothing to run.
FIG — THE-FOREVER-NOTEDEPLOYED

The Forever Note

A full e-commerce platform for personalized digital gift pages, paired with a physical NFC/QR card delivered by post

forever-note.vercel.appopen ↗
The The Forever Note site

5 screenshots · tap or click to enlarge

Next.jsTypeScriptTailwind CSSSupabase (Postgres)VercelPayFast
Problem
Turning a personalized digital gift page into something physical — an NFC/QR card delivered by post — means owning the whole chain: building the page, taking payment, fulfilling the order, and producing print-ready card artwork.
Approach
Built end-to-end on Next.js (App Router) and TypeScript: a template-driven gift builder across 8+ occasion categories, tiered pricing with PayFast payment integration including signature-verified webhook confirmation, an admin dashboard for order fulfillment, buyer self-service editing, and a moderated reviews system.
Outcome
A print pipeline generates exact-spec CR80 bank-card artwork per order — SVG composition, embedded QR codes, and pre-shaped text outlines rasterized at 600 DPI — ready to hand straight to a printer. Deployed on Vercel with a protected preview environment and automated CI.
FIG — SPY-AGENCY-APPLIVE

Spy Agency App

A vault-style login and records system

6 screenshots · tap or click to enlarge

PythonFlaskSQLite
Problem
Needed a small server-backed app with real authentication and persistent storage, not just a static front end.
Approach
Built a Flask backend with a SQLite data layer for records and a login flow, then deployed it as a live service.
Outcome
Live and running on Render — first project in the lineup with a real backend, database, and deployment pipeline.
FIG — SLIP-MANAGEMENTCLIENT WORKIN DAILY USE

Slip Management

A tailored slip management system built for a company

11 screenshots · tap or click to enlarge

C#.NETWinForms
Problem
A company needed slip creation and printing handled their way — truck registration tracking, specific printers, and their own branding — which off-the-shelf tools didn't support.
Approach
Built as a C# WinForms desktop app with customizable slip fields and branding, named printer preferences, full-screen forms, and a daily summary panel for tracking activity at a glance.
Outcome
An actively evolving system — recent updates added truck registration enforcement and refined the print workflow based on real usage.
FIG — KOOLSTOOF-DELIVERYCLIENT WORKDEPLOYED

Koolstoof Delivery

This is a .Net Core MVC Web Application for a local restaurant called Koolstoof. It will be tailored to the restaurant for their delivery service.

koolstoof.vercel.appopen ↗
The Koolstoof Delivery site

4 screenshots · tap or click to enlarge

C#HTMLCSSJavaScriptDockerfile
Problem
Koolstoof, a restaurant in Thabazimbi, needed online ordering built around how they actually work — their own menu and specials, their delivery suburbs, and somewhere for staff to run orders through without a second system.
Approach
An ASP.NET Core MVC application on .NET 10, with Entity Framework Core over SQL Server and ASP.NET Core Identity for staff accounts, containerised with Docker. Customers browse a categorised menu with live specials, build a cart, and check out by PayFast or cash on delivery; admin pages cover the menu, specials, settings and orders.
Outcome
Built and deployed, with handover pending. Staff move each order across a four-stage board — Incoming, Received, Out for Delivery, Delivered — with payment state on every card, delivery split by suburb, and drinks that can be flagged sit-down only so they never reach a delivery cart.
live demo →repo →updated 17d ago

// QUALIFICATION

Occupational Certificate: Software Engineer

IN PROGRESS

AIE — Academic Institute of Excellence · NQF Level 6 · SAQA ID 119458 · 240 credits

9/9modules competent
145credits earned
100%highest mark

KNOWLEDGE MODULES

ModuleCrNQFSummative ASummative BResult
Software EngineeringSOEN-KM0120671%91%C
ProgrammingSOEN-KM0220696%100%C
Database Design and Information SystemsSOEN-KM0315684%96%C
Fundamentals of Project Management in Software EngineeringSOEN-KM045590%83%C
Digital and Business MathematicsSOEN-KM0515592%100%C

PRACTICAL MODULES

ModuleCrNQFWorkbookAssessmentResult
Document System DesignSWE-PM-0125676%93%C
Design and Manipulate DatabasesSWE-PM-025590%90%C
Program and Deploy ApplicationsSWE-PM-0325669%88%C
Test or Debug Source Code to Meet Client NeedsSWE-PM-0415598%92%C

C = competent · NYC = not yet competent. From the QCTO interim statement of results, with SWE-PM-04 updated after resubmission.

// LIVE ACTIVITY

pulled from github, auto-updates hourly