ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Your textbook, but it's reels. Voiceover, captions and a quiz in every one.
EducationTypeScript · HTMLGitHub @edwardwaldmanOnlineOwner 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 ↗Drop a doc. Unspool it. — unspool.cc
Drag in any document (class notes, a textbook chapter, a work PDF, a contract) and Unspool turns it into 10 short, swipeable, Instagram-style reels with hooks, voiceover, animated visuals and a quick quiz.
Stack: Next.js 16 (App Router) + TypeScript + Tailwind v4 + Motion, Supabase (Auth, Postgres, Storage), Vercel (hosting, background functions, cron), Stripe (Checkout, Portal, webhooks), Claude (plan + scripts + OCR), OpenAI TTS or ElevenLabs (voiceover).
Try the viewer with no backend at all: npm run dev → http://localhost:3000/s/demo.
upload (browser → Supabase Storage via signed URL)
└─ POST /api/documents/:id/start
└─ job: process (own function invocation)
extract text (unpdf / mammoth / pptx XML; Claude vision OCR for scans & photos)
plan 10 reels with Claude → reels rows (titles + hooks = free preview)
└─ job: reel 1 (script with Claude → TTS per segment → Storage)
└─ jobs: reels 2–10 in parallel (reuse the warm prompt cache)
browser polls GET /api/documents/:id every 2s and plays reels as they become ready
src/lib/schema.ts) via structured outputs, validated with zod, retried once.healIfStuck).Key files: src/lib/pipeline.ts, src/lib/claude.ts, src/lib/tts.ts, src/components/reel/* (player),
src/components/reel/use-playback.ts (timing engine), supabase/migrations/* (schema + RLS + buckets).
supabase/migrations/20261015000000_init.sql
(SQL editor, or supabase db push). It creates the tables, RLS policies, and the private documents and audio buckets.
https://unspool.cc; add redirect URL https://unspool.cc/auth/callback
(and http://localhost:3000/auth/callback for dev).https://<project>.supabase.co/auth/v1/callback).STRIPE_SECRET_KEY. Create a webhook endpoint at https://unspool.cc/api/stripe/webhook for
checkout.session.completed, checkout.session.async_payment_succeeded, customer.subscription.created|updated|deleted
and set STRIPE_WEBHOOK_SECRET. Enable the Customer Portal. Prices are inline by default ($2.49 per doc, $7.99/mo);
override with PRICE_*_CENTS or STRIPE_PRICE_SUBSCRIPTION.ANTHROPIC_API_KEY, plus OPENAI_API_KEY (or ELEVENLABS_API_KEY) for voiceover..env.example, set CRON_SECRET (daily cleanup of anonymous
uploads older than 7 days) and JOB_SECRET. If Deployment Protection is on for previews, enable
"Protection Bypass for Automation" so internal job calls work (VERCEL_AUTOMATION_BYPASS_SECRET is picked up automatically).unspool.cc in Vercel → Domains, then at Namecheap set an A record @ → 76.76.21.21 and a
CNAME www → cname.vercel-dns.com (or switch nameservers to Vercel).cp .env.example .env.local # fill in
npm install
npm run dev
FREE_UPLOADS_PER_DAY (default 3) per IP / device / account; subscribers get SUBSCRIBER_UPLOADS_PER_DAY.GENERATE_LOCKED_REELS_EAGERLY=false defers reels 2–10 until unlock to cut AI cost.