PLAY. CONNECT. TRACK.
A small Windows tray client that tracks your hours in every launcher and shows what your friends are playing.
Public beta · current release 0.3.0-beta.9.1 · Download · Releases · Changelog
Fraglink is a lightweight tray client for Windows in the spirit of the classic gaming clients. It notices which game you're playing on any launcher (Steam, Battle.net, Epic, EA, Ubisoft, GOG, Xbox or standalone), keeps an honest record of your play time, and shows your friends list with who is online and what they're playing.
The website at playfraglink.com hosts public profiles, hours, friends, leaderboards and account settings. You can link Steam, Battle.net and Discord, import your Steam hours, and bring in exact World of Warcraft /played hours with the Fraglink addon. Fraglink doesn't do chat, voice or overlays — Discord already covers those.
Privacy in short: no game memory reading, no injection, no overlays, no keylogging, no ads or selling data. Hours count while you're signed in and connected. Hours are either Tracked (by Fraglink or Steam) or Imported (a game's own counter, like WoW /played). Full policy: playfraglink.com/privacy. Details of what the app reads: docs/privacy.md.
apps/desktop/ Tauri 2 Windows app (tray client)
apps/server/ axum + Postgres API and website backend
apps/site-web/ Static website pages (built into dist/)
crates/fraglink-core/ Game detection, tracker, local SQLite, export
crates/fraglink-sync/ Desktop ↔ server sync client
packages/signatures/ Game signatures and folder rules
deploy/ systemd unit, Caddyfile, backup/geo helpers
docs/ Roadmap, decisions, original spec, privacy notes, legal texts, short deploy note
Prerequisites: Rust stable (1.94+) and Node 20+. On Windows, WebView2 and the MSVC build tools. On Linux (for CI / server), the usual Tauri system libs if you build the desktop app there.
Desktop
cd apps/desktop
npm ci
npm run dev # run against real processes
npm run dev:sim # fake process source
npm run build # release build + Windows installersServer (needs Postgres, e.g. docker compose up -d db):
export DATABASE_URL=postgres://fraglink:fraglink@127.0.0.1:5432/fraglink
cargo run -p fraglink-server # http://localhost:8787
cargo test -p fraglink-serverCore only (any OS):
cargo test -p fraglink-coreMore server env vars and API notes: apps/server/README.md. Redeploy helpers: docs/deploy.md and scripts/deploy.sh.
- Roadmap · Changelog · Product spec
- Design decisions · Windows testing checklist · Privacy notes
- Privacy Policy · Terms of Use · FAQ
- Contributing · Security
All rights reserved; license to be decided before a stable public release. See LICENSE. Bundled fonts keep their own licences (Russo One: SIL OFL 1.1; Wine Tahoma-metric fonts: LGPL 2.1+). The wordmark is Saira Expanded Bold (SIL OFL 1.1), converted to outlines. Website country flags come from flag-icons (MIT, see apps/site-web/static/flags/LICENSE.txt). IP geolocation data by DB-IP (CC BY 4.0).
Fraglink is an independent project, not affiliated with or endorsed by any game company, launcher or chat service. The Fraglink name, mark and UI artwork are original. Game names are used only to identify games and belong to their owners.
