ProjectsThings I've built
Products I'm building on the side, and the experiments that got me here.
Eras
An interactive map and timeline of world history, built around simultaneity: see what was happening everywhere at the same moment. Borders shift as you move through time, and every event opens up as deep as your curiosity goes.
- Next.js
- TypeScript
- MapLibre GL
- Supabase
- Claude API
- Tailwind CSS
Coming soon to Android & iPhone
Wordwagon
A daily word puzzle: five rounds of letter pools roll past like train carriages. Keep the letters that help, discard what doesn't, then build the highest-scoring word you can. Everyone gets the same pools each day.
- React Native
- Expo
- TypeScript
- Reanimated
- Firebase
- Sentry
Coming soon
ScreenConscious
A free, research-backed resource helping parents understand screen addiction in young children. A narrative scroll through the problem, the science and its effects, ending with warm, practical steps any family can take.
- Next.js
- TypeScript
- Tailwind CSS
- Framer Motion
- next-intl
Where it started
Early experiments
D3 Visualizations
Bar charts, scatterplots, heat maps, choropleths and tree maps built with D3.js and React.
Pomodoro Clock
A focus timer with adjustable session and break lengths, built with React.
Calculator
A React calculator that evaluates input using Reverse Polish Notation.
Tree Traversal Animations
Animated pre-order, post-order and other tree traversals in vanilla JavaScript.
Memory Game
A card-matching memory game made with HTML, CSS and JavaScript.
Like what you see?
Fill my cup: espresso, then milk, then froth. Up to three pours each.