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.

Role
Creator and engineer
Stack
React · TypeScript · Rust · Dioxus · GitHub Actions
Platforms
Web + desktop
Data refresh
Every 6 hours
Delivery
Pages + native builds
01

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.

02

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
03

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.

04

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.