FingerGo is a cross-platform touch-typing trainer, designed to improve typing speed and accuracy, with a user-friendly and intuitive interface.
It includes real-time keyboard visualization, a hierarchical text and code library, and live statistics tracking.
Built with Go ↔ Wails ↔ Vanilla JavaScript (ES6+). Available for Linux, macOS, and Windows.
▸ Clean Interface Design
▸ Shortcuts, Zen Mode, keyboard/Stat Toggle
▸ Real-time visual keyboard with finger mapping
▸ Hierarchical text/code library (plain text and code samples)
▸ Live stats: WPM, CPM, accuracy, per‑key mistakes
▸ Eye-friendly Dark/Light themes
▸ Customizable color theme
🪟 Windows Release
Portable:
- Download
FingerGo-{VERSION}-x64-portable.zip - Extract and run
FingerGo.exe
Requirements: Windows 10/11 with WebView2 (auto-downloads if missing)
🍎 macOS Release
DMG:
- Download
FingerGo-{VERSION}-universal.dmg - Open DMG and drag FingerGo to Applications
- First launch: Right-click → Open (bypasses Gatekeeper if unsigned)
Supports: Intel and Apple Silicon (Universal binary)
🐧 Linux Releases
Flatpak:
flatpak install --user FingerGo-{VERSION}-x86_64.flatpak
flatpak run com.ashbuk.FingerGoPortable (tar.gz):
# Requires WebKit2GTK 4.1 installed on your system.
tar -xzf FingerGo-{VERSION}-linux-x86_64.tar.gz
./FingerGo┌──────────────────────┐ ┌────────────────────────┐
│ 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/... │
└─────────────────────┘
- 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
- Technical design
- Architecture overview
- Makefile
- Contributing
- ashbuk.hashnode.dev Architecture Dive
Apache 2.0 LICENSE
If you use this project, please link back to this repo and ⭐ it if it helped you.
Please consider supporting development

