Learn machine learning by doing β right in your browser.
An interactive, open-source learning platform for beginners. Adjust parameters, watch algorithms run, and build real intuition β with zero setup required.
Machine Learning 101 is a free, browser-based platform for building intuition about machine learning. Instead of just reading theory, you experiment: tweak a learning rate and watch gradient descent converge, drag points and see a decision boundary move, add clusters and watch K-means settle.
Everything runs client-side β no installs, no sign-up required, no backend needed. Your progress is saved locally in your browser (with optional cloud sync if you sign in).
Zero setup Β· Visual-first Β· Learn by doing Β· Open source
- π― Interactive learning β Real-time parameter adjustments with immediate visual feedback
- π Rich visualizations β Interactive 2D/3D charts powered by Chart.js, D3.js, and Plotly.js
- π§ͺ Hands-on experiments β Train models, tune parameters, and inspect results instantly
- π Guided content β Clear explanations, interactive quizzes, and progress tracking
- π Privacy-focused β Optional, opt-in analytics with full user control and GDPR compliance
- π± Responsive β Works on desktop, tablet, and mobile
- β‘ Zero setup β No installations, no backend dependencies, no barriers to learning
- π Fully static β Deployable to any static host (Netlify, Vercel, GitHub Pages)
- π Optional cloud sync β Sign in to keep progress across devices (Cloudflare Workers + D1)
| Domain | Topics |
|---|---|
| Regression | Linear regression, logistic regression |
| Classification | KNN, decision trees, SVM |
| Clustering | K-means, hierarchical clustering |
| Preprocessing | Feature scaling, encoding, imputation, feature selection |
| Optimization | Gradient descent, momentum, RMSProp, Adam |
| Advanced | PCA, t-SNE, neural networks, CNNs, hyperparameter tuning |
# Clone the repository
git clone https://github.com/marvelefe/machinelearning101.git
cd machinelearning101
# Install dependencies
npm install
# Start the dev server
npm run devOpen http://localhost:3000 π
| Command | Description |
|---|---|
npm run dev |
Start the development server |
npm run build |
Build for production |
npm run preview |
Preview the production build locally |
npm run generate |
Generate the fully static site |
npm run test |
Run unit tests (Vitest) |
npm run type-check |
Run TypeScript type checking |
.
βββ algorithms/ # ML algorithm implementations (extend BaseAlgorithm)
β βββ advanced/ # Neural networks, PCA, t-SNE
β βββ classification/ # KNN, decision trees, SVM
β βββ clustering/ # K-means, hierarchical
β βββ optimization/ # Gradient descent variants
β βββ preprocessing/ # Scaling, encoding, imputation
β βββ regression/ # Linear, logistic regression
βββ components/ # Vue components
β βββ layout/ # Header, footer, navigation
β βββ modules/ # Module-specific UI
β βββ shared/ # Reusable components
β βββ visualizations/ # Chart wrappers
βββ composables/ # Vue composables (reusable logic)
βββ content/ # Learning content (markdown + JSON)
β βββ modules/ # Organized by domain
βββ pages/ # Nuxt pages (auto-routing)
βββ stores/ # Pinia state management
βββ types/ # TypeScript definitions
βββ utils/ # Utility functions
βββ tests/ # Unit tests (Vitest)
βββ worker/ # Optional Cloudflare Worker (auth backend)
βββ service-workers/ # Web Workers (heavy computation)
- Framework: Nuxt 4 (Vue 3 + TypeScript, strict mode)
- State: Pinia with persistence
- Styling: Tailwind CSS
- Visualizations: Chart.js, D3.js, Plotly.js
- Backend (optional): Cloudflare Workers + D1
- Testing: Vitest
- Build: Vite, with static site generation
| Guide | Description |
|---|---|
| User Guide | How to use the platform |
| Developer Guide | Development setup and workflow |
| Module Creation Guide | Add a new learning module |
| State Management | How Pinia stores are organized |
| Quiz Integration | Adding quizzes to modules |
| Bookmark Integration | Bookmarking support |
| Core Web Vitals | Performance notes |
| Deployment Guide | Deploying the site & backend |
| Worker README | Optional auth backend |
Signing in enables cross-device progress sync via Cloudflare Workers + D1 and Google OAuth. This is entirely optional β the site works fully without it. See the Worker README and the Deployment Guide to set it up.
Contributions are warmly welcomed β code, content, docs, design, and bug reports alike! π
- π Read the Contributing Guide to get started
- π Browse good first issues β perfect for newcomers
- π€ Check out help wanted issues for meatier tasks
- π¬ Ask questions in Discussions
- π Report a bug Β· π‘ Request a feature
Please note that this project is released with a Contributor Code of Conduct. By participating you agree to abide by its terms.
Found a vulnerability? Please report it privately β see our Security Policy. Do not open a public issue for security concerns.
This project is licensed under the MIT License β see the LICENSE file for details.
If Machine Learning 101 helped you learn something, consider giving it a star β β it helps others discover the project. And if you'd like to contribute, we'd love to have you!
Made with β€οΈ for learners everywhere.