Products

Lunary
Next.js, Typescript, Astronomy Engine
Progressive Web App calculating planetary and lunar positions in real time using the Astronomy Engine library, with personalised lunar data and subscription features.

Spellcast
Next.js, Turborepo, Drizzle ORM, PostgreSQL, Docker, Postiz
Self-hosted social media scheduling platform managing multiple brands across 8+ platforms. Turborepo monorepo with a Next.js frontend, a Node.js BFF, and a self-hosted Postiz + Temporal stack on Hetzner via Docker Compose.

Artify
Next.js, Remotion, FLUX, Kling, DeepInfra, fal.ai
Automated daily content pipeline generating witchcraft and astrology illustrations, carousels, reels, and stories using FLUX image-to-image generation, Kling video synthesis, and Remotion compositions, then scheduling everything via Spellcast.

Podify
Next.js, Claude (OpenRouter), Kokoro TTS, ffmpeg
AI podcast generator that turns any text, URL, or content path into a fully produced two-host episode at roughly $0.04 each. Kokoro TTS synthesis, ffmpeg audio assembly, RSS feed output, and a web UI with real-time generation progress.

Conjure
Next.js, Turborepo, Groq (Llama 3.3 70B), Prisma, Chrome Extension MV3
AI-powered prompt builder for Midjourney, FLUX, and DALL·E. Describe what you want in plain English and get three variations tuned for safe, creative, and experimental outputs, with iterative refinement, per-platform parameter formatting, and a Chrome extension that injects the builder into any page.

Crystal Index
TypeScript, Next.js, Prisma, SQL, GPT4, React 3 Fiber
Custom CMS for cataloguing crystals with structured filters for colour, chakra, and properties, and GPT-4-generated descriptions.

Glint
Next.js, Vercel Edge Middleware, PostgreSQL, Recharts
Custom analytics platform built on Next.js Edge Middleware for zero-latency tracking and PostgreSQL for persistence. Self-populating dashboard via Cloudflare Worker cron job that simulates traffic from global edge locations.

Succulent
Next.js, Ayrshare API, AI SDK, Stripe, Shopify API
Social media management platform with integrated print-on-demand and e-commerce automation. Unified publishing, scheduling, and product creation across 13+ social platforms with automated store synchronization.

The CSS Color Game
Next.js, Vercel Edge Middleware, React Email, Resend
A daily color platform built with Next.js that combines an interactive color recognition game with automated email delivery and social sharing.

Scape²
Next.js, Vercel E-commerce, Shopify
Customised Vercel E-commerce template integrated with Shopify APIs to create and deploy a functional online storefront.
Experiments

Spectra
Three.js, GLSL, Web Audio API, Next.js
Audio-reactive shader visualiser driven by microphone input. Domain-warped simplex noise fragment shader with bass, mid, and high frequency bands mapped to warp intensity, hue rotation, and shimmer, all running in real time on the GPU.

Beyond Light VR
Three.js, WebXR, GLSL, Vite
WebXR reconstruction of my MA dissertation installation. A journey through the visible light spectrum from infrared to ultraviolet: quotes screen-printed on acetate walls remain invisible until the final UV phase, where they blaze to life with a custom GLSL UV-reactive shader before the room dissolves into white.

Day Lite
React, Javascript, Mapbox GL, Vite
Interactive globe visualising daylight patterns worldwide in real time using geospatial data from MapBox GL.

Celestial map
D3.js, HTML5 Canvas, Vite
Interactive star globe rendered on Canvas using D3 orthographic projection. Realistic star colours from B-V colour index, magnitude-scaled sizes with glow effects, constellation lines and labels, Milky Way band, drag-to-rotate with idle spin, and a time slider that shifts the sky in right ascension.

Creative Coding
p5.js, Javascript
15 browser-based visual experiments treating a single photograph as raw material. Pixel data drives particle systems, edge detection, flow fields, Voronoi partitions, kaleidoscopes, and more; each sketch is unique to the source image.

Balloon Bonanza
React, Typescript, Matter.js, Vite
A real-time physics simulation using Matter.js to render interactive balloons with realistic collision dynamics and constraint-based interactions.

Liquidity
Next.js, Typescript, GSAP, Rapier2D
Experimental Next.js project exploring advanced animation techniques for creating liquid text effects through multiple approaches.

Rainbow Laser Pointer
React, TypeScript, HTML5 Canvas
An interactive canvas-based laser pointer application with smooth trail rendering and color transitions.

Artistry
React, Python, SQL
Integrates the Rijksmuseum API to retrieve and search artwork data, storing results in a SQL database accessed through a Python REST API.

Communication Infographic
React, Javascript
Interactive timeline highlighting key developments in communication technology, built with React and SVG animations.

On Set
React, MapBox GL, JavaScript, MongoDB
Map-based app indexing film locations across London using MongoDB for storage and MapBox GL for geospatial rendering.

Volcano Visualisation
D3.js, Javascript, React 3 Fiber
3D globe mapping volcanic eruptions worldwide using GeoJSON datasets with D3.js and React Three Fiber.

Three.js 3D Model
Three.js, Javascript
3D scene rendered with Three.js displaying a butterfly model surrounded by animated geometric particles in a panoramic environment.

NASA API
React, Javascript, NASA API
Displays imagery and data from NASA's Mars Rover and Astronomy Picture of the Day APIs with efficient image rendering and request handling.

P5 Interactive Graphics
P5.js, Javascript
A front-end application, which renders a dynamic interactive graphic visualisation which reacts to the users cursor movement and position, created with P5.js and Javascript.

Matter.js
Matter.js, Javascript
Interactive physics demo using Matter.js to simulate object motion and collision dynamics in real time.

Space Invaders
Javascript
Recreation of the classic arcade game built in JavaScript with keyboard controls, scoring, and progressive difficulty.