digiguru

Selected projects

Useful things, playful things, and experiments that became real products.

I build to understand. Some of these started as a question, a workshop problem or a deliberately small experiment; stronger and more complete work appears first, with narrower experiments and projects still being polished further down.

WorkbenchProductivity
Screenshot of Workbench

A visual thinking surface for prioritising, planning and organising the same set of items through multiple lenses — built for people and AI agents to use together.

  • React
  • TypeScript
  • MCP
  • Supabase
Open project

Turns spreadsheet-style skills data into clean, grouped capability charts that are easy to read, present and export as images.

  • Next.js
  • React
  • Tailwind
  • TypeScript
Open project
Suss ChefAI + Planning
Screenshot of Suss Chef

An AI cooking coordinator that works backwards from serving time, lines up multiple recipes, adapts the timeline when cooking slips and supports hands-free kitchen use.

  • Next.js
  • LangGraph
  • OpenAI
  • Voice
Open project
MOV to GIFCreative tools
Screenshot of MOV to GIF

A browser-based utility for turning movie clips into GIFs while skipping redundant frames to keep the result more efficient.

  • Next.js
  • React
  • GIF
  • Tailwind
Open project
CrowdWiseResearch + AI
Screenshot of CrowdWise

An AI-assisted survey toolkit for designing surveys, running interviews and analysing the resulting responses.

  • Next.js
  • OpenAI
  • Surveys
  • Analysis
Open project

A room-based multiplayer image game with separate host and player experiences, real-time Socket.IO play, full-stack browser tests and accessibility checks.

  • React
  • Socket.IO
  • Playwright
  • TypeScript
Open project

Anonymous team-health and Tuckman-stage voting tools for making team conversations visible without turning them into performance theatre.

  • React
  • Vite
  • D3
  • TypeScript
Open project
HeatmapperDecision making
Screenshot of Heatmapper

Compare options against criteria in a colour-coded matrix, edit ratings quickly and save named heatmaps locally for later discussion.

  • React
  • Vite
  • Material UI
  • Vitest
Open project

A deliberately small, zero-dependency retro dot-matrix scrolling ticker implemented as a modern Web Component.

  • Web Components
  • ES modules
  • Zero dependencies
Open project

A dependency-free animated word cloud for modern browsers — a compact example of using the platform directly when a framework is unnecessary.

  • JavaScript
  • ES modules
  • Zero dependencies
Open project

A Contentful-powered site for Malawi’s premier arts festival, combining editorial content, artist pages, image-rich presentation, draft preview and on-demand revalidation.

  • Next.js
  • Contentful
  • React
  • Tailwind
Open project

A collaborative drag-and-drop seating planner first built in 2012 and kept alive with a modern Node, Express, Socket.IO, persistence and browser-testing toolchain.

  • Socket.IO
  • Express
  • Raphaël
  • Puppeteer
Open project
JitterCreative coding
Screenshot of Jitter

A deliberately lightweight Web Audio and canvas playground that turns local audio into animated browser visualisations without requiring a frontend framework.

  • Web Audio
  • Canvas
  • JavaScript
  • Playwright
Open project

A small TypeScript playground for modelling working weeks, work hours and public-holiday sets while keeping the original domain model visible and editable.

  • Vite
  • TypeScript
  • Vitest
  • Calendar data
Open project
AI Maturity Assessment
Assessment
Screenshot of AI Maturity Assessment

An interactive organisational AI-readiness assessment across six dimensions, with speech input, heuristic response scoring, progress tracking and report generation.

  • Next.js
  • React
  • Web Speech API
  • TypeScript
Public demo pending