ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
答え · Daily English & Japanese interview practice
Translation pending
EducationTypeScript · CSSGitHub @AliceLikesCakeOnlineOwner 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 ↗An AI interview practice app for English and Japanese. I built it to prepare for engineering interviews at international companies in Japan. Every day Claude writes interview questions from my background, corrects my English answers, and turns them into natural interview Japanese with furigana. Spaced repetition makes sure I can still say them weeks later.
Live: https://kotae-tawny.vercel.app — tap Try the demo on the sign-in page to explore with sample data (no sign-in, and nothing is sent to Claude). There's also an About page.
| Today | Feedback | Japanese | Review | History |
|---|---|---|---|---|
Visitors can explore without the password. The demo uses a separate PostgreSQL schema (demo) with the same tables and English sample data, dated relative to today. Data access goes through getDb(), which picks the demo schema for demo sessions, so visitors never see or change real data. In the demo, Claude is never called: the places that would ask Claude show prepared sample content instead, with a note saying so. The sample data is rebuilt when it's from another day or more than 30 minutes old.
Next.js 16 (App Router, Server Actions) · React 19 · TypeScript · Prisma 7 · PostgreSQL (Neon) · Claude API · Web Speech API · PWA · Vercel
app/i18n/), no extra packages.app/
page.tsx, practice/, review/, history/, settings/, login/, about/ pages
components/ shared UI (bottom nav, bottom sheet, speak button, furigana)
i18n/ zh.tsx / en.tsx dictionaries, getT() (server), useT() (client)
lib/
ai.ts calls Claude: models, caching, usage logging, errors
*-data.ts prompts and JSON schemas for each feature
*-store.ts database access (Prisma)
db.ts getDb(): real data or the demo schema
demo-*.ts demo session, sample data, sample AI content
prisma/ schema and migrations
scripts/ password setup, icons, migrations for production and the demo schema
docs/ spec and screen designs
Requires Node.js 24 and PostgreSQL (I use Docker).
npm install
# .env.local: DATABASE_URL, ANTHROPIC_API_KEY, and KOTAE_AI_LIVE=1 to really call Claude
node scripts/set-password.mjs # sets the sign-in password and session secret
npx prisma migrate deploy # tables for your data
node scripts/migrate-demo.mjs # tables for the demo schema
npm run dev
Without KOTAE_AI_LIVE=1, the app uses fixed sample content instead of calling Claude, so it costs nothing to try.
I wrote the spec and designed all 9 screens in two color themes first, then built the app in about 2.5 weeks with Claude Code, while learning Next.js and TypeScript for the first time. Midway through, the database moved from SQL Server to PostgreSQL and all the practice data was migrated.