Selected work
What was actually built, and why it went that way.
Each of these names the constraint that shaped it. The interesting part of a project is almost never the feature list — it's the thing that was true about the business that made one approach right and another one wrong.
2026 — ongoing
Innova Developments
Construction & property development
Four disconnected apps became one, then the phone learned to take a service request.
Innova had four separate web apps, three copies of the same database client, and a service desk that ran on whoever happened to answer. The work started as a merge and turned into the thing this studio is actually about: getting every way a job arrives into one shape, then letting AI handle the parts that were costing a person an afternoon.
- Next.js
- Neon Postgres
- Twilio Voice & SMS
- Claude API
- Microsoft Graph
2026
Scavenger
Retail — thrift shop, Calgary
A shift board for a shop staffed by volunteers, where the database refuses to double-book.
A thrift shop was scheduling its floor staff through a signup page built for a single weekend. It became an open-ended calendar that keeps working month after month — with the opening hours as data rather than code, and the fairness rules the owner ran informally written into the software.
- Next.js
- Postgres
- Twilio SMS
- Vercel
2026
Dynasty Advisory
Accounting & financial advisory
A WordPress marketing site rebuilt as an application, with the client portal already designed into it.
An accounting firm's site was a WordPress install doing a brochure's job slowly. The rebuild kept the brand exactly — colours and type lifted from the live stylesheet rather than reinterpreted — and made the next two phases, client login and document exchange, an extension rather than a second rewrite.
- Next.js
- TypeScript
- Tailwind
- Server Actions
- Zod
2026
Delfini Adventures
Tourism — Zanzibar
A trilingual booking site for a local tour guide, editable by someone who doesn't write code.
A guide in Kiwengwa was running his business out of WhatsApp and an Instagram profile. He needed something to send people that looked like a business, worked on a phone over a slow connection, and spoke the three languages his customers actually arrive with.
- Vite
- React
- Plain CSS
- Vercel
There is probably one task in your week
that shouldn't be yours.
Tell me what it is and roughly how often it happens. If it's a fit I'll say what I'd build and what it costs. If it isn't, I'll say that too.