Self-hosted · source-available · Steam-first
Every hour you played, heard, watched or read — remembered.
Weekly insights across your Steam library, music, shows and reading — self-hosted, on your own hardware.
play. listen. watch. read.
Why Questory
Questory turns the wall of games you bought on sale into something you can actually read — what you play, what you skip, what's worth buying next, and who's free tonight.
01 — Modules
Play first. Then listen, watch and read.
Games are always on. Music, Watch and Read are optional modules you switch on when you self-host — same account, same database.
Core · always on
Steam library
Playtime, backlog, deals and friends — the heart of Questory.
Dashboard
Library overview — playtime, backlog, play-next picks, and deal signals in one place.
Wishlist
Should-buy scores, price targets, and deal alerts across Steam, Epic, and GOG.
Collections
Smart shelves — Never Played, Hidden Gems, Couch Co-op, Steam Deck Ready — plus custom lists.
Family insights
Browse shareable family libraries with ownership stats and combined views.
Optional · ListenBrainz · multi-scrobbler
Music
Hear your year take shape.
Listening pulse
What's playing, when you listen, and what's shifting — from scrobble data.
History & charts
Day-grouped history plus weekly and monthly top artists and tracks.
Insights
Patterns across listening time, discovery, and scrobble sources.
Multi-scrobbler ingest
ListenBrainz-compatible API plus imports from Spotify, Last.fm, and more.
Optional · Movies · TV · Anime
Movies & TV
Every episode, accounted for.
Movie & TV analytics
Titles watched, streaks, completion rate, and weekly tops in one overview.
History & insights
Chronological watch history plus patterns across media types and sources.
Title detail
Per-title metadata, ratings, and watch history.
Connected sources
Trakt, Letterboxd, AniList, MAL, Plex/Jellyfin webhooks, and more.
Optional · Manga · Manhwa · Novels
Manga & books
Chapters, logged.
Reading analytics
Manga, manhwa, and print — chapters logged, completion rate, and streaks.
Library & history
Your series library and chronological reading activity.
Insights
Patterns across when you read, formats, and genres.
Connected sources
Sync from AniList, MAL, Kitsu, Bangumi, and Shikimori.
02 — Games, in depth
Every hour, every dollar, every friend.
01
Dashboard
Library overview — playtime, backlog, play-next picks, and deal signals in one place.
02
Library
Browse and filter your Steam collection with rich game detail pages.
03
Wishlist
Should-buy scores, price targets, and deal alerts across Steam, Epic, and GOG.
04
Collections
Smart shelves — Never Played, Hidden Gems, Couch Co-op, Steam Deck Ready — plus custom lists.
05
Cost analytics
Estimate library value and cost-per-hour from store prices, not purchase history.
06
Friends
Compare libraries with Steam friends and find mutual games.
07
Multiplayer planner
Find multiplayer games for your group with strict library match and filters.
08
Family insights
Browse shareable family libraries with ownership stats and combined views.
09
Trending
Friends' recent activity, Steam concurrent charts, Deck picks, and new releases.
10
Search
Search games, friends, and publishers with rich filters from the global header.
03 — QEngine · Opt-in
It learns your taste.
A Rust engine for recommendations and a taste fingerprint built from what you actually play. Off by default — switch it on with one flag.
ENTERPRISE=true
QEngine's source is private; its image is published binary-only under a personal / noncommercial license.
See the taste fingerprint →04 — Self-host
Your data. Your box.
Start small on SQLite with in-memory cache, or scale up with Postgres and Redis through Docker Compose. Same app either way.
-
01
Grab the compose file and env template
curl -LO https://raw.githubusercontent.com/Questory-Labs/Questory/main/docker-compose.ymlcurl -LO https://raw.githubusercontent.com/Questory-Labs/Questory/main/.env.selfhosted.example -
02
Set your secrets
cp .env.selfhosted.example .env # SESSION_SECRET, STEAM_API_KEY -
03
Start it
docker compose --profile selfhosted --env-file .env up -d # web :3000 · api :4000
$ docker compose --profile selfhosted --env-file .env up -d
Building from source instead? Clone the repo, copy the same template, and start with --build.
Read the self-host guide