ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
先自己想,再讓 AI 陪你改。給想把韓文寫得像自己的你。
Translation pending
EducationTypeScript · HTMLGitHub @kellychiu00718OnlineOwner 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
慢慢寫 천천히 쓰기 — Korean writing & listening practice for Traditional Chinese speakers
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A Korean writing and listening practice site for Traditional Chinese speakers. Always think it through on your own first, then let the AI coach help you fix it, one step at a time.
🔗 Live (beta): https://writeitslowly.com · 中文說明
https://github.com/user-attachments/assets/924a139a-79dc-481b-b018-a6168dbf1042
It started with something I noticed about myself. I relied on AI tools so much that I couldn't live without them. Whether I was translating or editing something I wrote, they would quickly hand me a reply that looked perfect. It was efficient, but the problem was that I wasn't really thinking, so I wasn't really learning either. That was how the first version of Write It Slowly came about. I hope people who use it (me included) can rediscover the value of thinking and the joy of learning.
| Sentence Workshop | Users pick a grammar point, read a situation written in Chinese, and write the Korean sentence themselves. The AI coach replies in three layers: what needs fixing → a further clue → a reference sentence. Grammar is grouped into the National Institute of Korean Language levels 1–6 (roughly matching TOPIK levels), so when a sentence includes a word above that level, it shows a small hint under the situation section. |
| Grammar Map | The 336 grammar points (levels 1–6) in the National Institute of Korean Language standard curriculum. A square lights up only when users use that grammar correctly in a Korean sentence they wrote themselves. |
| Dictation | 116 sentences so far from Korean dramas, music, news, and variety shows, sorted into levels 1–6. Listening mode (users listen, then type what they hear) and typing mode (users test their typing speed). Missed and mistyped syllables are marked, and after users answer, the original source is linked below so users can click through and hear how Korean speakers actually say it. |
| Review cards | Users can save any grammar point or sentence they got stuck on and review it later. |
| My page | Shows users' progress in charts. |
Beta limits: the Sentence Workshop only covers levels 3 and 4 for now (12 lessons, reviewed and approved by a native Korean speaker). The AI coach has daily limits for each user and for the whole site.
flowchart LR
B[Browser<br/>Next.js client] -->|pages| N[Next.js server<br/>App Router on Vercel, Tokyo]
B -->|auth only| SA[(Supabase Auth)]
B -->|bot check| T[Cloudflare Turnstile]
N -->|user session, RLS reads| DB[(Supabase Postgres)]
N -->|service role writes| DB
N -->|structured output| C[Claude API]
N -->|login & alert email| R[Resend]
P[Python scripts<br/>Kiwi · Supertonic TTS] -->|levels, audio| D[/src/data, public/audio/]
D --> N
Next.js 15 (App Router, TypeScript) · Tailwind CSS 4 · Supabase (Postgres, Auth, RLS) · Anthropic Claude API · Cloudflare Turnstile · Resend · Vercel · Python (Kiwi morphological analyzer, Supertonic TTS)
fnm use # Node 22
npm install
cp .env.example .env.local # fill in the values as described in the file
npm run dev
Run the SQL files in supabase/ in order in the Supabase SQL Editor (schema.sql, then 002–008).
Environment variables (names only): NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (server only), ANTHROPIC_API_KEY, COACH_MODEL, COACH_EFFORT, DAILY_AI_LIMIT, GLOBAL_DAILY_AI_LIMIT, NEXT_PUBLIC_TURNSTILE_SITE_KEY, TURNSTILE_SECRET_KEY, RESEND_API_KEY, ALERT_EMAIL_TO, ALERT_EMAIL_FROM, CRON_SECRET.