DEV Community

Cover image for FingerGo Typing Trainer (don't hunt, type!)
Asher Buk
Asher Buk

Posted on

FingerGo Typing Trainer (don't hunt, type!)

Still Hunting for Keys on Your Keyboard?

Real skill acquisition requires practice. And if you work on a computer, your practice almost always involves typing!

Believe me — as someone who switched from "hunt-and-peck" typing where you're constantly distracted, glancing at the keyboard, with attention continuously fragmenting, and a low typing speed ceiling (which impacts productivity overall)...

Our brains naturally take the path of least resistance, leading us to adopt incorrect techniques (whether it's keyboard typing or hand positioning when playing a musical instrument). This becomes both a narrow comfort zone and a limitation — sometimes even causing health issues!

If you work on a computer and type frequently (coding, for instance) — don't procrastinate. Start your transition to touch typing. It's a worthwhile investment!

I built a dedicated application for this: FingerGo.

✨ Key Advantages

  • Cross-platform — Works on Linux, macOS, and Windows
  • Lightweight binary
  • Designed to improve typing speed and accuracy with a user-friendly and intuitive interface
  • Eye-friendly Dark/Light themes with customization options
  • Hierarchical text/code library (plain text and code samples)
  • Productivity features: Shortcuts, Zen Mode, keyboard/stats toggle

🎯 Essential Touch-Typing Features

  • Real-time visual keyboard with finger mapping
  • Live statistics: WPM, CPM, accuracy, per-key mistakes tracking

🏗️ Tech Stack

┌──────────────────────┐                    ┌────────────────────────┐
│   GUI LAYER          │◄──── Wails ───────►│  INTERNAL LAYER        │
│   HTML/CSS/JS        │      Bridge        │  Go 1.25+              │
└──────────────────────┘                    └────────────────────────┘
         │                                              │
    Event-Driven                                   Repository
         │                                              │
    ┌────┴─────┐                                   ┌────┴─────┐
    │ EventBus │                                   │ Repos    │
    │ (pub/sub)│                                   │ (DI)     │
    └────┬─────┘                                   └────┬─────┘
         │                                              │
    Modular JS                                    Domain Models
                                                         │
                                                         ▼
                                           ┌─────────────────────┐
                                           │ JSON Storage        │
                                           │ ~/.local/share/...  │
                                           └─────────────────────┘
Enter fullscreen mode Exit fullscreen mode
  • Backend: Go 1.25+ with Repository Pattern (DI)
  • Bridge: Wails v2 provides Go↔JS communication
  • Frontend: Vanilla JavaScript (ES6+) with Event-Driven Architecture (pub/sub EventBus)
  • Storage: JSON files in XDG directories
  • Platforms: Linux, macOS, Windows

Architecture Dive on ashbuk.hashnode.dev

Try It https://github.com/AshBuk/FingerGo

Start your journey to effortless touch typing! Your future self (and your productivity) will thank you.

Top comments (2)

Collapse
 
zxce3 profile image
Zxce3

Good post tho, keep it up

Collapse
 
ashbuk profile image
Asher Buk • Edited

Thanks! I’m actually retraining myself on a split keyboard, and that’s why I built this app - hope it’ll be useful for others too.