Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Achievd

Standalone Steam achievement tracking, planning, and sync dashboard.

Achievd is a desktop app for seeing your Steam achievement progress, finding games closest to completion, customizing your library art, tracking rare or unobtainable achievements, reading and editing per-achievement guides, and building a roadmap for what to finish next.


Screenshots

Home Home

Synced Games Synced Games

Suggested What to earn next (Easiest>Hardest) Suggested What to earn next (Easiest>Hardest)

Settings Settings

Achievement Layout Achievement Layout


What is Achievd?

Achievd is a live Steam achievement assistant built with Tauri, Vite, React, Prisma, and embedded SQLite.

It does not unlock, lock, or modify Steam achievements. It reads your Steam library and achievement data through the Steam Web API, stores it locally, and gives you a cleaner dashboard for planning achievement hunts.


Features

  • Live Steam profile, owned-games, achievement, and global-rarity sync
  • Dashboard with completion, remaining achievements, perfected games, and recent unlocks
  • Game library with search, filters, sorting, hidden games, box-art editing, and bulk SteamGridDB artwork replacement
  • Genre, developer, and publisher metadata for synced games
  • Install games from Steam directly from the library when they are not installed
  • Play installed Steam games directly from the library
  • Per-game achievement pages with spoiler hiding, rarity labels, achievement groups, obtainability labels, difficulty, tags (unobtainable/glitchy/missable/etc.), and custom banners
  • Built-in achievement guides bundled as guides/*.txt files, parsed for guide text, difficulty, tags, and fix notes, and shown per achievement
  • In-app guide editor: write or edit a guide for any achievement and have it saved back into the matching guides/*.txt file (saving an empty field clears that guide)
  • Roadmap view with pinned achievements (priority and state) plus a suggested "what to achieve next" list ordered easiest-first
  • Rules reference page rendering the bundled Steam Hunters achievement rules
  • SteamGridDB browsing for replacement box art and banners when a SteamGridDB key is saved on the local account
  • Steam Hunters metadata for paid DLC flags, fastest/median completion times, and achievement obtainability
  • Global sync progress visible while using Dashboard, Games, Roadmap, Rules, or Settings
  • Local desktop accounts with encrypted per-user Steam API keys, login tiles, and optional saved-password login
  • Settings for spoiler mode, default library sort, theme preference, neon themes, and rarity thresholds
  • Embedded SQLite storage for local desktop data
  • JSON export and account deletion from Settings

How to Run Achievd?

If pnpm is not recognized on Windows, install it once and then open a new terminal:

npm install -g pnpm@11.9.0

If npm reports a permissions error, run this once to use a user-writable global package folder, then retry the install:

npm config set prefix "$env:USERPROFILE\.npm-global"
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$env:USERPROFILE\.npm-global", "User")
npm install -g pnpm@11.9.0

1. Install dependencies

pnpm install

2. Configure environment

Create .env from .env.example and keep the default local SQLite database URL.

APP_URL=http://localhost:3000
SESSION_SECRET=replace-with-at-least-32-random-characters
DATABASE_URL=file:./.local-data/achievd.db
STEAM_API_KEY=

DATABASE_URL is the local SQLite file used by Prisma migrations. Desktop account API keys are entered during registration and stored locally with encryption. APP_URL, SESSION_SECRET, and STEAM_API_KEY are only used by the legacy Next.js dev/reference flows and tests, not by the packaged desktop app.

Get API keys from:

3. Initialize the database

Generate the Prisma client, then run migrations:

pnpm prisma:generate
pnpm db:migrate

If you see Cannot find module '.prisma/client/default', rerun pnpm prisma:generate.

4. Run the app

Vite frontend only:

pnpm dev

Tauri desktop shell:

pnpm tauri:dev

Create a local account in the app with:

  • Username and password
  • Password confirmation
  • Steam Web API key
  • Steam64ID
  • Optional SteamGridDB API key

Steam API key page:

https://steamcommunity.com/dev/apikey

Steam64ID lookup:

https://steamid.io/

Build Instructions for Tauri

Windows build prerequisites

Tauri desktop builds require Rust/Cargo. Install Rustup, then close and reopen PowerShell:

winget install -e --id Rustlang.Rustup

Verify Rust is available:

cargo --version
rustc --version

Windows Tauri builds also require the Microsoft C++ Build Tools linker, link.exe. Install Visual Studio Build Tools 2022 with the C++ workload:

winget install -e --id Microsoft.VisualStudio.2022.BuildTools --override "--wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"

After installing, close and reopen PowerShell, then verify:

where.exe link

If link.exe is installed but not found in a normal PowerShell, run the build from Developer PowerShell for VS 2022.

Windows Tauri builds also require Microsoft Edge WebView2. WebView2 is already included on current Windows 10 and Windows 11 installs. See the official Tauri prerequisites: https://v2.tauri.app/start/prerequisites/

Development desktop shell

pnpm tauri:dev

Vite desktop frontend

The Vite frontend is the default desktop UI. It is served as static files by Tauri and calls native Tauri commands for local auth/session, SQLite-backed dashboard data, games, planner data, preferences, and Steam install checks.

pnpm vite:dev
pnpm vite:build

The legacy Next.js app can still be run for reference while screens finish moving over:

pnpm next:dev
pnpm next:build

Build desktop app

pnpm tauri:build

The build runs vite build, stages dist-vite in .tauri-build\current-web, writes a Vite frontend marker, and bundles Prisma migrations. In production, the Tauri shell loads those static files directly and initializes the app-data SQLite database through native Rust startup code. It no longer starts a local Next.js or Node.js server.

Build public release folder

pnpm build:public

This creates public\release with the portable Windows executable and a small manifest.json. Users do not need the repository, source files, Node.js, pnpm, Rust, Postgres, an installer, or an env file. API keys are entered per account inside the app.

If the desktop app opens to the packaged-assets placeholder or closes during startup, check the startup logs:

%LOCALAPPDATA%\com.achievd.desktop\startup.log
%APPDATA%\com.achievd.desktop\startup.log
%TEMP%\Achievd\startup.log

Tauri files live in src-tauri.


Dependencies / Requirements

Runtime

  • Windows
  • Node.js for development and building
  • pnpm
  • Rust/Cargo for Tauri desktop builds
  • Visual Studio C++ Build Tools for Tauri desktop builds
  • Steam Web API key
  • Steam64ID

Main stack

  • Tauri
  • Vite
  • React
  • TypeScript
  • Tailwind CSS
  • Prisma
  • SQLite
  • Recharts
  • Zod
  • Vitest
  • React Testing Library
  • Playwright

The old Next.js App Router screens remain in the repository as migration reference code, but the packaged desktop app no longer bundles or starts a Next.js server.

Useful scripts

pnpm dev
pnpm tauri:dev
pnpm tauri:build
pnpm build:public
pnpm db:migrate
pnpm prisma:generate
pnpm typecheck
pnpm lint
pnpm format
pnpm format:check
pnpm test
pnpm test:unit
pnpm test:e2e
pnpm build

Upcoming Features / What Needs Implemented

  • Durable sync queue instead of in-process jobs
  • Better per-game sync diagnostics and skipped-game reporting
  • Scheduled background sync and rarity refresh
  • Full text search for games and achievements
  • Better recommendation scoring using rarity, playtime, and recent activity
  • Restore flow for exported account data
  • More complete end-to-end tests against a seeded SQLite database

Notes

Achievd is not affiliated with Valve or Steam.

Steam privacy settings can hide owned games, playtime, and achievements. Existing synced data is preserved when Steam has temporary errors.

About

Achievd is a desktop app for tracking Steam achievement progress, syncing your library, finding games close to completion, and planning what to unlock next. It stores your data locally and helps organize achievement hunting without modifying Steam achievements.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages