Act III

The Work

Everything here I built because I wanted to know how something worked, and the fastest way I know to find out is to build one. A few of them turned out to be useful to other people, which is still the part that surprises me. Behind these sit a pile of private practice repos — the Udacity coffee app that started Android for me, Compose experiments, a Unity runner, a Go backend — which were never meant for anyone else.

Public projects
10
Stars
213
Forks
39
Languages
7

In the open

  • StorySail

    TypeScript · 2024 · ★ 167 · ⑂ 27

    A reading and writing app for people who write short things.

    • Social publishing for writers, with a custom text editor and offline-first sync
    • Supabase and Deno Edge Functions behind the real-time notifications and content feeds
    • Tuned to 120fps with Reanimated, MMKV for local persistence
  • Designered

    TypeScript · 2024

    A canvas editor, because I wanted to know how the ones I use are built.

    • Multi-layer manipulation, vector drawing and real-time rendering on Konva.js
    • AI image generation through Together AI, dropped straight onto the canvas
    • Hono.js and Drizzle ORM behind it, with auto-save and optimistic updates
  • CC-Instagram

    Kotlin · 2022 · ★ 19 · ⑂ 5

    Instagram rebuilt in Jetpack Compose: feed, stories, profile and the state handling underneath them. I wrote it as my own Compose Camp submission, then used it as the worked example when teaching the camp.

  • 2048

    JavaScript · 2023 · ★ 13 · ⑂ 7

    The tile game rebuilt in React Native, mostly to get the feel right. Swipe gestures that respond immediately, merge logic that never double-merges a tile in one move, and animations that keep up when you flick faster than you think.

  • nod-cli

    TypeScript · 2025 · ★ 1

    One command instead of the first boring hour of a backend: routes, config, database wiring and the folder layout I keep re-typing, scaffolded the way I would have set it up anyway.

  • Flappy-Bird

    C# · 2021 · ★ 4

    My first thing in Unity. A 2D loop is small enough to finish, which makes it a good place to learn what an engine actually gives you: physics, collision, and a game loop you do not write yourself.

  • Meow-Speech

    Swift · 2022 · ★ 3

    Text to speech on iOS, written in Swift because I wanted to know how the other platform felt from the inside rather than through React Native's abstractions.

  • Stark

    HTML · 2021 · ★ 3

    Generates certificates from a template in the browser, so a batch can be produced without a designer, a backend, or opening Photoshop a hundred times.

  • SpringKafka

    Java · 2024 · ★ 2

    A Kafka producer and consumer on Spring Boot, deliberately small: the version I wanted to find when I was working out how the pieces fit, instead of a framework demo with everything switched on.

  • star-wars-weather-app

    TypeScript · 2022 · ★ 1

    The only Angular thing I have written. Real forecasts from OpenWeatherMap behind a deliberately silly interface, built to find out how Angular structures an app compared to everything else I use.

Offcuts

Small tools that fell out of the work

A Bitbucket to GitHub org migration, OCR on a Node server, a submission similarity checker, a mojibake cleaner, React Native deep linking and a Zustand store wired to MMKV. Too small to be repositories, so they live as gists.

NextAct IV · Field Notes