Build Log · June 19, 2026

Homeschool Curriculum Shuffle

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

  • ForgeHome
  • AI
  • Homeschool
new DB table
1

new DB table

curricula pre-loaded
30

curricula pre-loaded

new API routes
3

new API routes

import paths (CSV + picker)
2

import paths (CSV + picker)

Timeline

  1. Start

    Feature scoped

    Full-year import, inline shuffle, no separate page

  2. 15m

    Schema + migration

    curriculum_lessons table, Drizzle migration generated

  3. 30m

    Known curriculum catalog

    30 curricula across Math, Reading, Writing, History, Science, Bible

  4. 1h

    Import API + /curriculum page

    Both CSV and known-curriculum paths working, preview table

  5. 1.5h

    Shuffle API

    Scans next 7 days, Claude picks lightest day, creates routeItem + slotSuggestion

  6. 2h

    SchoolSection updated

    Shuffle button inline on moved/skipped items, suggestion card with Claude's reason

  7. 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
Homeschool Curriculum Shuffle — June 19, 2026 · ForgeKit