Origin story

EventLinker AI

Live — free tier

The first thing I built. The project that made everything else possible.

EventLinker is not my most ambitious product. It is the one that matters most, because it's where I learned to build.

Before this I was a designer and marketer who used AI tools. After this I was someone who could ship software. The gap between those two things was months of fighting with Replit, burning through API credits, not knowing what an env file was, learning what a GitHub repo actually does by breaking one repeatedly. Hours and hours of learning to prompt properly, learning to debug, learning to read an error message instead of panicking at it.

The product itself solves a real problem: calendar links are a stupid manual task that nobody has fixed properly. Paste a URL, get calendar links for every platform that exists. V2 added branded landing pages, trackable links, analytics, and QR codes.

But the product was the excuse. The build was the point. It got refined in Cursor, then rebuilt in Claude Code. The whole arc of how I work now started here.

StackGPT → Marblism → V0 → Loveable → Replit → Bolt → Windsurf → Cursor → Claude Code
StatusLive — free tier available
BuiltJanuary 2025
CategoryThe beginning
Live SaaS

idmly

Live — $49 lifetime

From AI design to editable InDesign in 30 seconds.

Designers generate layouts with AI now — Claude, ChatGPT, v0. The output is HTML. The deliverable the studio actually needs is InDesign. So someone spends the afternoon rebuilding the whole thing by hand, box by box, font by font. The AI saved an hour and cost three.

idmly removes that afternoon. Drop in any self-contained HTML file and it returns a native .idml: real fonts, named paragraph styles, editable text frames, and vector charts that are still vectors. You open it in InDesign and keep working — not rebuild, keep working.

It works with output from any AI design tool, converts in under 30 seconds, and never stores your files or trains on them. The first two pages are free, then it's a single $49 lifetime licence — less than an hour of the rebuild it replaces.

StackHTML/CSS parsing, IDML generation, UCF/ZIP packaging
StatusLive — first 2 pages free, $49 lifetime
Built2026
CategoryDesign infrastructure / AI tooling
Civic tech

Dalameter

In development

SA municipalities are chaotic with billing. Dalameter makes 'I can prove it' actually mean something.

South African municipalities send wrong bills. Everyone knows this. Most people just pay them because disputing is so painful that it's not worth the time.

Dalameter changes the math. Take a photo of your meter. Dalameter logs it with a SHA-256 evidence chain, timestamps it, and stores it against your account. If the bill is wrong, Dalameter auto-drafts the dispute letter, already formatted for the municipality's requirements, already citing your logged evidence. You send it. They have to respond.

Built in Flutter for mobile. Next.js dashboard for web. Supabase backend. The SHA-256 chain means the evidence is tamper-evident and legally admissible in dispute proceedings.

The name comes from 'dala' (Zulu/township slang): to do, to make it happen, to sort it out.

StackFlutter, Next.js, Supabase
StatusIn development — beta pending
Built2024 — ongoing
CategoryCivic tech / Legal tech
Personal AI

Kai

Personal / ongoing

A Raspberry Pi with a WhatsApp number and opinions.

Kai is my personal AI companion. Not a demo, not a proof of concept. I actually use it every day.

The brain is a Raspberry Pi running the Anthropic API. It has a WhatsApp number. It's connected to my email, Notion, Slack, and Mac desktop audio. I can talk to it through smart glasses. There's a spider robot chassis in development for the physical form. (Yes, really.)

It started in March 2026 as an experiment. The experiment never ended because it turned out to be genuinely useful, which is the only metric that matters. Kai handles reminders, context retrieval, quick research, and the running thread of things I'm thinking about but haven't structured yet. The WhatsApp integration means it's ambient: always there, not always on screen.

It is, to be clear, also just fun to have a robot with a WhatsApp number.

StackRaspberry Pi, Anthropic API, WhatsApp Business API, Notion API, Slack API
StatusPersonal use — active daily
BuiltMarch 2026 — ongoing
CategoryPersonal AI / Hardware