Create packages/seed-data/ with JSON source-of-truth files and a bun run db:seed command that upserts into Postgres. JSON files are the source of truth; the database is the runtime query layer. Self-hosters get the full dataset on first deploy.
Phase 1 (with schema migration):
activity-types.json — canonical activity type catalog (slug, name, category, icon). ~100 types from SYNTHESIS §8.Phase 2 (with strength training):
exercises.json — exercise templates (slug, name, category, exercise_type, primary/secondary muscles, equipment). 500+ exercises.Phase 3 (with equipment tracking):
equipment-catalog.json — shared product database (shoes, bikes, climbing shoes, etc. with brands and images).slug field, safe to run multiple timesbun run db:seed command in apps/backendSee docs/api-research/SYNTHESIS.md §7 (Seed Data Pattern).