DEV Community

Martin
Martin

Posted on

I built a free SQL practice game where you work at a fictional Singapore bank

I've been frustrated with SQL learning resources for a while. Most are either:

  • Dry reference docs
  • Toy exercises with no context ("SELECT * FROM employees")
  • Paid platforms with paywalls after level 3

So I built SQLwak — a free, browser-based SQL game where you're hired as a Graduate Analyst at Lion City Bank, a fictional Singapore bank.

How it works

Instead of abstract exercises, every challenge is a real business request from a colleague:

"The Operations team needs all Central region branches for an upcoming audit."

"Risk wants customers with credit scores below 600 who have active loans."

"Finance needs vessels ranked by cargo revenue — use window functions."

You write actual SQL against a realistic 9-table banking database and get immediate feedback.

57 levels across 4 tiers

Tier Skills
🟢 Foundational SELECT, WHERE, ORDER BY, LIMIT
🟡 Intermediate JOINs, GROUP BY, HAVING, subqueries
🔴 Advanced CTEs, multi-table aggregations
⚫ Expert Window functions (RANK/DENSE_RANK OVER PARTITION BY), UNION ALL, compound CTEs

The database schema

Lion City Bank has two divisions:

Retail Banking: customers, accounts, transactions, loans, branches, products

Maritime Trade Finance (Advanced/Expert levels): vessels, cargo_shipments, trade_finance_facilities — covering voyages between Singapore, Port Klang, Bangkok, Jakarta, and Ho Chi Minh City.

The maritime division exists because Singapore is a major trade hub. It makes the Expert levels genuinely interesting — you're ranking vessels by cargo revenue and analyzing trade finance utilisation rates, not just counting rows.

Technical details

  • Next.js 15 + TypeScript + Tailwind CSS
  • SQLite via WebAssembly — all query execution is client-side, no backend needed
  • Deployed on Vercel
  • Fully open source: github.com/martinl5/sqlwak

No signup. No download. Just SQL.

Open the link and start writing queries: sqlwak.vercel.app

Would love feedback on difficulty progression, new level ideas, or schema additions. What SQL concepts do you wish you'd practiced more before your first data job?

Top comments (1)

Collapse
 
bhavin-allinonetools profile image
Bhavin Sheth

Love the real-world approach here. Practicing SQL through actual business scenarios makes it way easier to understand why a query matters instead of just memorizing syntax.