Nick Richard · Full-stack developer
I turn rough ideas into things people actually use.
Right now that's Hanzi Rivals, a Chinese vocab game you play with friends over text. It runs on the web, as an iPhone app and right inside iMessage.
Hanzi RivalsLive at hanzirivals.com
Featured · 2026 · Live
Hanzi Rivals 汉字
Paste the words you're studying, send a friend a link, and take turns attacking and blocking with meanings, pinyin and handwriting. Your friend doesn't install anything, and you both practice on every move.
- Five ways to play. Duels, a 60-second sprint, a group climb, a daily set and word chain.
- Handwriting, graded by stroke. Matched against stroke data, not OCR, and forgiving about order.
- A 124,000-entry dictionary that searches as you type in pinyin, English or characters.
- Three surfaces, one client. A web app, an iPhone app and an iMessage game, all solo.
- TypeScript
- React 19
- Vite
- Node + Express 5
- SQLite
- Capacitor
- Swift
- Fly.io



Earlier work · 2021
Where it started
Full-stack apps from 2021, two of them built with a team. Their demos ran on Heroku's free tier, which ended in 2022, so these link to the source.

Hanzi U
The first try at a Chinese learning app: character decks ordered by how often each character appears, with quizzes to track progress.
React · Chakra UI · Flask · PostgreSQL
Source on GitHub for Hanzi U
Catch Me If You Can
Draw a walking, biking or running route on a map, then race your rivals' times on it. Every route has its own leaderboard.
React · Redux · Flask · PostgreSQL · Mapbox
Source on GitHub for Catch Me If You Can
Burn Reads
Goodreads, inverted: search for the books you can't stand, shelve them as kindling and leave fiery reviews.
React · Express · Sequelize · PostgreSQL · Google Books API
Source on GitHub for Burn Reads

About
Hi, I'm Nick.
I'm a full-stack developer who loves the stretch between a rough idea and something people actually use. Programming is where my problem-solving and my creative side meet, and I'm happiest learning whatever a project needs next.
On Hanzi Rivals that meant game design, a Node server and SQLite schema, a React client, a Capacitor iPhone app with a Swift iMessage extension, 16×16 pixel fighters, and a guzheng soundtrack synthesized in the browser. Chinese has been a thread through my work: my first app, Hanzi U, was a character trainer too.
Toolbox
- Languages
- TypeScript, JavaScript, Python, Swift, SQL, HTML & CSS
- Front end
- React, Vite, Astro, Redux, Web Audio, Canvas & SVG
- Back end
- Node & Express, Flask, SQLite, PostgreSQL, REST APIs
- Mobile
- Capacitor, iMessage apps, Installable web apps
- Shipping
- Fly.io, Docker, GitHub Actions, Git
Contact
Have something in mind? Let's talk.
Whether it's a role, a project or a question about Hanzi Rivals, email is the quickest way to reach me.
nrich414@gmail.com