Back to projects
Betav0.3.0

typesilk

A typing test where the words glide under a still caret.

A typing test in the browser. The text moves on one continuous spring that keeps its speed between keystrokes, so it runs smoother the faster you type. Nine modes, four languages, sound packs cut from real keyboard recordings, and a coach that builds runs around your weakest keys. It works without an account; signing in with GitHub or Google adds the daily leaderboard and syncs your profile across devices.

Latest release
v0.3.0
Live
typesilk.com
Platform
Web
Source
GitHub repository
Updated
Nov 2, 2026
Stack
TypeScript · Vite

Problem

Most typing tests start a short animation for every key. When you type fast, each one gets cut off by the next and the motion keeps restarting.

What I built

TypeScript and Vite with no UI framework. Letter positions are measured once per word, and every frame after that only moves things with transforms: 1.6 layout passes per keypress against 11.7 for Monkeytype in the same headless Chrome run. Before a daily run goes on the leaderboard, its recorded keystrokes are replayed and checked.

Highlights

  • Nine modes: time, words, quote, zen, custom, perfect, endless, train, and a daily run with the same 40 words for everyone.
  • English, German, Spanish and French, with optional punctuation and numbers.
  • Errors and speed per letter, a keyboard in your language's layout that shades your weak keys, and a ghost caret of your best run to race.
  • Four themes, four sound packs and a command palette that reaches every setting. Reduced motion is respected.
  • Everything stays in your browser. Signing in is optional and only needed for the leaderboard and syncing between devices.

Developer setup

clone
git clone https://github.com/jx-grxf/typesilk.git && cd typesilk