• Real screens · this site

This site

Live website

Website (this portfolio) · September – October 2026

The portfolio you are on: a developer portfolio and a website-services page, with 3D made in Blender.

You are on it. New parts keep shipping as they pass their checks.

I planned this site with a written build spec, design reviews and automatic checks, then built it with AI coding agents (Claude Code) under my direction. It is a static Next.js site on Cloudflare with a real back end: a Cloudflare Worker checks every quote and message, saves it to a D1 database first, emails it to me through Resend, and lists it in a private admin inbox.

My role: Product direction, design decisions, writing and review. Built with AI coding tools (Claude Code) under my direction; 3D made in Blender for this site.

Built with: Next.js 16 (static export), React 19, TypeScript, Tailwind CSS 4, Motion, Base UI

What I did

  • Every inquiry is saved to the database before it is emailed, so nothing is lost if email fails.

  • The server works out every price again from the same price list, so no one can change a price in their browser.

  • Spam checks: same-site requests only, a hidden trap field, a minimum time on the page, and 5 messages per contact per hour.

How it was made.

  • A written build spec and design reviews came before the code.
  • Project pages work as shareable links, with or without JavaScript.
  • The 3D blocks only load when you touch them, to keep the page fast.

Checked before it ships.

  • 25 automated API tests: quotes, prices, spam limits and the admin inbox
  • 44 automated accessibility checks passed (axe): 11 pages, light and dark, laptop and phone
  • 0 errors in 32 page loads in Chrome and Safari

Run on October 8, 2026, on a local copy of the site with a test database.

Done

  • Developer portfolio and website-services pages
  • A back end that saves every inquiry, with a private admin inbox
  • Price builder and quote quiz, priced again on the server
  • Light and dark themes
  • Blender device renders for the project pictures

Not yet

  • The live database and email keys switched on in Cloudflare (tested locally so far)
More details
Built with
Next.js 16 (static export), React 19, TypeScript, Tailwind CSS 4, Motion, Base UI
3D
Blender (Cycles renders and a glTF model), shown with three.js and React Three Fiber
Back end
Cloudflare Worker API, D1 (SQLite) database, Resend email, and a private admin inbox behind a secret key
Hosting
Cloudflare Pages, with the Worker also handling redirects and security headers
Checks
TypeScript, ESLint, 25 automated API tests, browser runs in Chrome and Safari (Playwright), axe accessibility checks and a width sweep from 320 to 1440 px

Credits and notes

  • Interface pieces: Motion, Base UI, Kokonut UI and Bklit, with their licenses kept. Icons: Lucide (ISC).

More in Websites

See all work