Five systems · every one is clickable · no signup

Everything I've built,
and you can use all of it.

Not screenshots and not a slide deck. Five working systems, built end to end by one person — database schema through API and frontend to deployment. Open any of them and try to break it. Each one was built for a real business with a real workflow problem.

5Systems built
5Clickable demos
619Automated assertions
1Developer, whole stack
01 Livestream Stock 02 Shifts & Access Control 03 Handwriting → Data 04 WhatsApp CRM 05 Profit Dashboard + Full stack
01 / LIVESTREAM STOCK

Inventory that updates itself, mid-livestream

Active client build · a trading-card retailer selling live on TikTok · three roles, two deployable apps, one shared database

✕Stock lived in a spreadsheet that lagged behind orders. Sellers oversold mid-stream, handled the cancellations by hand, and had no reliable record of what a session actually sold.
✓Orders decrement stock the moment they land, with cancellation and return handling. Streamers see live counts on screen; managers get audit trails and per-session reconciliation. Overselling is blocked at zero, not discovered in the refunds.
StackNext.js 14 (App Router) · Node.js + Express · PostgreSQL 15 · Prisma · NextAuth v5 (JWT, role-based) · Socket.io · Tailwind + shadcn/ui · html5-qrcode · xlsx + pdfkit · pnpm monorepo · Docker Compose · Vercel + Railway
Real-timeQR scanningWebhooks3 rolesLive commerce
Open the stock demo → Try to oversell it. It will not let you.
LIVE · Stream session
Blue Hoodie · M48
Canvas Tote32
Phone Grip15
Booster Box · EB0127
Order #1042 · Blue Hoodie −1
02 / SHIFTS & ACCESS CONTROL

Four logins. Four different truths.

Complete · built for a service business paying operators by the hour and billing clients for the same hours · ~500 client accounts

✕Proof of work arrived as loose screenshots, then an owner retyped every figure into Excel by hand. One shared spreadsheet also meant anyone helping could see the margin and everyone else's pay.
✓Structured submission, automatic anomaly flags, approvals, invoicing and payouts — with what each role may see enforced by the database, not hidden in the browser. The manager's view does not contain the money columns, so no query returns them.
StackTypeScript end to end · Cloudflare Workers (edge, serverless) · Supabase PostgreSQL with row-level security · React + Vite · Cloudflare R2 + D1 · Discord HTTP interactions · Ed25519 signature verification · durable write-ahead log · Vitest · 20 sequential migrations · $0/month hosting
Role-based accessShift trackingAuto-invoicingAudit log344 db assertions
Open the four-login demo → Sign in as the manager and press Approve. Watch the database refuse.
One dataset · four logins
AdminManagerWorkerClient
ShiftHoursBilledMargin
S-10426hRM 180RM 72
S-10436hRM 180RM 72
S-10444.5hRM 135RM 54
S-10456hRM 180RM 72
S-10396hRM 180RM 72
Admin — everything, margin includedManager — money columns absentWorker — own shifts onlyClient — their invoice only
03 / HANDWRITING → DATA

Handwriting in, clean data out

Complete · built for a restaurant's raw-materials procurement · mixed Chinese and English on the same page · processed entirely on the client's own machine

✕Handwritten orders were retyped by hand for procurement. Slow, and the mistakes arrived as the wrong delivery.
✓Photograph the order, OCR reads both languages, staff correct anything odd on screen, procurement gets structured CSV. No order data leaves the business — which is what made the sale.
StackPaddleOCR · Tesseract.js (in-browser, draw-your-own recognition in the demo) · fuzzy product matching · local-only inference, zero external AI services
OCR中文 + ENFuzzy matchCSV exportPrivacy-first
Open the scanner demo → The demo reads your own handwriting, live, in your browser.
OCR · Scanning
鸡肉 Chicken · 10 kg
青菜 Greens · 5 kg
米 Rice · 25 kg
虾 Prawns · 8 kg
✓ Exported to CSV
04 / WHATSAPP CRM

Campaigns that send themselves

Complete · built for a business running paid events · contacts, attendance history and follow-up in one place

✕Contacts scattered across personal phones, no attendance history, and follow-up meant messaging people one at a time.
✓Segment by which events someone actually attended, personalise automatically, send once, and track who replied.
StackDjango · MySQL · WhatsApp Business API · template personalisation · delivery and reply tracking · segment builder
CRMWhatsAppSegmentsAutomation
Open the campaign demo → Write a real message with {name} personalisation and watch it fan out.
Campaign · Sending
Hi Sarah! Thanks for joining our March workshop — April early-bird tickets are open.✓✓
Yes! Book me 2 seats please
Done — confirmation sent.✓✓
Perfect, thank you
05 / PROFIT DASHBOARD

Know your real profit, daily

In development · a back-office suite for food & beverage owner-operators · early access

✕Revenue looks healthy right up until the expenses surface in December. Margin was a feeling, not a number.
✓Sales, expenses and live margin on one dashboard with staff costs included, so a bad week is visible in the week it happens.
StackNext.js · TypeScript · Prisma · PostgreSQL · Tailwind · Docker Compose · deployed containerised
F&BAnalyticsEarly accessExpense tracking
Open the profit demo → Add your own sales and expenses and watch the margin move.
This week · Live P&L
RevenueRM 12,480
ExpensesRM 8,210
Profit+18.4%
THE STACK BEHIND ALL OF IT

What I actually build with

Not a list of everything I have ever touched — this is what the five systems above are made of, taken from the repositories rather than from memory.

Languages
TypeScriptSQLJavaScriptPython
Frontend
Next.js 14 · App RouterReactViteTailwind CSSshadcn/uiSocket.io client
Backend
Node.js + ExpressCloudflare WorkersNext.js API routesDjangoRESTWebhook consumersCron & retry queues
Data
PostgreSQL 15PrismaSupabaseMySQLSequential migrationsEffective-dated recordspg_trgm fuzzy search
Auth & access
Row-level securityNextAuth v5 · JWTRole-based access controlDiscord OAuthEd25519 verificationAudit logs & soft deletes
Infrastructure
Docker Composepnpm monorepoVercelRailwayCloudflare R2 + D1NeonRender
Testing
VitestTesting Library619 automated assertionsDependency-graph & layering checks in CI
Interfaces
QR generation + browser scanningXLSX & PDF exportTikTok Shop webhooksWhatsApp Business APIDiscord interactionsPaddleOCR · Tesseract.js

The two largest builds are the honest test of that list. The stock platform is Next.js 14, Express, Prisma and PostgreSQL with Socket.io pushing live counts to streamers mid-broadcast, three roles behind NextAuth, in a pnpm monorepo running under Docker. The shift and billing platform is TypeScript on Cloudflare Workers over Supabase Postgres, where row-level security is the security boundary rather than application code — 619 automated assertions, 20 sequential migrations and a durable write-ahead log behind it, running at zero monthly cost. Both were built solo, schema to deployment.

Now tell me what yours should do

You've seen five. The sixth one is yours — a free 30-minute look at your workflow, then a working demo of your own solution in 2–3 weeks before you commit to a build.