Case study · Product & full-stack development
MasterSQLPython.com
A free platform where data analysts practice SQL and Python in the browser, with nothing to install and an AI assistant that explains their queries. I designed, built and run it on my own.
- Role: Designer, developer and operator
- Started: January 2026
- Status: Live at mastersqlpython.com
Background
Data analysts learn SQL and pandas fastest by writing queries against real tables and seeing the result straight away. Getting to that point usually means installing a database server or a Python environment, loading sample data and setting up an editor. For a beginner, that setup is often harder than the first query.
I wanted one place where an analyst can open a page, start writing SQL or pandas against preloaded data, and get help when they are stuck, without installing anything.
Impact of the problem
- Setup friction: learners give up on installation before they write their first query.
- No feedback loop: reading a tutorial without running the code doesn't build the skill.
- Stuck without help: when a query fails or returns the wrong rows, beginners often can't tell why.
Solution
Run the code where the learner is. SQLite, pandas and NumPy run inside the browser via WebAssembly, so queries return instantly, work for any number of users, and cost nothing to serve.
- Four editors with sample tables preloaded: SQLite and pandas/NumPy run in the browser; DuckDB runs on the server for analytical SQL.
- AI Explain walks through any query in plain English, and Generate with AI turns a plain-English question into SQL.
- Learning path: visual guides (execution order, joins, CASE, CTEs, window functions), 44 challenges and 5 timed certification tests whose certificates can be verified online.
Tech stack
Architecture
Key challenges
1. Running real code for every visitor without a large server bill
ProblemExecuting every learner's query on a server costs money, adds latency, and needs isolation between users.
ApproachI moved execution into the browser. SQLite runs through sql.js and Python through Pyodide, both compiled to WebAssembly. Each visitor gets a private database and Python runtime, and the server never runs code from these editors. The engines are large downloads, so they load only when needed. The homepage demo, for example, fetches the SQLite engine on the first click of Run.
2. AI help that is fast, cheap and useful for learning
ProblemCalling a large model for every request is slow and costly, and learners need an explanation they can follow, not just a working query.
ApproachAll AI features use a small, low-temperature model (Gemma 3 1B through the Gemini API), which keeps answers fast, consistent and cheap. Prompts are written for each task (explain and generate).
3. Narrowing the product without losing search traffic
ProblemThe first version also offered MySQL, PostgreSQL and SQL Server, each needing its own database server. Removing them risked broken links and lost search rankings.
ApproachI focused on SQLite and DuckDB for SQL and pandas and NumPy for Python. Every retired URL now returns a 301 redirect to the SQLite editor. All pages use clean URLs with canonical tags, and each editor has its own title and description aimed at searches such as "online SQLite editor" and "pandas online editor".
Results
- No install required: SQL and Python practice open in a browser tab, with sample data preloaded.
- Broad content: 4 editors, 15 interactive tutorials, 44 challenges and 5 certification tests.
- Low running cost: SQLite, pandas and NumPy run on the visitor's device, so traffic growth adds almost no server load for those editors.
- Built end to end by one person: product design, front end, back end, AI integration, SEO and deployment.
Demo
The product is live. Try it directly:
Roadmap
-
Completed
Core platform
Editors, AI explain and generate, challenges, certifications and guides.
-
Completed
Focus and SEO
Narrowed to SQLite, DuckDB, pandas and NumPy, with 301 redirects, per-page metadata and a redesigned homepage.
-
Planned
DuckDB in the browser
Move DuckDB to DuckDB-WASM so every editor runs on the visitor's device.
-
Planned
Result-based grading
Grade challenges by running the learner's query and comparing its output with the expected result, instead of checking for keywords.
Reflection
- Start narrower. Supporting five database engines early on meant running and maintaining several database servers. Starting with in-browser SQLite and adding engines only when users asked for them would have saved a lot of work.
- Build measurement in from the start. Clear analytics on which editors, problems and AI features people actually use would have guided priorities better than intuition.
More projects
Process automation, analytics and machine-learning case studies.