Product engineering · 2026
WhatShouldIPlay
A game picker that turns a scattered backlog into one playable choice.
An open-source React/TypeScript PWA and Rust/Dioxus desktop application that combines live game sources, owned libraries, and weighted selection.
- Platforms
- Web + desktop
- Data refresh
- Every 6 hours
- Delivery
- Pages + native builds
The problem
Choosing a game should not become another research project.
Backlogs are fragmented across storefronts, local installs, trending lists, and personal notes. The interesting engineering problem is not randomization alone—it is building a useful pool and making the odds legible.
What I built
One selection model, delivered across browser and desktop.
The web app combines live sources with manual entries, presets, source weights, filters, history, and a configurable cooldown. The desktop client adds local Steam, Epic, GOG, Ubisoft, and Xbox scanning while preserving the same selection workflow.
- Weighted odds and per-source controls
- Owned-library import and local install scanning
- Installable offline PWA with optional private-Gist sync
- English and Spanish interface support
Delivery
The data and releases stay current without manual babysitting.
GitHub Actions refreshes source data every six hours, builds the static web application, and publishes it to GitHub Pages. Separate workflows validate the web client, build desktop artifacts across operating systems, and package tagged native releases.
Resilience
External sources are treated as fallible dependencies.
The ingestion path uses deterministic outputs and fallback behavior—for example, switching to a charts API when automated SteamDB access is unavailable—so one source cannot quietly break the entire picker.