ForgeKitFORGEKIT

Build Log

Homeschool Curriculum Shuffle

June 19, 2026

Missed a lesson? One tap and AI finds the next open slot. No guilt loop.

ForgeHomeAIHomeschool
1
new DB table
30
curricula pre-loaded
3
new API routes
2
import paths (CSV + picker)

Timeline

Start
Feature scoped
Full-year import, inline shuffle, no separate page
15m
Schema + migration
curriculum_lessons table, Drizzle migration generated
30m
Known curriculum catalog
30 curricula across Math, Reading, Writing, History, Science, Bible
1h
Import API + /curriculum page
Both CSV and known-curriculum paths working, preview table
1.5h
Shuffle API
Scans next 7 days, Claude picks lightest day, creates routeItem + slotSuggestion
2h
SchoolSection updated
Shuffle button inline on moved/skipped items, suggestion card with Claude's reason
2.5h
Build, commit, deploy
Clean tsc, clean next build, pushed to Vercel

What shipped

curriculum_lessons DB table with status enum (unscheduled → scheduled → done → skipped → moved)

Known curriculum catalog: 30 pre-built curricula across 7 subjects

POST /api/curriculum/import — handles both 'known' and 'csv' modes

/curriculum page — tab UI: Known Curriculum picker + CSV upload with preview table

POST /api/curriculum/shuffle — scans 7-day gap, Claude picks lightest day, creates route item

SchoolSection updated — 'Find a slot' button on missed lessons, inline confirmation card

It's more than a memory thing — saving how to do something is what ForgeKit is built on. Our whole reason to exist.

Zeb, mid-session