150 lines
4.1 KiB
Markdown
150 lines
4.1 KiB
Markdown
# Steam Backlog Helper
|
|
|
|
Steam Backlog Helper is a desktop app for choosing what to play next from a large Steam library.
|
|
|
|
It is built around a simple workflow: connect a Steam profile, import the owned games list, set a few preferences, then spin the wheel for a recommendation. The app is intended for people with enough Steam games that picking one has become its own chore.
|
|
|
|
## What It Does
|
|
|
|
- Imports your Steam library using your Steam profile and Steam Web API key.
|
|
- Shows a large recommendation wheel using Steam game artwork.
|
|
- Picks from your imported library with either weighted recommendations or true random mode.
|
|
- Lets you adjust hard eligibility filters, such as whether to include unplayed or already-played games.
|
|
- Lets you set preference weights for reviews, single-player/multiplayer, genre or Steam tags, and playtime.
|
|
- Builds a shortlist of top candidate games.
|
|
- Opens a separate debug window so you can inspect why a game was picked.
|
|
|
|
## Current State
|
|
|
|
This is an early local-first version. The app can run as a Tauri desktop application and can build a macOS DMG locally.
|
|
|
|
Working now:
|
|
|
|
- First-run setup wizard.
|
|
- Local settings storage.
|
|
- Steam owned-games import.
|
|
- Recommendation wheel.
|
|
- Shortlist view.
|
|
- Settings modal.
|
|
- Separate debug diagnostics window.
|
|
- Background metadata enrichment for reviews, tags, genres, categories, and play mode where available.
|
|
|
|
Still evolving:
|
|
|
|
- Metadata caching in SQLite.
|
|
- Faster and more reliable Steam Store enrichment for very large libraries.
|
|
- Better exclusion of non-game Steam apps once metadata caching is in place.
|
|
- Launching selected games directly through Steam.
|
|
- Completion-time integration.
|
|
- Release automation for all platforms.
|
|
|
|
## Requirements
|
|
|
|
You need:
|
|
|
|
- A Steam account with public or API-accessible game details.
|
|
- A Steam Web API key.
|
|
- Node.js and npm for local development.
|
|
- Rust/Cargo for the Tauri desktop app.
|
|
|
|
The app does not ask for your Steam password.
|
|
|
|
## Running Locally
|
|
|
|
Install dependencies first:
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
Run validation:
|
|
|
|
```bash
|
|
npm run local:check
|
|
```
|
|
|
|
Start the desktop app:
|
|
|
|
```bash
|
|
npm run local:dev
|
|
```
|
|
|
|
Build a local desktop release:
|
|
|
|
```bash
|
|
npm run local:build
|
|
```
|
|
|
|
On macOS, the DMG is written under:
|
|
|
|
```text
|
|
src-tauri/target/release/bundle/dmg/
|
|
```
|
|
|
|
## Setup Flow
|
|
|
|
On first run, the app asks for:
|
|
|
|
- Steam profile, vanity URL, profile URL, or Steam ID.
|
|
- Steam Web API key.
|
|
- Optional time-to-beat provider placeholder.
|
|
- Default session length.
|
|
- Random mode preference.
|
|
|
|
Settings can be changed later from the cog button in the top bar.
|
|
|
|
## Recommendations
|
|
|
|
The picker separates two kinds of filters:
|
|
|
|
- Eligibility filters remove games from the candidate pool.
|
|
- Preferred filters change weighting without removing games.
|
|
|
|
Preferred filters currently include:
|
|
|
|
- Review signal.
|
|
- Single-player or multiplayer/co-op preference.
|
|
- Genre and Steam tag preference.
|
|
- Playtime preference.
|
|
|
|
True random mode bypasses weighting and chooses from the eligible pool.
|
|
|
|
## Debug Window
|
|
|
|
The Settings screen includes an Open Debug Window button. This opens a second desktop window that shows:
|
|
|
|
- Current pick.
|
|
- Active restrictions.
|
|
- Score contributions.
|
|
- Review data.
|
|
- Genres.
|
|
- Steam tags.
|
|
- Categories.
|
|
- Play mode metadata.
|
|
- Candidate scores.
|
|
|
|
This is useful while tuning the recommendation logic.
|
|
|
|
## Data And Privacy
|
|
|
|
Steam Backlog Helper is local-first.
|
|
|
|
- Settings are stored locally.
|
|
- The Steam API key is currently stored locally in SQLite during early development.
|
|
- The app contacts Steam APIs and public Steam Store pages to import and enrich library data.
|
|
- Library data is not sent to an app-owned server.
|
|
|
|
Before a public release, API key storage should move to OS-protected credential storage.
|
|
|
|
## Documentation
|
|
|
|
Project planning lives in:
|
|
|
|
- [Product Brief](docs/product-brief.md)
|
|
- [Implementation Plan](docs/implementation-plan.md)
|
|
- [Feature Roadmap](docs/feature-roadmap.md)
|
|
- [Technical Plan](docs/technical-plan.md)
|
|
- [Data and Integrations](docs/data-and-integrations.md)
|
|
- [Architecture Decisions](docs/architecture-decisions.md)
|
|
- [Answered Product Questions](docs/open-questions.md)
|