ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A free, fast Korean verb conjugator built as a programmatic-SEO site. Every verb gets its own statically-generated page showing the full conjugation table — present / past / future across casual, polite, and formal speech levels — plus extra forms (command, suggestion, question, connectives) and romanization.
The strategy: each page is a genuinely useful interactive reference, not thin content. That's the kind of page AI Overviews summarize but can't replace, and it earns links because people bookmark and share a tool that works.
npm install
npm run dev # regenerates conjugations, then starts the dev server
# open http://localhost:3000
Build for production:
npm run build # runs the generator (prebuild), then next build
npm start
The prebuild script regenerates data/conjugations.json on every Vercel build,
so adding verbs and pushing is all it takes to publish new pages.
Before going live, set your real domain in lib/site.js (the url field is
used for canonical tags, Open Graph, the sitemap, and robots).
data/verbs.js seed list — the single source of truth for what pages exist
scripts/generate.js plain-Node build step: runs the engine over every verb,
writes data/conjugations.json
lib/korean/engine.js wrapper: curates forms + fixes the polite-present bug
lib/korean/bravender/* vendored conjugation algorithm (AGPL — see Licensing)
data/conjugations.json GENERATED. precomputed output the pages import
app/conjugate/[verb]/ the page template, statically rendered per verb (SSG)
app/page.js homepage + searchable verb index
app/sitemap.js, robots.js auto-generated from the verb list
Why precompute into JSON instead of calling the engine inside the app? The conjugation library is written in old-style ("sloppy mode") JavaScript that a modern bundler can't compile directly. Running it once in plain Node at build time sidesteps that entirely and keeps the algorithm out of the shipped bundle — smaller, faster, and the pages just read static data.
The JavaScript port of the conjugator corrupts the stem of ㄷ-irregular verbs in
the polite present form (e.g. 듣다 → 㭤어요 instead of 들어요). Because the
polite present is always "casual present + 요" for every verb class,
lib/korean/engine.js rebuilds those three forms from the verified casual form.
The generator fails the build if the corruption marker ever appears, so a bad
form can't ship silently.
Open data/verbs.js and add an entry:
{ hangul: '읽다', slug: 'ikda', en: 'to read', type: 'regular' },
hangul — dictionary form, must end in 다.slug — unique, ASCII, used in the URL (/conjugate/ikda). Revised
romanization is the convention here; just keep it unique.en — concise meaning. This drives "how to say X in Korean" search intent.type — grammatical class label (display only; conjugation is automatic).Then npm run generate (or just build/deploy). The new page, its sitemap entry,
and its internal links appear automatically.
To scale to thousands of verbs, generate data/verbs.js from a source like the
Wiktionary Korean verb category plus a TOPIK frequency list, prioritising the
words people actually search. Keep the file as plain data — everything
downstream is automatic.
The conjugation algorithm in lib/korean/bravender/ is © Dan Bravender,
licensed under AGPL-3.0 (see LICENSE-AGPL.txt and COPYRIGHT in that folder).
The two files modified for strict-mode/bundler compatibility are marked inline.
AGPL-3.0 includes a network-use clause (section 13): if users interact with this software over a network (i.e. a public website), you must offer them the complete corresponding source code of the AGPL-covered portion, including any modifications.
Practical compliance, kept simple:
lib/korean/ (it already is).This does not force you to open-source your whole site — only the AGPL'd
module and changes to it. If you'd prefer no copyleft obligation at all, replace
lib/korean/bravender/ with a clean-room conjugator and update engine.js
accordingly (more work, and conjugation correctness is the hard part).
Your own code in this project (everything outside lib/korean/bravender/) is
yours to license as you wish.