A complete Python course that runs entirely in your browser — from your first print() to advanced patterns. Sign in with Google and your progress syncs across every device.
https://learn-python-385cc.firebaseapp.com
- Interactive Python runner — every code block has a ▶ Run button. Real Python 3 executes in your browser via Skulpt. No install, no setup, no backend.
- 14 modules, 46 lessons — a structured path from "what is a variable?" to decorators, generators, and OOP.
- Google sign-in + cloud progress sync — sign in once and your completed lessons follow you across phone, tablet, and laptop. Powered by Firebase Authentication and Firestore.
- Works without an account — progress saves to
localStorageif you don't sign in. Sign in later and it merges to the cloud. - Syntax-highlighted code — every snippet styled with highlight.js.
- No build step — just static HTML, CSS, and JavaScript.
- Getting Started — what Python is, how to run it, your first program
- Variables & Data Types — numbers, strings, booleans, None, type conversion
- Operators — comparison, logical, and assignment operators
- Strings In Depth — indexing, slicing, string methods, f-strings
- Control Flow — if/elif/else and match/case
- Loops — while, for, range, break and continue
- Functions — definitions, arguments, return values, scope, lambdas
- Data Structures — lists, tuples, dictionaries, sets
- Comprehensions — list, dict, and set comprehensions
- Error Handling — try/except, raising errors, custom exceptions
- File I/O — reading and writing files
- Object-Oriented Programming — classes, inheritance, dunders
- Modules & Packages — imports, the standard library, pip basics
- Advanced Python — decorators, generators, context managers
- Skulpt — Python 3 interpreter compiled to JavaScript. Powers the in-browser code runner.
- Firebase Authentication — Google sign-in via OAuth.
- Cloud Firestore — per-user progress storage.
- Firebase Hosting — serves the static site at
learn-python-385cc.firebaseapp.com. - highlight.js — syntax highlighting for code blocks.
- Vanilla HTML, CSS, and JavaScript — no framework, no bundler.
It's static — no install required. The cloud sync features won't work locally (they need the registered OAuth domain), but the course content and Python runner do:
# Just open the file
open index.html
# Or serve over HTTP
python3 -m http.server 8000
# then visit http://localhost:8000If you want to fork this and host your own version with cloud sync, you'll need a Firebase project:
-
Create a project at console.firebase.google.com
-
Enable Authentication → Google sign-in
-
Create a Firestore database (test mode is fine to start)
-
Copy your project's web config into
app.js(thefirebaseConfigobject) -
Deploy with the Firebase CLI:
npm install -g firebase-tools firebase login firebase deploy --project YOUR_PROJECT_ID
The firebase.json, .firebaserc, and firestore.rules in this repo are ready to use — just point them at your project.
.
├── index.html # shell — sidebar, main pane, script tags
├── style.css # all styling
├── app.js # routing, Skulpt runner, Firebase auth, progress sync
├── curriculum.js # every lesson — content, code samples, key points
├── firebase.json # Firebase Hosting + Firestore config
├── firestore.rules # security rules — users can only read/write their own doc
├── .firebaserc # which Firebase project to deploy to
└── screenshots/ # README images
Lesson content lives in curriculum.js as a single array. Each module has lessons; each lesson has HTML content and an optional tryCode sandbox.
Built with Skulpt, Firebase, and highlight.js.

