What if anyone in the world could learn AI — for free, in their own language?
That question kept nagging me.
I'm an engineering leader who's spent years building systems at scale. But when I looked at the AI education landscape, I saw the same pattern repeating: great content locked behind paywalls, taught exclusively in English, and assuming you already have a CS degree.
My mother speaks Telugu. My colleague's parents speak Hindi. A friend in Brussels works in Dutch. None of them could find a single, structured AI course in their own language that didn't cost hundreds of dollars.
So I built one.
AI Educademy is a free, open-source platform that teaches AI from absolute zero to production mastery — in 5 languages, with 10 progressive programs, powered by a modern Next.js stack.
🔗 Live: aieducademy.vercel.app
⭐ GitHub: github.com/ai-educademy/ai-platform
The Problem Nobody's Solving
Here's what I found when I surveyed AI education:
- Fragmented — YouTube playlists, random blog posts, half-finished Udemy courses. No coherent path from "What is AI?" to "Deploy an ML pipeline."
- English-only — 75% of the world doesn't speak English as a first language. If you're a curious teenager in Hyderabad or a career-changer in Lyon, your options are... limited.
- Paywalled — The best structured courses cost $50–$500. That's a month's salary in some countries.
- Assumes prerequisites — Most courses start with "Let's import TensorFlow" before explaining what a neural network actually is.
AI is going to reshape every industry. The people building it — and the people affected by it — shouldn't need a credit card and fluent English to understand it.
The Solution: AI Educademy 🌱→🌲
AI Educademy uses a nature growth metaphor. You start as a seed and grow into a forest:
🌱 AI Seeds → "What is AI?" (no code, no maths)
🌿 AI Sprouts → Foundations (data, algorithms, neural nets)
🌳 AI Branches → Specialisations (ML, CV, NLP, GenAI)
🏕️ AI Canopy → Production AI (MLOps, RAG, governance)
🌲 AI Forest → Mastery (research, leadership, frontier AI)
Plus a parallel craft-engineering track for building real AI products:
✏️ AI Sketch → Design thinking for AI products
🪨 AI Chisel → Engineering fundamentals
⚒️ AI Craft → Building real AI systems
💎 AI Polish → Production-grade refinement
🏆 AI Masterpiece → Capstone portfolio projects
10 programs. 2 tracks. 5 languages. 150+ MDX lessons. All free. All open source.
Every lesson is available in English 🇬🇧, French 🇫🇷, Dutch 🇳🇱, Hindi 🇮🇳, and Telugu 🇮🇳 — with a content fallback chain so missing translations gracefully degrade to English.
Architecture Deep Dive 🏗️
This is the part you're here for. Let me walk through the key technical decisions.
Next.js App Router + next-intl
The platform runs on Next.js with the App Router. Every route is locale-aware via next-intl:
src/app/[locale]/
├── page.tsx # Homepage
├── programs/[programSlug]/
│ └── lessons/[slug]/page.tsx # Lesson viewer
├── dashboard/page.tsx # Progress tracking
├── playground/page.tsx # AI games
└── about/page.tsx
The [locale] segment is handled by next-intl middleware, which detects the browser language, matches it against supported locales (en, fr, nl, hi, te), and routes accordingly. A LanguageSwitcher component lets users override at any time.
MDX Content System
Each lesson is an MDX file with rich frontmatter:
---
title: "What is AI? A Friendly Introduction"
description: "No jargon, no maths — just a simple explanation..."
order: 1
difficulty: "beginner"
duration: 10
icon: "🤖"
published: true
---
## Welcome! 👋
If you've ever heard people talk about "AI" and thought
_"What even is that?"_ — you're in exactly the right place.
<Illustration
src="/images/lessons/what-is-ai.svg"
alt="Traditional software follows rules. AI learns patterns."
caption="The core difference: rules vs learning"
/>
MDX gives us the best of both worlds: authors write in Markdown (low barrier), but we can embed React components like <Illustration>, <Quiz>, and <CodePlayground> directly in lesson content.
We use next-mdx-remote for rendering and gray-matter for frontmatter parsing at build time.
The Content Fallback Chain
This was a key design decision. Not every lesson has been translated into all 5 languages yet. So the content loader implements a fallback:
// Simplified from src/lib/lessons.ts
export function getLesson(program: string, slug: string, locale: string) {
const localePath = `content/programs/${program}/lessons/${locale}/${slug}.mdx`;
const enPath = `content/programs/${program}/lessons/en/${slug}.mdx`;
// Try locale-specific first, fall back to English
const filePath = fs.existsSync(localePath) ? localePath : enPath;
const raw = fs.readFileSync(filePath, "utf-8");
const { data, content } = matter(raw);
return { meta: data, content };
}
This means contributors can translate one lesson at a time without breaking anything. The platform always works — it just gracefully degrades to English for untranslated content.
Git Submodules: The Secret Sauce
Here's what makes the architecture scale. Each of the 10 programs is its own GitHub repo, pulled into the platform via git submodules:
ai-platform/content/programs/
├── ai-seeds/ ← github.com/ai-educademy/ai-courses
├── ai-sprouts/ ← github.com/ai-educademy/ai-courses
├── ai-branches/ ← github.com/ai-educademy/ai-courses
├── ai-sketch/ ← github.com/ai-educademy/ai-courses
├── ai-chisel/ ← github.com/ai-educademy/ai-courses
├── ai-craft/ ← github.com/ai-educademy/ai-courses
├── ai-polish/ ← github.com/ai-educademy/ai-courses
├── ai-canopy/ ← github.com/ai-educademy/ai-courses
├── ai-forest/ ← github.com/ai-educademy/ai-courses
└── ai-masterpiece/ ← github.com/ai-educademy/ai-courses
Why submodules over a monorepo?
-
Independent versioning — Content authors can work on
ai-seedswithout touching platform code. - Separate permissions — Translators get write access to content repos only.
-
Auto-deploy — Each content repo has a GitHub Action that fires
repository_dispatchto the platform repo, triggering a Vercel rebuild. Content changes go live in ~60 seconds. -
Clean separation — The platform is the shell; content is pluggable. Want to add a new program? Create a repo, add a submodule, register it in
programs.json. Done.
Shared Design System
All UI components come from @ai-educademy/ai-ui-lib — a separate npm package with its own Storybook. The platform consumes it; the content repos don't need to know about it. Consistent design across everything.
PWA + Offline Support
The platform is a Progressive Web App powered by Serwist (a modern Workbox wrapper for Next.js). Users in areas with spotty internet can install it and access cached lessons offline. For an education platform targeting global learners, this isn't a nice-to-have — it's essential.
CI/CD Pipeline
Push to main (or content repo dispatch)
↓
GitHub Actions CI
├── ESLint (strict TypeScript)
├── Next.js production build
└── Playwright e2e tests (multi-browser)
↓
Vercel auto-deploy → aieducademy.vercel.app
The Content Architecture
Here's how 150+ MDX files are organized across 10 programs × 5 locales:
content/programs/
└── ai-seeds/ # Each program = one git repo
├── lessons/
│ ├── en/ # English (canonical source)
│ │ ├── what-is-ai.mdx
│ │ ├── how-machines-learn.mdx
│ │ └── your-first-ai-model.mdx
│ ├── fr/ # 🇫🇷 French translations
│ │ ├── what-is-ai.mdx
│ │ ├── how-machines-learn.mdx
│ │ └── your-first-ai-model.mdx
│ ├── nl/ # 🇳🇱 Dutch
│ ├── hi/ # 🇮🇳 Hindi
│ └── te/ # 🇮🇳 Telugu
├── assets/ # Illustrations, diagrams
└── program.json # Program metadata
The slug-based naming (what-is-ai.mdx) means the same slug resolves across all locales. The platform's programs.json registry ties everything together:
{
"programs": [
{ "slug": "ai-seeds", "level": 1, "icon": "🌱", "track": "ai-learning" },
{ "slug": "ai-sprouts", "level": 2, "icon": "🌿", "track": "ai-learning" },
{ "slug": "ai-sketch", "level": 1, "icon": "✏️", "track": "craft-engineering" }
]
}
Adding a new program to the platform is literally: add one JSON entry, add one git submodule. The routing, i18n, and lesson rendering all work automatically.
Cool Features ✨
🎮 AI Playground — An interactive drawing recogniser where you sketch objects and a pre-trained model guesses what you drew. It's the "Hello World" of experiencing AI firsthand — no installation, no setup, just draw.
📊 Dashboard — Track progress across all programs. Completion percentages, learning streaks, and certificates for finished programs.
🌙 Dark / Light Mode — System preference detection with a manual toggle. Because we're developers and dark mode is non-negotiable.
🔐 Auth + Guest Mode — GitHub OAuth via NextAuth.js for persistent profiles, but you can also learn as a guest with localStorage-based progress. Zero friction to start.
🎨 Smooth Animations — Framer Motion powers page transitions and micro-interactions throughout the platform. It feels good to use.
Tech Decisions & Trade-offs
Every architecture has trade-offs. Here are mine, honestly:
MDX over a CMS
Why: Content lives in git. Version control, PR-based reviews, no vendor lock-in, and contributors use their existing GitHub workflow.
Trade-off: No WYSIWYG editor. For a developer-oriented open-source project, that's actually a feature, not a bug.
Git submodules over a monorepo
Why: Content and code have different lifecycles, different contributors, and different release cadences.
Trade-off: Submodules have a learning curve. git clone --recurse-submodules isn't intuitive for newcomers. But for independently versioned content plugged into a shell — they're the right tool.
localStorage for the MVP
Why: Zero backend. No database to manage, no server costs, no GDPR headaches. Users start learning in 2 seconds without signing up.
Trade-off: Progress doesn't sync across devices. That's the first thing I'll upgrade — likely with a lightweight backend or edge-based storage.
Vercel for deployment
Why: Generous free tier, edge functions work great with next-intl, and git-push-to-deploy is frictionless.
Trade-off: Vendor dependency. But the app is standard Next.js — porting to Docker or any Node.js host would take an afternoon.
What I Learned 📝
i18n is hard. Multilingual content is really hard. The routing and message files were straightforward with
next-intl. The hard part is creating quality translations at scale — culturally appropriate, not just machine-translated.Content architecture matters more than code architecture. I spent more time designing the MDX structure, frontmatter schema, and fallback chain than the React components. Get the content system right, and everything else follows.
Git submodules have a bad reputation they partly deserve. But for this specific use case — pluggable content repositories with independent CI — they're genuinely the best tool.
PWA support in Next.js has matured beautifully. Serwist made offline support almost trivial. For education platforms targeting users with unreliable internet, this is a game-changer.
Open source is a multiplier. Within weeks, I had contributors offering translations in languages I hadn't even considered. The community effect is real — and humbling.
How You Can Help ⭐
If you've read this far, you probably care about making tech education accessible. Here's how to get involved:
🌍 Contribute a translation
Every lesson translated is another person who can learn AI in their language. Even one lesson helps. The MDX format is just Markdown — you don't need to be a developer.
⭐ Star the repo
Stars drive discoverability on GitHub. More stars → more contributors → more languages → more learners.
📢 Share it
Know someone learning AI? Someone who teaches? Someone who speaks French, Dutch, Hindi, or Telugu? Send them the link.
🛠️ Contribute code
The platform is Next.js + TypeScript + Tailwind. The design system has a Storybook. If you can build React components, you can improve AI Educademy.
🔗 Links:
| 🚀 Live platform | aieducademy.vercel.app |
| ⭐ GitHub | github.com/ai-educademy/ai-platform |
| 🎨 Storybook | ai-educademy.github.io/ai-ui-lib |
| 📦 npm | @ai-educademy/ai-ui-lib |
AI education shouldn't be a privilege. Let's make it a right.
Built with ❤️ by Ramesh Reddy Adutla — engineering leader, open-source advocate, and believer in education without borders.
Top comments (0)