plans
2026-05-10-shows-to-experience-rename
Plan

Shows → Experience Terminology Refactor Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: Rename all "shows" terminology to "experience" throughout the codebase (schema, components, utilities, i18n, URLs) to eliminate guest-facing confusion about what "show" means.

Architecture: Direct rename approach - no backward compatibility. Schema tables renamed first (requires Convex migration), then all dependent code updated systematically. i18n keys renamed fully. URL redirects added for old routes.

Tech Stack: Next.js 16, Convex, Tailwind CSS v4, paraglide-js i18n


Phase 1: Backend Schema Rename

Task 1: Rename shows table to experiences in schema

Files:

  • Modify: packages/backend/convex/schema.ts:6-30

  • Step 1: Rename table definition

Change line 6 from shows: defineTable({ to experiences: defineTable({

  • Step 2: Update index references

Lines 28-30 should reference experiences not shows:

.index("by_status", ["status"])
.index("by_slug", ["slug"])
.index("by_code", ["code"])
  • Step 3: Commit
git add packages/backend/convex/schema.ts
git commit -m "refactor(schema): rename shows table to experiences"

Task 2: Rename showEvents table to experienceEvents

Files:

  • Modify: packages/backend/convex/schema.ts:33-56

  • Step 1: Rename table

Change line 33 from showEvents: defineTable({ to experienceEvents: defineTable({

  • Step 2: Rename showId field to experienceId

Line 34: Change showId: v.id("shows"), to experienceId: v.id("experiences"),

  • Step 3: Update indexes

Lines 52-56:

.index("by_experience", ["experienceId"])
.index("by_date", ["date"])
.index("by_experience_date", ["experienceId", "date"])
  • Step 4: Commit
git add packages/backend/convex/schema.ts
git commit -m "refactor(schema): rename showEvents to experienceEvents"

Task 3: Update all other table references to showEventsexperienceEvents

Files:

  • Modify: packages/backend/convex/schema.ts (multiple locations)

  • Step 1: Find all references to showEvents

grep -n "showEvents" packages/backend/convex/schema.ts
  • Step 2: Update each reference

References to update:

  • reservations.eventId comment (line ~60): showEventexperienceEvent

  • checkIns.eventId comment (line ~145)

  • orders.eventId comment (line ~229)

  • liveViewers.eventId comment (line ~497)

  • Step 3: Commit

git add packages/backend/convex/schema.ts
git commit -m "refactor(schema): update all table references to experienceEvents"

Task 4: Update showId references to experienceId in dependent tables

Files:

  • Modify: packages/backend/convex/schema.ts

  • Step 1: Find all showId references

grep -n "showId" packages/backend/convex/schema.ts
  • Step 2: Update references in other tables

In guestProfiles, showDateexperienceDate (line ~289) In guestReactions, showDateexperienceDate (line ~307) In photoSubmissions, showDateexperienceDate (line ~421) In spinResults, showDateexperienceDate (line ~464) In challengeSubmissions, showDateexperienceDate (line ~488) In liveViewers, showDateexperienceDate (line ~499)

  • Step 3: Update formSessions formType

Line ~377: SHOWEXPERIENCE

  • Step 4: Update notifications type

Line ~510: SHOW_REMINDEREXPERIENCE_REMINDER

  • Step 5: Commit
git add packages/backend/convex/schema.ts
git commit -m "refactor(schema): rename showId/showDate to experienceId/experienceDate"

Task 5: Run Convex codegen to regenerate types

Files:

  • Modify: packages/backend/convex/_generated/ (auto-generated)

  • Step 1: Run codegen

cd packages/backend/convex && npx convex codegen
  • Step 2: Verify generated files updated
git status packages/backend/convex/_generated/
  • Step 3: Commit
git add packages/backend/convex/_generated/
git commit -m "refactor(schema): regenerate Convex types after rename"

Phase 2: Backend Domain Functions

Task 6: Rename shows.ts domain file to experiences.ts

Files:

  • Rename: packages/backend/convex/domains/shows.tspackages/backend/convex/domains/experiences.ts

  • Step 1: Rename file

mv packages/backend/convex/domains/shows.ts packages/backend/convex/domains/experiences.ts
  • Step 2: Update file contents - rename ShowTime enum

In the file, change ShowTime to ExperienceTime:

export enum ExperienceTime {
  Lunch = "L",
  Night = "N",
}
  • Step 3: Update function names

  • createShowcreateExperience

  • updateShowupdateExperience

  • archiveShowarchiveExperience

  • generateEventCodegenerateExperienceEventCode

  • parseEventCodeparseExperienceEventCode

  • Step 4: Update internal references to ShowTime

All references to ShowTime.LunchExperienceTime.Lunch All references to ShowTime.NightExperienceTime.Night

  • Step 5: Commit
git add packages/backend/convex/domains/experiences.ts
git rm packages/backend/convex/domains/shows.ts
git commit -m "refactor(backend): rename shows.ts to experiences.ts"

Task 7: Update experiences.ts internal references

Files:

  • Modify: packages/backend/convex/domains/experiences.ts

  • Step 1: Update STATIC_SHOWS import

Change getShowBySluggetExperienceBySlug Change STATIC_SHOWSSTATIC_EXPERIENCES

  • Step 2: Update all show → experience in variable names

In handlers, show.experience. for data mappings

  • Step 3: Commit
git add packages/backend/convex/domains/experiences.ts
git commit -m "refactor(backend): update experiences.ts internal references"

Task 8: Update events.ts domain file

Files:

  • Modify: packages/backend/convex/domains/events.ts

  • Step 1: Find all references to shows/showEvents

grep -n "shows\|showEvents\|showId" packages/backend/convex/domains/events.ts
  • Step 2: Update to experiences/experienceEvents/experienceId

All showIdexperienceId All "shows""experiences" All "showEvents""experienceEvents"

  • Step 3: Commit
git add packages/backend/convex/domains/events.ts
git commit -m "refactor(backend): update events.ts for experienceEvents"

Task 9: Update experiences.http.ts

Files:

  • Modify: packages/backend/convex/domains/experiences.http.ts

  • Step 1: Update all show references

grep -n "show" packages/backend/convex/domains/experiences.http.ts
  • Step 2: Update to experience

All showexperience in variable/function names

  • Step 3: Commit
git add packages/backend/convex/domains/experiences.http.ts
git commit -m "refactor(backend): update experiences.http.ts"

Task 10: Rename showsData.ts to experiences-data.ts

Files:

  • Rename: packages/backend/convex/lib/showsData.tspackages/backend/convex/lib/experiences-data.ts

  • Step 1: Rename file

mv packages/backend/convex/lib/showsData.ts packages/backend/convex/lib/experiences-data.ts
  • Step 2: Update internal content

  • STATIC_SHOWSSTATIC_EXPERIENCES

  • getShowBySluggetExperienceBySlug

  • Show type → Experience type

  • Step 3: Update all imports in domain files

grep -rn "showsData" packages/backend/convex/

Update imports in:

  • domains/experiences.ts

  • domains/events.ts

  • Any other file referencing showsData

  • Step 4: Commit

git add packages/backend/convex/lib/experiences-data.ts
git rm packages/backend/convex/lib/showsData.ts
git commit -m "refactor(backend): rename showsData.ts to experiences-data.ts"

Task 11: Update scheduled.ts

Files:

  • Modify: packages/backend/convex/functions/scheduled.ts

  • Step 1: Find show references

grep -n "show" packages/backend/convex/functions/scheduled.ts
  • Step 2: Update all references

All showexperience where referring to the concept

  • Step 3: Commit
git add packages/backend/convex/functions/scheduled.ts
git commit -m "refactor(backend): update scheduled.ts for experiences"

Phase 3: Frontend Component Renames

Task 12: Rename show-card.tsx to experience-card.tsx

Files:

  • Rename: apps/frontend/components/ui/show-card.tsxapps/frontend/components/ui/experience-card.tsx

  • Step 1: Rename file

mv apps/frontend/components/ui/show-card.tsx apps/frontend/components/ui/experience-card.tsx
  • Step 2: Update internal component name

Change ShowCardExperienceCard Change ShowCardEventExperienceCardEvent Change ShowCardShowExperienceCardShow Change ShowCardDataExperienceCardData Change ShowCardPropsExperienceCardProps

  • Step 3: Update all prop types

All show: props → experience:

  • Step 4: Update URLs in component

/shows?slug=/experiences?slug=

  • Step 5: Find and update all imports
grep -rn "from.*show-card" apps/frontend --include="*.tsx"

Update each import to experience-card

  • Step 6: Commit
git add apps/frontend/components/ui/experience-card.tsx
git rm apps/frontend/components/ui/show-card.tsx
git commit -m "refactor(frontend): rename ShowCard to ExperienceCard"

Task 13: Rename show-picker.tsx to experience-picker.tsx

Files:

  • Rename: apps/frontend/components/booking/show-picker.tsxapps/frontend/components/booking/experience-picker.tsx

  • Step 1: Rename file

mv apps/frontend/components/booking/show-picker.tsx apps/frontend/components/booking/experience-picker.tsx
  • Step 2: Update component name

ShowPickerExperiencePicker

  • Step 3: Update all show references in text

"Book a Show" → "Book an Experience" "Shows on day" → "Experiences on day" "Upcoming Shows" → "Upcoming Experiences" "No shows available" → "No experiences available"

  • Step 4: Update imports

ShowCardExperienceCard formatUpcomingShowsformatUpcomingExperiences

  • Step 5: Update all consumers
grep -rn "show-picker" apps/frontend --include="*.tsx"

Update imports

  • Step 6: Commit
git add apps/frontend/components/booking/experience-picker.tsx
git rm apps/frontend/components/booking/show-picker.tsx
git commit -m "refactor(frontend): rename ShowPicker to ExperiencePicker"

Task 14: Rename show-reminder.tsx to experience-reminder.tsx

Files:

  • Rename: apps/frontend/components/booking/show-reminder.tsxapps/frontend/components/booking/experience-reminder.tsx

  • Step 1: Rename file

mv apps/frontend/components/booking/show-reminder.tsx apps/frontend/components/booking/experience-reminder.tsx
  • Step 2: Update component name

ShowReminderExperienceReminder

  • Step 3: Update consumers
grep -rn "show-reminder" apps/frontend --include="*.tsx"
  • Step 4: Commit
git add apps/frontend/components/booking/experience-reminder.tsx
git rm apps/frontend/components/booking/show-reminder.tsx
git commit -m "refactor(frontend): rename ShowReminder to ExperienceReminder"

Task 15: Rename show-reminder-skeleton.tsx

Files:

  • Rename: apps/frontend/components/booking/show-reminder-skeleton.tsxapps/frontend/components/booking/experience-reminder-skeleton.tsx

  • Step 1: Rename and update

mv apps/frontend/components/booking/show-reminder-skeleton.tsx apps/frontend/components/booking/experience-reminder-skeleton.tsx
  • Step 2: Update consumers
grep -rn "show-reminder-skeleton" apps/frontend --include="*.tsx"
  • Step 3: Commit
git add apps/frontend/components/booking/experience-reminder-skeleton.tsx
git rm apps/frontend/components/booking/show-reminder-skeleton.tsx
git commit -m "refactor(frontend): rename experience-reminder-skeleton"

Task 16: Rename show-event-list.tsx

Files:

  • Rename: apps/frontend/components/ui/show-event-list.tsxapps/frontend/components/ui/experience-event-list.tsx

  • Step 1: Rename file

mv apps/frontend/components/ui/show-event-list.tsx apps/frontend/components/ui/experience-event-list.tsx
  • Step 2: Update component name

ShowEventListExperienceEventList

  • Step 3: Update all consumers
grep -rn "show-event-list" apps/frontend --include="*.tsx"
  • Step 4: Commit
git add apps/frontend/components/ui/experience-event-list.tsx
git rm apps/frontend/components/ui/show-event-list.tsx
git commit -m "refactor(frontend): rename ShowEventList to ExperienceEventList"

Task 17: Rename admin show-form.tsx

Files:

  • Rename: apps/frontend/components/admin/show-form.tsxapps/frontend/components/admin/experience-form.tsx

  • Step 1: Rename file

mv apps/frontend/components/admin/show-form.tsx apps/frontend/components/admin/experience-form.tsx
  • Step 2: Update internal names

ShowFormExperienceForm

  • Step 3: Update UI text

"Add Show" → "Add Experience" "Edit Show" → "Edit Experience" "Show Title" → "Experience Title"

  • Step 4: Update consumers
grep -rn "show-form" apps/frontend --include="*.tsx"
  • Step 5: Commit
git add apps/frontend/components/admin/experience-form.tsx
git rm apps/frontend/components/admin/show-form.tsx
git commit -m "refactor(frontend): rename ShowForm to ExperienceForm"

Task 18: Rename admin show-table-row.tsx

Files:

  • Rename: apps/frontend/components/admin/show-table-row.tsxapps/frontend/components/admin/experience-table-row.tsx

  • Step 1: Rename file

mv apps/frontend/components/admin/show-table-row.tsx apps/frontend/components/admin/experience-table-row.tsx
  • Step 2: Update component name

ShowTableRowExperienceTableRow

  • Step 3: Update consumers
grep -rn "show-table-row" apps/frontend --include="*.tsx"
  • Step 4: Commit
git add apps/frontend/components/admin/experience-table-row.tsx
git rm apps/frontend/components/admin/show-table-row.tsx
git commit -m "refactor(frontend): rename ShowTableRow to ExperienceTableRow"

Task 19: Rename top-shows-list.tsx

Files:

  • Rename: apps/frontend/components/admin/top-shows-list.tsxapps/frontend/components/admin/top-experiences-list.tsx

  • Step 1: Rename file

mv apps/frontend/components/admin/top-shows-list.tsx apps/frontend/components/admin/top-experiences-list.tsx
  • Step 2: Update component name

TopShowsListTopExperiencesList

  • Step 3: Update text

"Top Shows" → "Top Experiences"

  • Step 4: Update consumers
grep -rn "top-shows-list" apps/frontend --include="*.tsx"
  • Step 5: Commit
git add apps/frontend/components/admin/top-experiences-list.tsx
git rm apps/frontend/components/admin/top-shows-list.tsx
git commit -m "refactor(frontend): rename TopShowsList to TopExperiencesList"

Task 20: Rename show-schedule-preview.tsx

Files:

  • Rename: apps/frontend/components/home/show-schedule-preview.tsxapps/frontend/components/home/experience-schedule-preview.tsx

  • Step 1: Rename file

mv apps/frontend/components/home/show-schedule-preview.tsx apps/frontend/components/home/experience-schedule-preview.tsx
  • Step 2: Update component name

ShowSchedulePreviewExperienceSchedulePreview

  • Step 3: Update all show references

  • Step 4: Update consumers

grep -rn "show-schedule-preview" apps/frontend --include="*.tsx"
  • Step 5: Commit
git add apps/frontend/components/home/experience-schedule-preview.tsx
git rm apps/frontend/components/home/show-schedule-preview.tsx
git commit -m "refactor(frontend): rename ShowSchedulePreview to ExperienceSchedulePreview"

Task 21: Rename upcoming-shows-section.tsx

Files:

  • Rename: apps/frontend/components/home/upcoming-shows-section.tsxapps/frontend/components/home/upcoming-experiences-section.tsx

  • Step 1: Rename file

mv apps/frontend/components/home/upcoming-shows-section.tsx apps/frontend/components/home/upcoming-experiences-section.tsx
  • Step 2: Update component name

UpcomingShowsSectionUpcomingExperiencesSection

  • Step 3: Update text

"Upcoming Shows" → "Upcoming Experiences"

  • Step 4: Update consumers
grep -rn "upcoming-shows-section" apps/frontend --include="*.tsx"
  • Step 5: Commit
git add apps/frontend/components/home/upcoming-experiences-section.tsx
git rm apps/frontend/components/home/upcoming-shows-section.tsx
git commit -m "refactor(frontend): rename UpcomingShowsSection to UpcomingExperiencesSection"

Phase 4: Utility File Renames

Task 22: Rename lib/utils/shows.ts

Files:

  • Rename: apps/frontend/lib/utils/shows.tsapps/frontend/lib/utils/experiences.ts

  • Step 1: Rename file

mv apps/frontend/lib/utils/shows.ts apps/frontend/lib/utils/experiences.ts
  • Step 2: Update function names

formatUpcomingShowsformatUpcomingExperiences All exported functions with showexperience

  • Step 3: Update all consumers
grep -rn "lib/utils/shows" apps/frontend --include="*.tsx"
  • Step 4: Commit
git add apps/frontend/lib/utils/experiences.ts
git rm apps/frontend/lib/utils/shows.ts
git commit -m "refactor(frontend): rename shows.ts utils to experiences.ts"

Task 23: Rename lib/utils/show-event-list.ts

Files:

  • Rename: apps/frontend/lib/utils/show-event-list.tsapps/frontend/lib/utils/experience-event-list.ts

  • Step 1: Rename file

mv apps/frontend/lib/utils/show-event-list.ts apps/frontend/lib/utils/experience-event-list.ts
  • Step 2: Update function names

  • Step 3: Update consumers

grep -rn "show-event-list" apps/frontend --include="*.tsx"
  • Step 4: Commit
git add apps/frontend/lib/utils/experience-event-list.ts
git rm apps/frontend/lib/utils/show-event-list.ts
git commit -m "refactor(frontend): rename show-event-list.ts to experience-event-list.ts"

Task 24: Rename lib/hooks/use-calendar-shows.ts

Files:

  • Rename: apps/frontend/lib/hooks/use-calendar-shows.tsapps/frontend/lib/hooks/use-calendar-experiences.ts

  • Step 1: Rename file

mv apps/frontend/lib/hooks/use-calendar-shows.ts apps/frontend/lib/hooks/use-calendar-experiences.ts
  • Step 2: Update hook name

useCalendarShowsuseCalendarExperiences

  • Step 3: Update consumers
grep -rn "use-calendar-shows" apps/frontend --include="*.tsx"
  • Step 4: Commit
git add apps/frontend/lib/hooks/use-calendar-experiences.ts
git rm apps/frontend/lib/hooks/use-calendar-shows.ts
git commit -m "refactor(frontend): rename use-calendar-shows to use-calendar-experiences"

Task 25: Rename lib/data/shows.ts

Files:

  • Rename: apps/frontend/lib/data/shows.tsapps/frontend/lib/data/experiences.ts

  • Step 1: Rename file

mv apps/frontend/lib/data/shows.ts apps/frontend/lib/data/experiences.ts
  • Step 2: Update all consumers
grep -rn "lib/data/shows" apps/frontend --include="*.tsx"
  • Step 3: Commit
git add apps/frontend/lib/data/experiences.ts
git rm apps/frontend/lib/data/shows.ts
git commit -m "refactor(frontend): rename lib/data/shows.ts to experiences.ts"

Task 26: Rename lib/data/calendar-shows.ts

Files:

  • Rename: apps/frontend/lib/data/calendar-shows.tsapps/frontend/lib/data/calendar-experiences.ts

  • Step 1: Rename file

mv apps/frontend/lib/data/calendar-shows.ts apps/frontend/lib/data/calendar-experiences.ts
  • Step 2: Update all consumers
grep -rn "lib/data/calendar-shows" apps/frontend --include="*.tsx"
  • Step 3: Commit
git add apps/frontend/lib/data/calendar-experiences.ts
git rm apps/frontend/lib/data/calendar-shows.ts
git commit -m "refactor(frontend): rename calendar-shows.ts to calendar-experiences.ts"

Phase 5: URL/Routing Changes

Task 27: Add URL redirects for old /shows routes

Files:

  • Modify: apps/frontend/next.config.js (or next.config.mjs)

  • Step 1: Find next.config file

ls apps/frontend/next.config.*
  • Step 2: Add redirects
async redirects() {
  return [
    { source: '/shows', destination: '/experiences', permanent: true },
    { source: '/shows/:slug', destination: '/experiences/:slug', permanent: true },
    { source: '/admin/shows', destination: '/admin/experiences', permanent: true },
  ]
}
  • Step 3: Commit
git add apps/frontend/next.config.js
git commit -m "refactor(frontend): add redirects from /shows to /experiences"

Phase 6: i18n Message Renames

Task 28: Rename paraglide message files with shows in name

Files:

  • Rename: apps/frontend/src/paraglide/messages/*shows*.jsapps/frontend/src/paraglide/messages/*experiences*.js

  • Step 1: List all message files with shows

ls apps/frontend/src/paraglide/messages/*shows*.js | wc -l

Should be ~100 files

  • Step 2: Batch rename using sed
cd apps/frontend/src/paraglide/messages
for f in *shows*.js; do
  new="${f//shows/experiences}"
  mv "$f" "$new"
done
  • Step 3: Commit
git add apps/frontend/src/paraglide/messages/
git commit -m "refactor(i18n): batch rename shows message files to experiences"

Task 29: Update message key names within files

Files:

  • Modify: apps/frontend/src/paraglide/messages/*experiences*.js

  • Step 1: Update export names

For each file, rename export: admin_shows_*admin_experiences_* booking_shows_*booking_experiences_* calendar_modal_showscalendar_modal_experiences common_nav_showscommon_nav_experiences home_upcomingshows_*home_upcomingexperiences_* footer_show*footer_experience* etc.

  • Step 2: Update message content

"Shows" → "Experiences" in actual text strings

  • Step 3: Update all imports in components
grep -rn "admin_shows\|booking_shows\|calendar_modal_shows" apps/frontend --include="*.tsx"

Update each import

  • Step 4: Commit
git add apps/frontend/src/paraglide/messages/
git commit -m "refactor(i18n): update message keys from shows to experiences"

Phase 7: Additional Frontend Updates

Task 30: Update remaining show references in hooks and lib

Files:

  • Modify: Various files in apps/frontend/lib/

  • Step 1: Find all remaining show references

grep -rn "show" apps/frontend/lib --include="*.ts" | grep -v "showDate\|showId\|showCode\|showTime\|showOnly\|showForm\|showPicker\|showCard\|showReminder\|showEvent\|showTable\|showsList" | head -50
  • Step 2: Update each reference

Focus on:

  • Variable names with show referring to the concept

  • Text content

  • Comments

  • Step 3: Commit


Task 31: Update admin dashboard components

Files:

  • Modify: apps/frontend/app/dashboard/ pages and components

  • Step 1: Find all show references

grep -rn "show" apps/frontend/app/dashboard --include="*.tsx"
  • Step 2: Update references

  • UI text

  • Component names

  • Route segments

  • Step 3: Commit


Task 32: Update booking flow components

Files:

  • Modify: apps/frontend/components/booking/ components

  • Step 1: Find all show references

grep -rn "show" apps/frontend/components/booking --include="*.tsx"
  • Step 2: Update references

Focus on:

  • step-tickets.tsx - "Select Show" → "Select Experience"

  • checkout-summary.tsx

  • experience-option.tsx (if it has show refs)

  • Step 3: Commit


Phase 8: Test File Renames

Task 33: Rename test files

Files:

  • Rename: apps/frontend/__tests__/components/show-event-list.test.tsxapps/frontend/__tests__/components/experience-event-list.test.tsx

  • Rename: apps/frontend/__tests__/components/upcoming-shows-section.test.tsxapps/frontend/__tests__/components/upcoming-experiences-section.test.tsx

  • Step 1: Rename files

mv apps/frontend/__tests__/components/show-event-list.test.tsx apps/frontend/__tests__/components/experience-event-list.test.tsx
mv apps/frontend/__tests__/components/upcoming-shows-section.test.tsx apps/frontend/__tests__/components/upcoming-experiences-section.test.tsx
  • Step 2: Update test content

Update all show references to experience

  • Step 3: Commit
git add apps/frontend/__tests__/
git commit -m "refactor(tests): rename show test files to experience"

Phase 9: Final Verification

Task 34: Grep verification for remaining show references

Files:

  • None (verification only)

  • Step 1: Check for remaining show references

# Should return no results (excluding raw/backup/node_modules)
grep -r "\"shows\"" apps/frontend --include="*.tsx" | grep -v "raw/" | grep -v "backup/" | grep -v "node_modules/"
grep -r "'shows'" apps/frontend --include="*.tsx" | grep -v "raw/" | grep -v "backup/" | grep -v "node_modules/"
grep -rn "ShowCard\|ShowPicker\|ShowReminder\|ShowForm" apps/frontend --include="*.tsx" | grep -v "raw/" | grep -v "backup/"
  • Step 2: Check for remaining show/Show in variable names
grep -rn "showTitle\|showImage\|showPrice\|showData" apps/frontend --include="*.tsx" | grep -v "raw/" | grep -v "backup/" | grep -v "node_modules/"

These should be renamed to experienceTitle, experienceImage, etc.

  • Step 3: Report any remaining occurrences

Task 35: Build verification

Files:

  • None (verification only)

  • Step 1: Run build

cd apps/frontend && npm run build
  • Step 2: Fix any TypeScript errors

Common errors:

  • Import paths not updated after file rename

  • Type references still using old names

  • Step 3: Commit any final fixes


Task 36: Run Convex migration

Files:

  • Modify: Convex database (requires convex CLI)

  • Step 1: Export current data (backup)

npx convex data export > backup.json
  • Step 2: Run schema migration
npx convex dataMigration --renameTable shows experiences
npx convex dataMigration --renameTable showEvents experienceEvents
  • Step 3: Verify data integrity
npx convex data query "experiences" | head
npx convex data query "experienceEvents" | head
  • Step 4: Commit migration

Task 37: Final end-to-end verification

Files:

  • None (manual testing)

  • Step 1: Test homepage

  • Step 2: Test booking flow

  • Step 3: Test admin experience CRUD

  • Step 4: Test i18n switching


Summary

Total Tasks: 37

Estimated Time: 40 hours (large refactor with many file renames and systematic replacements)

Critical Path:

  1. Schema changes (Tasks 1-5) must complete before domain functions
  2. Domain function changes (Tasks 6-11) must complete before frontend
  3. Frontend component renames (Tasks 12-21) unlock parallel workstreams
  4. i18n renames (Tasks 28-29) can run in parallel with components
  5. Final verification (Tasks 34-37) after all changes complete

Risk Points:

  • Database migration (Task 36) - critical, must backup first
  • Import path updates - many files need import updates after file renames
  • i18n message key renames - 100+ files to update