canirun.gg Svelte Themes

Canirun.gg

Can your PC run this game? Browser-based hardware detection + Steam game requirements checker with S-F grading system.

CanIRun.gg

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.

How it works

  1. Detect — WebGL reads your GPU model, Navigator API reads CPU cores and RAM
  2. Match — GPU name matched against a database of 114+ GPUs with performance scores
  3. Score — Your hardware score compared to each game's recommended requirements
  4. Grade — S (overkill) through F (can't run) assigned per game

Grades are weighted: GPU 70%, RAM 30%.

Features

  • Hardware auto-detection via browser (GPU, CPU, RAM)
  • Manual override dropdowns (114 GPUs, 69 CPUs)
  • 1000+ games with parsed system requirements from Steam
  • Dynamic search — games not in DB are fetched from Steam on-the-fly
  • Grade system: S / A / B / C / D / F
  • Coming Soon section for upcoming releases
  • Genre and grade filters
  • Game detail pages with component-by-component comparison
  • Daily cron updates player counts and discovers new games
  • Selections persist in localStorage across pages
  • Full SEO: JSON-LD, Open Graph, sitemap, canonical URLs

Tech Stack

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

Setup

# 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

Project Structure

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

License

MIT

Author

Christian Rojas (@chrlss11)

Top categories

Loading Svelte Themes