About Little Programmer
Little Programmer is a completely free, ad-free, no-in-app-purchases, no-signup coding-for-kids platform built for kids 6–12. Open it in any browser and start typing — desktop, tablet, and phone all work.
There are three tracks today: ⌨️ Typing Basics · 13 levels 🐍 Python for Beginners · 12 levels ⚡ C++ for Beginners · 7 levels Each level comes with a 4-step micro-lesson (concept → example → you try it → predict the output), then a real code or typing challenge that earns 1–3 stars. More stars, more points.
Why this exists
Most "coding for kids" sites are written for English-speaking children: English UI, English instructions, English code examples. For a kid who is still learning to read English — or whose first language isn't English at all — that wall is real.
Little Programmer wants a 6-year-old to write their first line of code —
print("Hello, world!") — and see Hello, world! appear on
the screen in under five minutes. The Chinese version of the site
goes one step further: the very first line is print("你好,世界!") —
the kid's own language. Either way, the goal is the same: the smallest possible
distance between "I want to try" and "I just made the computer do a thing."
Design principles
- Code in the kid's own language. The first lesson prints "你好,世界!" or "Hello, world!" — whatever the kid reads.
- Tiny steps, immediate feedback. 4-step micro-lesson + 1 challenge. Clear the challenge, get stars and confetti.
- Companion, not just a tool. Raise a little pet (default name "小码" / "Codey"). Every star turns into pet XP.
- No progress loss on close. All progress, points, badges, and pet state live in the browser. No accounts, no logins.
- Parents don't have to figure anything out. Open the URL and start. No activation codes, no class codes, no premium tier.
Tech stack
For the curious grown-ups:
- Frontend: Vite 6 + React 18 + TypeScript 5, BrowserRouter (SEO-friendly)
- Styling: Tailwind 3, custom candy palette (pink / orange / yellow / green / blue / purple)
- Code editor: CodeMirror 6 (for the Python and C++ tracks)
- Python runtime: Pyodide 0.27 (runs Python in the browser, no server needed)
- State: Zustand 5 (no persist middleware — saves are managed explicitly so the user always knows what is saved and when)
- Local progress persistence: zero-dependency Node http server (dev); browser localStorage + Cloudflare Workers KV (prod)
- SEO: react-helmet-async + JSON-LD (FAQPage + Course + SoftwareApplication + WebSite + AboutPage)
- Deployment: Cloudflare Pages (Git-connected auto-deploy) + Pages Functions (SPA fallback + /api routes)
Privacy & data
No signup. No email. No phone number. The kid's progress, points, badges, and pet all live in their own browser (local storage), so closing the tab or switching devices on the same browser keeps everything.
For site traffic analytics, this site uses Baidu Tongji — a first-party analytics tool. It collects anonymous visit data (IP address, browser type, referrer, page path) for traffic analysis. It does not collect names, emails, or home addresses. Baidu stores this data per their privacy policy. Parents can clear the related cookies in the browser at any time.
Parents can wipe the kid's learning data at any time from the Profile page (the "Reset all progress" button at the bottom of the page).
Funding
The site is currently run entirely by an individual — no commercialisation at all. Server costs come out of pocket. Cloudflare's free tier comfortably covers the current traffic. If we ever need to scale (more server resources / CDN / storage), a fully optional "Sponsor" button might appear — but there's no need for it today.
Roadmap
- 📝 Done: Typing (13 levels) / Python (12 levels) / C++ (7 levels) — three learning tracks
- 🚧 Planned: Scratch-style visual programming (Blockly)
- 🚧 Planned: JavaScript intro
- 🚧 Planned: Multi-device sync (Cloudflare KV or D1, so a kid can continue on another device)
- 💡 Idea: Parent report (so parents can see what the kid improved this week)
- 💡 Idea: Multi-player levels (two kids solve together)
Contributing & feedback
This is a personal project, open-sourced on GitHub. Parents, teachers, and kids are welcome to leave feedback on the Profile page or open an Issue in the repo. Especially welcome:
- Level content errors (code that doesn't run, unclear instructions, ambiguous answers)
- Age-appropriateness suggestions (a level too hard for 8, too easy for 12)
- New level ideas (if you're a teacher / parent, what specific concept do you want the kid to learn?)
- Accessibility / translation / browser-compatibility feedback
FAQ
What ages is this for?
Recommended 6–12. The Typing track starts from zero (no prior experience needed). Python is best for 8+ who can read simple English. C++ is best for 10+ who can read simple Chinese characters and basic English words.
Do I need to install an app?
No. Just open babycode.online in a browser.
Is it really free?
Completely free. No in-app purchases, no ads, no paywall.
Does it work on phones / tablets?
Yes. Python and C++ have a mobile-friendly code keyboard — slightly simplified from the desktop experience but fully usable. Typing works great on every device.
🚀 Open Little Programmer