Michael van Oudtshoorn

I build completeweb products, fromthe database to thepayment page.

Full-stack developer working in Next.js, Supabase and TypeScript. I have built and run three live products on my own, with real users, paying customers and organic traffic.

Right now 10 people are on HobbyStack, and TargetTenders is tracking 32,092 government tenders.

  • Replies within one working day
  • Code in your repo from day one
  • A written update every day

Based in South Africa (UTC+2), so my working day overlaps fully with Europe. Open to contract work now.

01Consumer

HobbyStack↗

A hobby discovery platform that matches people to hobbies through a personality quiz, then walks them through getting started.

hobbystack.net
HobbyStack on desktop

Live from HobbyStack

Google Analytics 4
updated 08:57:44 SAST
10people

in the last 30 minutes

20
per minute1 min ago
16,299people

in the last 30 days

per day · 492–787yesterday

Being read right now

  1. 2Unusual Hobbies: 18 Niche Pursuits Most People Never Consider
  2. 1Best Bookbinding Kit for Beginners 2026: 3 Picks
  3. 1Best Calligraphy Pen Holders 2026: Straight vs Oblique

How they find it, last 30 days

  • 61%Search
  • 25%Direct
  • 3%AI assistants
  • 11%Other

The problem

People who want a new hobby get lists, not answers. Nothing tells them which hobby suits them or what to buy and do first.

Result

Around 16,000 people use it each month, with steady growth from organic search. It earns from affiliate sales every day, and Amazon invited it into its Creator Rewards programme.

What I built

  • A quiz that scores 250+ hobbies against ten personality dimensions, with moods, traits and categories as weighted refinements.
  • Programmatic SEO across the full hobby catalogue, built on five reusable guide templates.
  • Step-by-step “how to start” paths with progress people can tick off and keep.
+ 2 more
  • Amazon affiliate links wired into every hobby through the Amazon API, across seven regional stores.
  • Analytics on every step of the funnel (GA4 and Microsoft Clarity), used to redesign the flow from real behaviour.
Built with
Next.js, TypeScript, Firebase, Vercel, Amazon Creators API, GA4
My role
Sole developer and designer. Built the product, the design system and the content system from scratch.
02SaaS

TargetTenders↗

A SaaS that finds South African government tenders a business can actually win, and emails them before the deadline.

targettenders.co.za
TargetTenders on desktop

Live from TargetTenders

TargetTenders database
updated 08:57:44 SAST
32,092

Government tenders tracked

159

Businesses signed up

9

Signed up in the last 7 days

signups per week · last 11 full weeks

LatestSent tender digests to 11 businesses

The problem

Government tenders are spread across several portals. Small suppliers miss the ones that fit them, and checking eligibility means reading long tender documents by hand.

Result

Launched in June 2026. 159 businesses have signed up, 108 finished onboarding, and the first paying subscriber signed up in September. The system has tracked 32,092 tenders and sent 2,529 digests.

What I built

  • Scrapers that collect tenders from five sources on a schedule, with every run logged.
  • An LLM pipeline that reads each tender and pulls out the category, location, value and the qualifications a bidder needs.
  • Matching that scores every tender against each business's profile: categories, provinces, keywords, contract value range and qualifications.
+ 3 more
  • Email digests, onboarding reminders and trial sequences that run on their own.
  • Subscription billing through Paystack.
  • A historical database of 65,000+ contract awards, the base for a tender intelligence product.
Built with
Next.js, TypeScript, Supabase (Postgres), LLM API, Paystack, Vercel
My role
Sole developer. Designed, built, launched and ran the ads.
03Desktop app

Risocast↗

A desktop music app that logs what you listen to, works out your taste, and turns it into a shareable visual card.

risocast.com
Risocast on desktop

Live from Risocast

Risocast database
updated 08:57:44 SAST
2,535

Tracks logged

+548 this week

24,215

Songs, albums and artists in the catalogue

5,145

Catalogue entries enriched this week

21% of the catalogue refreshed with credits, audio features and streaming links from MusicBrainz, Last.fm and Spotify in the last 7 days.

The problem

Streaming apps know what you play but never show you what it says about you, or let you rank and keep the music you love.

Result

In early release. Its first pages rank in search and it picked up signups with no promotion.

What I built

  • A desktop app that logs every track played on the computer, styled as the early-2000s music player people wish they had.
  • A catalogue of 24,000+ tracks, albums and artists, enriched from MusicBrainz, Last.fm and Spotify with credits, audio features and streaming links.
  • Taste archetypes built on a 70-tag taxonomy across ten categories.
+ 2 more
  • A shareable taste card rendered with a custom WebGL shader.
  • Social features: genre voting and head-to-head song ranking.
Built with
TypeScript, Supabase, WebGL, MusicBrainz, Last.fm and Spotify APIs, Vercel

Client builds

How I work

Stack
Next.js, React, TypeScript, Tailwind CSS, Supabase and Postgres, Firebase, Vercel. Payments with Paystack and PayFast. LLM pipelines, web scraping, programmatic SEO, GA4.
What I take on
Building a product or MVP end to end, from database to launch. Joining a team as a contract developer for a set number of hours a week. Finishing or fixing a half-built product.
Working hours
South Africa, UTC+2. My day covers the full Central European working day and overlaps with the US East Coast morning.
How projects run
Scope agreed in writing up front. A short written update at the end of each working day. Code in your repository from day one.
Rate
Quoted per project once the scope is clear.

Have something to build?

Tell me what you need and when. I reply within one working day.