VYR — A Game Inside Its Own Landing Page
The landing page of a made-up indie game whose hero is the game: pull the probe back, let go, and let the planets bend its flight.
- three.js
- TypeScript
- Vite
- Playwright
- Cloudflare Workers
Work
Nearly everything here is live, so you can click through it instead of taking my word for it. Open a case study to read what the problem was, which decisions it forced, and what the result measured.
The landing page of a made-up indie game whose hero is the game: pull the probe back, let go, and let the planets bend its flight.
A site for a renovation studio built around one interaction: drag the divider across a photo and the room turns from what it was into what it became.
Linked charts over up to ten million rows, all in the browser: brush any chart and every other one follows within the frame.
A shared canvas with live cursors, offline edits that merge on reconnect and per-person undo — with the sync written from scratch.
Two comboboxes with identical markup, searching 8,000 items — one keyboard-operable, one not.
Estimation rooms where votes stay hidden on the server until the host reveals them.
A scroll-driven WebGL landing page whose keyboard reacts to the keys you actually press.
A full-stack cooking product with AI import, meal plans, subscriptions and a companion mobile app.
The Expo app for Cook Galaxy: the same backend, the same account, in your hand at the stove.
An animated SaaS landing page for a fictional AI product-analytics platform, in light and dark.
A fast, editorial landing page for a fictional bistro, tuned until the numbers stopped moving.
An SEO-focused commercial site for a scrap metal and recycling company.
Archive
Smaller projects from before the ones above, kept here for the record.
A real-time price tracker for Bitcoin and Solana with a dual-axis 24-hour chart.
2025 · Next.js · TypeScript · Tailwind CSS · Recharts
A fan site with an interactive discography driven by live Spotify data.
2025 · Next.js · TypeScript · Tailwind CSS · Spotify API