Felix Förtsch cfe6384f75 implement proper Steam API endpoint for /steam/refresh
Fixed issue where backend was forwarding /steam/refresh to
store.steampowered.com instead of calling the actual Steam Web API.

Now properly calls:
https://api.steampowered.com/IPlayerService/GetOwnedGames/v1/

With parameters from request body (apiKey, steamId).

Fixes 'the string did not match the expected pattern' error.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 21:53:04 +01:00
2026-02-05 23:28:42 +01:00
2026-02-06 15:36:56 +01:00
2026-02-06 15:36:56 +01:00

WhatToPlay - Game Library Manager

Eine PWA zum Verwalten deiner Spielebibliotheken von Steam, GOG, Epic, und mehr.

Features

  • 📚 Alle Spiele an einem Ort
  • 🎮 Steam, GOG, Epic Games, Battle.net Integration
  • 📱 PWA - funktioniert auf iPhone, Android, Desktop
  • 🔒 Daten bleiben lokal (IndexedDB)
  • Schnelle Tinder-Style Entdeckung

Deployment

Die App läuft komplett auf Uberspace (~5€/Monat):

  • Frontend: PWA (statische Files)
  • Backend: Node.js Express Server (CORS-Proxy für Steam API)
  • URL: https://wtp.uber.space

Details zum Deployment siehe UBERSPACE.md.

Steam API Integration

1. Steam API Key bekommen

  1. Gehe zu https://steamcommunity.com/dev/apikey
  2. Akzeptiere die Terms
  3. Domain: localhost (wird ignoriert)
  4. Kopiere deinen API Key

2. Steam ID finden

Option A: Steam Profil URL nutzen

  • https://steamcommunity.com/id/DEINNAME/ → ID ist DEINNAME

Option B: SteamID Finder

3. In der App konfigurieren

  1. Öffne https://wtp.uber.space
  2. Gehe zu Settings → Steam
  3. Füge Steam API Key und Steam ID hinzu
  4. Klicke auf Refresh → Deine Spiele werden geladen! 🎉

Architektur

PWA (wtp.uber.space)
    ↓ POST /api/steam/refresh
Express Backend (wtp.uber.space:3000)
    ↓ Forward mit API Key
Steam Web API
    ↓ Games List
Backend → PWA → IndexedDB

Local Development

npm install
npm run dev

Der Dev-Server nutzt Vite-Middleware für API-Calls, kein separates Backend nötig.

Weitere Plattformen

  • GOG: OAuth Flow (geplant)
  • Epic Games: Manueller Import (kein Public API)
  • Battle.net: OAuth Flow (geplant)

Tech Stack

  • React + TypeScript
  • Ionic Framework (Mobile UI)
  • IndexedDB (lokale Persistenz)
  • Vite (Build Tool)
  • Node.js Express (Backend)
  • Uberspace (Hosting)

License

MIT

Description
No description provided
Readme 507 KiB
Languages
TypeScript 92%
HTML 5.2%
CSS 1.4%
Shell 1.4%