You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An opt-in "Learning Mode" that helps you target your slowest key combinations.
It measures inter-key latency for each letter pair (bigram), then biases word
generation toward the pairs you're slowest at, and shows a small analytics panel
after the test. Inspired by the FlowType concept, rebuilt natively for Monkeytype.
What it does (only when enabled)
Tracks average inter-key latency per bigram, stored locally, separately per
language + keyboard layout (latencies aren't comparable across them).
Adaptive word generation: ~60% of words are weighted toward your slowest
bigrams, ~40% stay random so tests stay varied. Falls back to normal random
generation until there's enough data (~10 reliable pairs).
Post-test "learning panel": your 5 slowest pairs this test, each with an
improvement/decline indicator vs your all-time average, plus consistency and a
plateau hint.
An overview modal (graduation-cap nav button) with all-time slowest pairs,
a WPM trend sparkline, pause/resume recording, and clear-data.
Plateau detection (last 8 sessions within a 10 wpm range → advice).
How it differs from the existing "weak spot" funbox
weak spot is per-character, in-memory, per-session, with no persistence or UI.
Learning Mode is per-bigram, persistent, scoped per language/layout, with
adaptive generation and an analytics UI. It's additive, not a replacement.
Principles
Opt-in, off by default — zero behavior change when disabled.
No backend changes — all data in localStorage; the two new config booleans
ride the existing config schema/sync.
No gamification, minimalist UI using existing theme tokens.
Scope / limitations (v1)
Learning data is device-local (not account-synced) by design for v1.
Adaptive generation applies to normal word/time modes (not quote/zen/funbox).
Status
Working implementation on my fork, all frontend tests + lint + format green,
42 new unit tests. Happy to adjust scope/UX based on feedback before opening a PR.
[Screenshots + live demo link here]
Would a feature like this be welcome? Any concerns before I open a PR?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Idea
An opt-in "Learning Mode" that helps you target your slowest key combinations.
It measures inter-key latency for each letter pair (bigram), then biases word
generation toward the pairs you're slowest at, and shows a small analytics panel
after the test. Inspired by the FlowType concept, rebuilt natively for Monkeytype.
What it does (only when enabled)
language + keyboard layout (latencies aren't comparable across them).
bigrams, ~40% stay random so tests stay varied. Falls back to normal random
generation until there's enough data (~10 reliable pairs).
improvement/decline indicator vs your all-time average, plus consistency and a
plateau hint.
a WPM trend sparkline, pause/resume recording, and clear-data.
How it differs from the existing "weak spot" funbox
weak spotis per-character, in-memory, per-session, with no persistence or UI.Learning Mode is per-bigram, persistent, scoped per language/layout, with
adaptive generation and an analytics UI. It's additive, not a replacement.
Principles
ride the existing config schema/sync.
Scope / limitations (v1)
Status
Working implementation on my fork, all frontend tests + lint + format green,
42 new unit tests. Happy to adjust scope/UX based on feedback before opening a PR.
[Screenshots + live demo link here]
Would a feature like this be welcome? Any concerns before I open a PR?
Beta Was this translation helpful? Give feedback.
All reactions