Can your PC run this game? Detect your hardware via browser APIs and instantly check game compatibility with an S-F grading system.
Live at canirun.gg (temporarily at canirun.chrlss.dev)
Inspired by canirun.ai by midudev.
Grades are weighted: GPU 70%, RAM 30%.
| Layer | Tech |
|---|---|
| Frontend | Astro + Svelte |
| Backend | Bun server |
| Database | PostgreSQL (Supabase) + Drizzle ORM |
| Data | Steam Store API + Steam Player Stats API |
| Hosting | Self-hosted VPS, Nginx, Cloudflare |
# Install dependencies
bun install
# Set up environment
cp .env.example .env
# Edit .env with your PostgreSQL connection string
# Run database migration
bunx drizzle-kit push
# Seed benchmark data
bun run scraper/seed-gpu-benchmarks.ts
bun run scraper/seed-cpu-benchmarks.ts
# Seed initial game data (top 100 from Steam)
bun run scraper/seed-games.ts 100
# Start API server
bun run server/index.ts
# Build static site
bun run build
# Dev mode
bun run dev
src/
layouts/Base.astro # HTML shell, SEO, meta tags
pages/
index.astro # Home: hardware detection + game list
game/[slug].astro # Game detail with requirements comparison
why.astro # How it works
privacy.astro # Privacy policy
components/
HardwareDetector.svelte # GPU/CPU/RAM detection + manual selects
GameCard.astro # Game row in list
lib/
detect-hardware.ts # Browser hardware detection
grading.ts # S-F grade algorithm
server/
index.ts # Bun API server (port 3800)
schema.ts # Drizzle ORM schema
db.ts # Database connection
scraper/
steam-api.ts # Steam API wrapper with rate limiting
parse-requirements.ts # HTML requirements parser
seed-games.ts # Initial game data seeder
daily-update.ts # Daily cron job
data/
gpu-benchmarks.json # 114 GPUs with scores
cpu-benchmarks.json # 69 CPUs with scores
MIT