Advertisement
Build It Yourself
SGI's source code is fully public on GitHub. The desktop app is a Tauri app (Rust + Next.js), and it drives a bundled helper process, SteamUtility, built from a separate C#/.NET project at libs/SteamUtility/.
Prerequisites
- Node.js >= 20.0
- pnpm - the project uses pnpm workspaces, not npm/yarn
- Rust (stable toolchain)
- .NET SDK >= 8.0 (
libs/SteamUtilitytargetsnet8.0only)
Windows only:
- VS Build Tools = latest, with the "Desktop development with C++" workload
- WebView2 = latest (pre-installed on Windows 11 and newer Windows 10 versions)
Linux only:
- Tauri's Linux prerequisite system dependencies for your distro
Clone Repo
git clone https://github.com/zevnda/steam-game-idler.git
cd ./steam-game-idlerInstall Dependencies
pnpm installThis installs dependencies for both the root app and the docs/ workspace package
Build SteamUtility
dotnet build ./libs/SteamUtility/SteamUtility.csprojThis outputs SteamUtility to src-tauri/target/debug/libs/ (or release/libs/ for a release build); pnpm tauri dev/pnpm tauri build expect it to already be there
Create Environment Files
Create a .env file in the root of ./steam-game-idler and add a KEY variable containing your Steam Web API Key
.env
pnpm-lock.yaml
package.json
KEY="ABC123******789XYZ"Development or Production Build
# Development
pnpm td # shorthand for `tauri dev`
# Production
pnpm tb # shorthand for `tauri build`, outputs to `src-tauri/target/release/bundle/`Other Useful Scripts
Run these from the repo root:
| Script | What it does |
|---|---|
pnpm typecheck | tsc --noEmit for the desktop app |
pnpm lint | ESLint for the desktop app |
pnpm dd | Starts the docs site dev server (this site) |
pnpm build:docs | Production build of the docs site |
pnpm build:libs | Builds the ./libs/SteamUtility.csproj |
pnpm i18n:check | Checks en-US.json for duplicate translation values |
Advertisement