shiping
면접·시험 도우미, AI가 실시간으로 풀이 아이디어를 제공
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Homeschool curriculum planner and daily learning tracker — the app behind lessonhollow.com
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Lesson Hollow is a homeschool curriculum planner and daily learning tracker. Parents (or self-directed learners) build or import curricula, enroll players (students), and work a paced daily task list. It is a Next.js app backed by Supabase and deployed to Fly.io.
Live at lessonhollow.com.
Why this exists: I built it so a curriculum becomes a paced daily list instead of a static outline you re-plan every morning. The planner, the CSV curriculum format, and the agent MCP surface are open source under MIT so families and builders can inspect, self-host, and contribute.
Try it fast
public/curriculums/| Layer | Choice |
|---|---|
| Framework | Next.js 16 (App Router, standalone output), React 19, TypeScript |
| Styling | Pico CSS, Lucide icons |
| State | Zustand |
| Backend | Supabase (Postgres + Auth); schema in supabase/migrations/ |
| Payments | Zaprite (Bitcoin, Lightning, card) |
| Images | fal.ai (reward image generation) |
| AWS SES | |
| Hosting | Fly.io (Docker, blue-green) |
This repo ships a Nix + direnv dev shell (flake.nix, .envrc). With
direnv installed, direnv allow drops you into a shell with the right
Node toolchain. Without Nix, use Node 22.
cp .env.example .env.local # fill in your own keys (see table below)
npm install
npm run dev # http://localhost:3000
Other scripts:
npm run build # production build (runs the blog-post validator first via prebuild)
npm run lint # eslint
npm test # vitest unit tests
npm run test:e2e # playwright end-to-end tests
Copy .env.example to .env.local and fill in your own values. NEXT_PUBLIC_* variables are
exposed to the browser; the rest are server-only.
| Variable | Purpose |
|---|---|
NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase project URL + publishable anon key |
SUPABASE_SERVICE_ROLE_KEY | Server-side Supabase access |
SUPABASE_JWT_SECRET | Verifies MCP API-key auth |
NEXT_PUBLIC_APP_URL / NEXT_PUBLIC_SITE_URL | App/site base URLs (redirects, RSS) |
ZAPRITE_API_KEY / ZAPRITE_WEBHOOK_SECRET | Payments |
FAL_KEY | fal.ai reward-image generation |
API_KEY_ENCRYPTION_KEY | AES-256-GCM key for encrypting stored fal.ai keys (32 bytes hex) |
AWS_SES_REGION / AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SES_FROM_EMAIL | Feedback-notification email |
ADMIN_PLAYER_AUTH_USER_ID | Curricula from this player auto-publish (leave unset to disable) |
NEXT_PUBLIC_GOOGLE_SHEETS_TEMPLATE_URL | Public "make a copy" link for the CSV template |
NEXT_PUBLIC_GA_MEASUREMENT_ID | Google Analytics 4 (leave empty to disable) |
TEST_* | E2E test-account credentials |
Curricula can be imported from CSV. Ready-to-use curriculum files live in
public/curriculums/; the full spec is in
docs/csv-format-gt2.md. A blank template is at
public/lesson-hollow-template.csv.
Pushing to main triggers the GitHub Actions workflow in
.github/workflows/deploy.yml, which cleans up stale blue-green
machines and runs flyctl deploy --remote-only against the Fly app lessonhollow. The only
required repository secret is FLY_API_TOKEN. Public NEXT_PUBLIC_* build args are baked in via
fly.toml; all runtime secrets are managed as Fly secrets, not in this repo.
See CONTRIBUTING.md, including how to contribute a curriculum CSV.
MIT © 2026 Sally Cole