Skip to content

AshBuk/FingerGo

Repository files navigation

FingerGo

FingerGo cross-platform touch-typing trainer modern app

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.

Features

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

Screenshots

FingerGo main interface

Installation

🪟 Windows Release

Portable:

  1. Download FingerGo-{VERSION}-x64-portable.zip
  2. Extract and run FingerGo.exe

Requirements: Windows 10/11 with WebView2 (auto-downloads if missing)

🍎 macOS Release

DMG:

  1. Download FingerGo-{VERSION}-universal.dmg
  2. Open DMG and drag FingerGo to Applications
  3. 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.FingerGo

Portable (tar.gz):

# Requires WebKit2GTK 4.1 installed on your system.
tar -xzf FingerGo-{VERSION}-linux-x86_64.tar.gz
./FingerGo

Tech Stack

Go Reference Go Report Card Vanilla JavaScript

┌──────────────────────┐                    ┌────────────────────────┐
│   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

For Developers

Acknowledgments

Apache 2.0 LICENSE

If you use this project, please link back to this repo and ⭐ it if it helped you.

Sponsor

Sponsor PayPal

Please consider supporting development