ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
See your Java code run, one line at a time. A free visualizer for Coding 101.
EducationTypeScript · JavaGitHub @huzaifaanjumOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
See Java code run, one line at a time. A free, open tool that helps Coding 101 students understand what the computer does: variables changing, methods being called, arrays living in memory, input being read.
Paste code, add input, press Visualize, then step through it or let it play.Read the full README ↗See Java code run, one line at a time. A free, open tool that helps Coding 101 students understand what the computer does: variables changing, methods being called, arrays living in memory, input being read.
Paste code, add input, press Visualize, then step through it or let it play.
ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap, LinkedHashMap, ArrayDeque, Stack, PriorityQueue, List.of/Map.of and more, shown as lists, sets and key → value tables. Added elements glow, replaced values show what they were, removed elements linger for a step.src/server/explanation/master-prompt.ts.Next.js 16 (App Router) · TypeScript · Tailwind CSS 4 · shadcn/ui (Radix) · Monaco · React Flow · MongoDB Atlas · Auth.js · Vercel + Vercel Sandbox · Zod · Vitest · Playwright.
flowchart LR
subgraph Browser["Browser"]
UI["Workspace<br/>Monaco editor · stdin"]
VIZ["Visualizer<br/>memory · call tree · flow · console"]
end
subgraph Server["Next.js on Vercel"]
API["/api/runs"]
RS["RunService<br/>Zod · static checks · rate limit"]
end
subgraph SBX["Vercel Sandbox microVM"]
TR["javac -g → JDI tracer"]
end
DB[("MongoDB Atlas")]
UI -- "code + stdin" --> API --> RS -- "ExecutionProvider" --> TR
TR -- "JSON trace" --> RS -- "validated Trace" --> VIZ
RS --> DB
User code never runs on the web server: each run gets a throwaway microVM with no network. The browser receives one validated JSON trace and does all playback, notes and drawing locally, so stepping back and scrubbing are instant.
docs/ARCHITECTURE.md has the detailed diagrams: code layers, the full request sequence, the tracer internals, the client rendering pipeline, execution providers, the data model, sharing and security boundaries.
| Path | What lives there |
|---|---|
src/app | Routes only: pages and thin route handlers |
src/features/* | UI slices (workspace, editor, visualizer, snippets, examples, auth, theme), imported through index.ts |
src/components | shadcn/ui primitives and shared pieces (header, split handle, zoom controls) |
src/languages/* | One LanguageAdapter per language; register in registry.ts |
src/server | Server-only: composition root, services, execution providers, repositories, security |
src/shared | Isomorphic contracts: constants, Zod schemas for trace, API and examples |
tracer/ | Java JDI tracer, built with plain javac |
content/examples | Curated example programs |
docs/ | Product spec and architecture |
Requirements: Node 22+, Yarn 4 (corepack enable), JDK 21.
yarn install
yarn tracer:build # builds tracer/build/tracer.jar
cp .env.example .env.local # everything is optional for local dev
yarn dev
Without MONGODB_URI the app still works: examples come from /content/examples, sharing and sign-in are hidden, rate limits are kept in memory. Without ELEVENLABS_API_KEY the narration buttons are hidden; without GROQ_API_KEY narration reads the built-in step notes instead of AI explanations. In development, code runs through the local provider (the tracer jar on your machine). It is refused in production.
MONGODB_URI.AUTH_SECRET, IP_HASH_SALT (and optionally GitHub/Google OAuth credentials, with callback URL https://<your-domain>/api/auth/callback/<provider>).yarn db:setup and yarn db:seed once against the database.
Optionally set ELEVENLABS_API_KEY (and ELEVENLABS_VOICE_ID / ELEVENLABS_MODEL_ID) to turn on voice narration.yarn sandbox:snapshot.| Script | What it does |
|---|---|
yarn check | Lint, typecheck, unit tests |
yarn test:e2e | Playwright tests (desktop + mobile) |
yarn tracer:test | Runs the Java tracer against tracer/src/test/programs |
yarn db:setup / yarn db:seed | Create indexes / load examples |
yarn sandbox:snapshot | Build the JDK + tracer sandbox snapshot |
User code only runs inside throwaway microVMs with no network access, an 8 s tracing budget, 128 MB heap and 1,000-step cap. The API validates every input with Zod, rejects cross-origin writes, caps request sizes, rate-limits by hashed IP, sends a strict CSP and security headers, and never stores raw IPs. See CLAUDE.md for coding rules.
Implement LanguageAdapter in src/languages/<lang>/, register it in src/languages/registry.ts, add a tracer that emits the Trace schema (src/shared/trace/schema.ts), and include it in the sandbox runtime.
MIT