ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
See inside how things work. One open-source interactive explainer, every day. Play with it, break it, read the code. 157 free explainers so far, from…
EducationJavaScript · CSSGitHub @bdeepsOnlineOwner 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
Glassbox: see inside how things work. One open-source interactive explainer a day, with its history. Hub site, server, studio and publish kit.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
See inside how things work. One open-source, interactive explainer every day: a model you can play with, a minute of plain words, the history of how people figured it out, a short video, and every line of code.
This repository is the hub. It holds the website at glassbox.how, the studio that turns a box into Reels, Shorts, a YouTube video, a carousel and captions, and the publish kit that schedules those through Buffer. Each box lives in its own repository.
The live list is the shelf, built automatically from every public repo in the org tagged glassbox-box.Read the full README ↗This repository is the hub. It holds the website at glassbox.how, the studio that turns a box into Reels, Shorts, a YouTube video, a carousel and captions, and the publish kit that schedules those through Buffer. Each box lives in its own repository.
| Home. Today's box opens from a black box into glass; search anything with /. | Explainer. The question, the 40-second video, six plain-language beats, key terms, the code. |
| History. Every box's past as a visual story: eras, a timeline of moments, charts, people, places and sources. | Concepts A–Z. Every term across every box, each linked to where you can see it working. |
| No. | Question | Play | Code |
|---|---|---|---|
| 001 | How does a camera actually see? | glassbox.how/cameraclear | glassboxhow/cameraclear |
The live list is the shelf, built automatically from every public repo in the org tagged glassbox-box.
github.com/glassboxhow glassbox.how
├─ glassboxhow.github.io (this repo) ──► / home: today's box, the shelf, calendar
│ GitHub Actions builds it from ──► /e/<slug>/ explainer page for each box
│ every box's glassbox.json ──► /concepts/ every term, A to Z
│ and history.json ──► /e/<slug>/history/ that box's history, told visually
│ ──► /history/ every history on one timeline
│ ──► /privacy/ /terms/
│ ──► /studio/ recording + publish kit
├─ cameraclear (No. 001) ──► /cameraclear/ the box itself
│ glassbox.json the manifest /cameraclear/glassbox/reel.mp4, slides, thumbnail…
│ history.json its history
│ glassbox/ studio output
└─ <tomorrow's box> (No. 002) ──► /<slug>/
glassboxhow/cameraclear appears at glassbox.how/cameraclear/ with no proxy and no bill.glassbox-box with a glassbox.json joins the shelf. The build runs every two hours, on every push, or straight away when a box's notify-hub workflow pings it.glassbox/ folder, which keeps every repo far below GitHub's size limits. It also gives Buffer the public media URLs it needs./assets/analytics.js, and nothing else is allowed. Fonts and libraries are self-hosted, and every page's Content Security Policy only permits our domain and those two services. There is no database and no account system. See Privacy.npm run new -- <slug> "How does X work?" --field physics # scaffold ../<slug> as the next box
npm run dev # http://localhost:5210
../<slug>/app.js, fill in glassbox.json, and write the storyboard (window.glassbox.director). The contract is in docs/CONTRACT.md.../<slug>/history.json: eras, 20–50 sourced moments, people, a number series or two. The guide is in docs/HISTORY.md.http://localhost:5210/studio/?box=<slug>. You get a 16:9 video, a 9:16 Reel/Short, 10 carousel slides, a thumbnail, a share card and a clean still. It encodes in the browser (WebCodecs), faster than real time, with a generated soundtrack.
Record history makes a “history in 10 moments” Reel/Short and carousel from history.json.glassbox/, pushes it, waits for Pages to serve the files, then schedules every post in Buffer.scripts/github-setup.sh <slug> creates the public repo and fills in its description, homepage, topics, README, licences and Pages.| Target | Asset | Copy |
|---|---|---|
| Instagram Reel | reel.mp4 (1080×1920) | Instagram caption |
| Instagram carousel (+4 h) | slide-1…10.jpg (1080×1350) | carousel caption |
| YouTube Short | reel.mp4 | Short title and description |
| YouTube video | video.mp4 (1920×1080) | long title and description |
| LinkedIn, X | video.mp4 | LinkedIn / X copy |
| Threads, TikTok | reel.mp4 | LinkedIn copy |
| Instagram / YouTube history (off by default) | history-reel.mp4, history-slide-*.jpg | history captions |
A target is skipped when no matching channel is connected in Buffer. Change the list in glassbox.config.json.
| Command | What it does |
|---|---|
npm run dev | Hub, every local box and the studio at :5210, laid out exactly like production |
npm run new -- <slug> "<question>" --field <f> | Scaffold the next box from templates/box |
npm run check | Validate local boxes: manifest, licences, CSP, no third-party requests, file sizes |
npm run readme -- <slug> | Regenerate a box's README header, LICENSE-CONTENT.md and package.json metadata |
npm run build | Static build to dist/ from local boxes (build:github reads the org) |
npm run post -- <slug> [--dry|--queue|--now] | Schedule a box in Buffer |
npm run post -- --channels | List connected Buffer channels |
scripts/github-setup.sh hub|<slug> | Create or refresh the public repos, Pages, topics and metadata |
One-time setup (domain, org, Buffer): docs/SETUP.md.
| Path | What |
|---|---|
site/ | Static assets: styles, search and cube script, bar.js (the pill inside every box), fonts, the studio |
scripts/lib/render.mjs | Home, explainer, concepts, feed and sitemap pages |
scripts/lib/history.mjs | Box history pages, the combined /history/ timeline and the history search index |
site/assets/art.js | Line-art illustrations for history moments, shared by the site and the studio |
scripts/lib/legal.mjs | The privacy policy and terms (kept in sync with how the site actually works) |
scripts/lib/buffer.mjs | Buffer GraphQL client: builds and schedules posts |
scripts/dev.mjs | Local server mirroring production, plus the studio's save/ship endpoints (localhost only) |
templates/box/ | The starter every new box is made from |
.github/workflows/ | pages.yml builds and deploys the hub; post.yml posts a box from GitHub |
Found a mistake in an explainer, or want a box about something? See CONTRIBUTING.md, or suggest a box. Security issues: SECURITY.md.