ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Vibe learn anything: your AI agent turns an article, doc, or code into a short interactive lesson with a shareable link.
EducationTypeScript · JavaScriptGitHub @learn-ninjaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Vibe learn anything with your agent.
Give your AI agent an article, notes, docs, a transcript, or code. It writes one short, interactive lesson and gives you a link to share. Free, no account.
Website · Docs · Try a lesson · Contributing
Install the skill in your agent (Claude Code, Codex, Cursor, Gemini CLI, and more):
npx skills add https://learn.ninja -g
Then ask it for a lesson from anything: "Make me a lesson from this article", "Teach my team how our deploy works", "Quiz me on chapter 3". The agent writes the lesson, checks it, and publishes it to a link that plays in any browser.
Chat apps (Claude, ChatGPT) connect to the MCP server at https://learn.ninja/mcp instead. The docs cover both.
A lesson is made of katas, one per screen, Duolingo- or Brilliant-style: concept katas teach, and question katas (choice, compare, hotspot, sort, order, match, blank, scenario) check what stuck, with instant feedback and hints from the ninja. Lessons are written in any language, right-to-left included, and play on phones.
Try the example lessons (their files are in examples/):
This repository is the whole thing: the website, the lesson player, the lesson format, the learn command, and the skill agents install.
You need Node 24 (see .nvmrc) and npm. Nothing else: no database, no accounts, no keys.
npm install
npm run dev
The web app runs at http://localhost:3000: the home page, the docs at /docs, and the test lessons at /lessons/{slug}. Lessons you publish locally are kept in PGlite (Postgres in WebAssembly) under apps/web/.data/pglite, rate limits are counted in memory, and sign-in codes and feedback are printed to the server console. .env.example lists the variables a hosted deployment uses; none of them are needed here.
To publish to your local server from an agent, set LEARN_API_URL=http://localhost:3000 before running the skill.
| Command | What it does |
|---|---|
npm run dev | Start the web app (webpack) |
npm run check | Lint, type-check, and tests across every package. Run it after every change; CI runs it too, plus a production build |
npm run build | Production build |
npm run storybook | Storybook at http://localhost:6006, with every kata type in every state |
npm run skill:build -w @workspace/cli | Rebuild skills/learn (bundled CLI, schema, examples) after changing the spec, the CLI, or the examples |
npm run schema -w @workspace/spec | Re-export packages/spec/schema/lesson.schema.json after changing the spec |
npm run map -w @workspace/player | Rebuild the map visual's country shapes from Natural Earth |
npm run bento -w web | Redraw the home page's lesson visuals after changing apps/web/lib/bento-visuals.ts |
npm run favicon -w web | Rebuild the favicon from apps/web/app/icon.svg |
npm run share -w web | Re-render the share images in brand/ |
A test fails when a generated file is stale, so npm run check tells you which of these to run.
| Path | What it is |
|---|---|
apps/web | Next.js app: home page, docs, lesson player pages, publish API, MCP server |
apps/storybook | Storybook for the player and UI components |
docs/ | The docs pages, as Markdown and MDX |
packages/spec | The lesson format: Zod schema, JSON Schema, and the checker's rules |
packages/player | The lesson screens and every kata |
packages/ui | shadcn/ui components on React Aria, shared styles |
packages/db | The Postgres schema (Drizzle) and its migrations |
packages/cli | The learn command: sync, validate, and publish lessons |
skills/learn | The installable lesson skill and its teaching guide |
examples/ | Test lessons, used as fixtures |
learn.ninja is built by a few people, so help goes a long way. These are the places we'd most like it:
New to the code? Pick one of the good first issues. Changes to the lesson format, new kata types, agent round trips, and the ninja's voice start as an Idea issue. CONTRIBUTING.md has the details, the conventions, and how review works; agent-written pull requests are welcome too.
Found a security issue? See SECURITY.md. Everyone taking part follows the Code of Conduct.
The code is Apache-2.0. The example lessons in examples/ and the docs in docs/ are CC-BY-4.0. The learn.ninja name, the logo, the files in brand/, and the ninja character are trademarks of Uxcel Inc; see TRADEMARK.md for what forks may and may not do with them.