case studies
The long versions.
Deeper write-ups on selected projects: the constraint, the architecture, what broke, and what fixed it. Not every project carries one.

One page, one ask, and a hero made out of banknotes
2026A month on a one-page site for a NEPSE portfolio manager. The order of the page, how the hero animation is built in CSS, and what the form asks before it asks for a call.
- Next.js
- React
- TypeScript
- Tailwind CSS
- Payload CMS
- Vercel
- Cloudflare R2
- NeonDB

Who edits it after I leave, and which map loads in China
2026Two months on a corporate site and product catalogue for the China arm of a Swiss tunnelling supplier. The decisions that mattered were the CMS, the catalogue template and the map provider.
- Next.js
- React
- TypeScript
- Tailwind CSS
- Strapi
- Baidu Maps

Six investor pages, two templates, and no developer on retainer
2026Three months on a website for a Hong Kong investment firm. Why the CMS runs on the client's own server, how six investor pages come from two templates, and what is left before it launches.
- Next.js
- React
- TypeScript
- Tailwind CSS
- Strapi

What the student sees, what the office sees, from one set of records
2026A consultancy ran applications in spreadsheets and email. The platform gives a student one honest view of their own file, and gives the office one queue built from the same records.
- Next.js
- NestJS
- TypeScript
- Prisma
- PostgreSQL
- Redis
- BullMQ
- AWS
- AWS Simple Email Service
- S3
- Lightsail

The yacht page, the fleet search, and the pages Google sees
2024Seven months on Yacht Cloud as one of the frontend developers. Three surfaces needed work: the yacht page, the fleet search over 263 yachts, and the landing pages. Here is what each was missing.
- Next.js
- React
- TypeScript
- Tailwind CSS
- Elasticsearch
- RAG
- LangChain
Tell me the constraint and the deadline.
Thirty minutes on what you're building, what's in the way, and whether I'm the right person for it. If I'm not, I'll say so on the call.