ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Learn with courses and search that jumps to the exact moment.
EducationTypeScript · ShellGitHub @yeldynovOnlineOwner 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
Video learning platform with AI search that opens the lesson video at the exact second a topic is taught. Next.js 16, Sanity, Gemini, Clerk.
Taken from the repository README
Loading the full README.
Read the full README ↗Search your learning in plain English. Vertex is a video learning platform. You type a question like "where did they explain caching?" and get a ranked list of results. Each result opens the lesson video at the exact second the topic comes up.
Live demo → vertex-delta-orpin.vercel.app · try searching for "caching" or "server components"
| Home | Lesson | Mobile |
|---|---|---|
| Area | Tools |
|---|---|
| Web app | Next.js 16 (App Router, React Server Components), React 19, TypeScript, Tailwind CSS v4 |
| Content | Sanity (separate Studio, private dataset, GROQ, Portable Text, TypeGen) |
| AI search | Vercel AI SDK 7, Google Gemini, Sanity Context MCP |
| Auth | Clerk (route protection in middleware) |
| Analytics | PostHog (product events and server logs over OpenTelemetry) |
| Validation | Zod |
| Hosting | Vercel |
browser ──GET /api/search?q=──▶ Next.js route (server only)
│
├─ 1. split the query into keywords, drop stop words
├─ 2. two GROQ queries through the Sanity Context MCP
│ • lessons: title (boosted ×3), notes, key points
│ • videos: chapters first, transcript chunks only as a fallback
├─ 3. Gemini ranks the matches and returns {lessonId, second}[]
├─ 4. each result is checked against Sanity as it arrives
└─ 5. result cards stream back as NDJSON ──▶ results page
Design decisions worth calling out:
lib/search.ts rejects a result unless the lesson belongs to a course and the claimed second matches a real chapter or chunk. Labels such as "Lesson 3.2" are worked out from the module order, never stored..
├── app/ Next.js routes: home, catalog, course, lesson, search, /api/search
├── components/ UI components (cards, groove bar, header, search results)
├── lib/ Pure logic with tests: search grounding, labels, video embeds, pagination
├── sanity/ Server-only Sanity client, GROQ queries
├── proxy.ts Clerk middleware (browsing stays public)
└── studio/ Standalone Sanity Studio
├── schemaTypes/ course, module, lesson, instructor, category, video
└── scripts/
├── ingest/ Offline caption/chapter ingestion (YouTube, Vimeo, Bunny)
├── seed/ Seed dataset (10 courses, 120 lessons)
└── context/ Search config document for the Context MCP
Security rules the code follows:
[a-z0-9] keywords before it reaches any query.youtube-nocookie.com for YouTube.You need Node 24, a Sanity project, a Clerk app, a Gemini API key, and a PostHog project.
# web app
npm install
cp .env.example .env.local # fill in the keys; .env.example lists every one
npm run dev # http://localhost:3000
# studio (separate terminal)
cd studio
npm install
npx sanity dataset import scripts/seed/seed.ndjson production
npm run deploy && npm run schema:deploy # the Context MCP needs a deployed Studio
npm run ingest # build chapter/transcript docs for every lesson video
npx tsc --noEmit
npm run lint
node --test lib/*.test.ts # web unit tests
node --test studio/scripts/ingest/parse.test.ts # caption parser tests
npm run build
Done: content model, Clerk auth, catalog, course and lesson pages, video ingestion, AI search, PostHog analytics, and the "Listening Room" redesign (see DESIGN.md).
Next: instructor pages, My Learning, and progress tracking (resume position and completed lessons, written through a server route).
Every feature started as a written spec in prompts/ covering the goal, decisions, security notes, acceptance criteria and manual test steps. It then shipped as its own pull request. AGENTS.md holds the architecture rules the whole codebase follows.