Josh Lee
Get in touch

I build interactive experiences that earn their place.

Web development for the design-led team

Josh Lee

Full-stack developer with a background in games, which taught me how to use pacing, feedback and a clear next move to bring visitors to the signup or sale.

I own projects and keep them moving. Finding answers, flagging risks early, and don't wait to be asked.

Tech & tools

  • TypeScript
  • React
  • Figma
  • Next.js
  • Motion
  • Tailwind
  • Supabase
  • Claude
  • Unity

Recent work

Select your hero

MARVEL Tōkon Character SelectorLaunch campaign experience, built to the game's brand

  • React
  • Tailwind
  • Motion
  • Figma
  • Motion design
  • Brand fidelity
  • Localisation

Given static designs, I authored every transition and animation using in-game footage as reference so it feels like the game's own UI.

Shipped to 103 locales as a key moment on the game's marketing page. React, Tailwind and (Framer) Motion as a self-contained, portable experience that can be dropped into any existing page and consumes content from the CMS.

Editor interface

ShotpotPhoto gallery SaaS for race events

  • Next.js
  • TypeScript
  • Supabase
  • Figma
  • Tailwind
  • Product design
  • User research
  • Test automation

Shotpot is a SaaS product that began with dozens of discovery calls with race organisers and photographers to understand the problem space. Every screen and flow got wireframed in Figma for fast iterations, and I conducted user-testing sessions with photographers (the end users) to refine the UX.

Built with Next.js and Supabase. The whole app's UI lives in Storybook as pure React components. Comprehensive unit testing (Jest), Playwright e2e tests with a full-journey smoke test that runs on CI before promoting a build to production.

Spent a silly amount of time getting the gallery view (the core of the product) highly performant with thousands of photos with a virtualization/windowing engine for seamless browsing.

Match three in a row

Psychometric assessment gamesSeven games for a testing start-up, and the engine under them

  • React
  • Motion
  • TypeScript
  • Game design
  • Psychometrics

Seven browser games measuring attributes like visual search, problem solving and typing speed. The gameplay, visuals, motion and interaction were built end to end and integrated into the client's platform along with a shared framework that managed rendering, scope capture and the candidates flow to the results.

Worked with a psychometrics expert for the games to be used as a measuring instrument.

#ItHappensOnPS5

PlayStation®5 brand campaignHomepage takeover on playstation.com

  • React
  • Tailwind
  • Motion
  • Figma
  • A/B testing
  • Motion design
  • Campaign delivery

The takeover opens from an eye-catching banner to a full-page experience and plays the campaign's social videos in a Reels/TikTok-style stage with a call to action.

Six figures of attributed revenue, with a 7% click-through among visitors who opened it, measured A/B.

Habit tracking in analogue

Clay Habit CalendarA printed wall calendar you design in the browser

  • Next.js
  • React
  • TypeScript
  • Tailwind
  • Figma
  • Configurator UI
  • SEO

Clay is a wall calendar for tracking habits. The landing page goes straight into a live editor to build your Clay: pick your habits, personalise with your name and a theme.

Uses the same rendering code in-browser to produce the 12 pages for sending to the printer.

More projects

Cut it in a single stroke

Ghost of Yotei Bamboo StrikeA slicing minigame that gets easier every time you miss

  • React
  • Tailwind
  • Motion
  • Figma
  • Accessibility
  • Interaction design

Full-page experience for the game release in a playable format: a slicing minigame that tests the visitors accuracy and speed, like it does in-game.

I built the failure states in a way that gets easier on every miss, to account for visitors with dexterity issues, or just using their phone one-handed on the bus.

Find a clinic four ways

Clinic FinderPatient-facing search built onto a client's existing stack

  • Next.js
  • TypeScript
  • WordPress
  • Figma
  • Systems integration
  • Search UX
  • Lead capture
  • Headless CMS

A finder that searches by location, clinician, treatment or concern, and passes qualified leads through to the client's HubSpot.

Built as a Next.js frontend on the WordPress and HubSpot infra they were already running.

Grab them before anyone else

EmojisnatchA multiplayer browser game that logs you in with Discord

  • Unity
  • C#
  • React
  • Real-time
  • Multiplayer
  • WebGL

A game for collecting the custom emojis. Sign in with Discord, then race everyone else on the server to grab them.

Unity compiled to WebGL, with Firebase holding the live state so every player sees the same board at the same moment.

A village full of suspects

Mystery Match VillageShipped mobile game, 100K+ downloads

  • Unity
  • C#
  • LiveOps
  • Gameplay
  • Tooling

A match-3, world-building and hidden object game that shipped to over 100,000 downloads.

I worked as a generalist across UI, gameplay, liveops and internal tooling, inside a small engineering team with a strict review process.

What does MOCHA mean?

What's That WordleProgrammatic SEO experiment, top-ten in seven days

  • Vue
  • Nuxt
  • TypeScript
  • Programmatic SEO
  • Static generation
  • Web scraping

Wordle's answers sit in the game's own source, six years ahead. I pulled all 2,309, ran each through a dictionary API, and pre-generated a page per word.

By the time anyone searched "what does epoxy mean wordle", the page had been indexed for weeks, which is how it beat the outlets writing theirs on the day. 10,000 impressions in the first week.

Observations

Climate StationA century of climate data, explorable in VR

  • Unity
  • C#
  • Data visualisation
  • VR
  • 3D

Console VR experiences built from real climate data; NASA, NOAA and IPCC processed and visualized as a globe you can rotate and scrub the timeline.

Built in Unity with shader work for rendering the globe and atmosphere.