Create recurring revenue with maintenance plans, service packages, and VIP memberships. Full builder wizard with tiered pricing.
Dashboard with plan cards, stats grid, tier info, and active/inactive toggles.
useQuery(api.memberships.getDashboard)
Empty state with clear CTA to create first membership plan.
Step 1: Plan name, description, category. Template presets auto-fill fields.
Step 2: Tiered pricing with monthly/quarterly/annual. Max 3 tiers. Recommended flag.
Step 3: Per-tier services with frequency, benefits list, and emergency response time.
Step 4: Final review with plan summary, tier pricing, and publish settings.
useMutation(api.memberships.createTemplate)
Service tracking with date grouping, status filters, and complete/reschedule actions.
useQuery(api.memberships.getServices)
Per-plan subscriber list with search, status filters, and renewal tracking.
useQuery(api.memberships.getSubscribers)
getDashboard Plan stats, tier info, template listgetServices Upcoming/completed services by dategetSubscribers Subscriber list with filtersgetTemplate Single plan with tiers & servicescreateTemplate Create plan + tiers from wizardupdateTemplate Edit plan name, settings, toggledeleteTemplate Remove plan (with confirmation)markServiceComplete Complete a service visittoggleActive Enable/disable subscriptionsmemberships/index.tsx Dashboardmemberships/builder.tsx Create wizard (4 steps)memberships/builder/[templateId].tsx Edit planmemberships/services.tsx Service trackingmemberships/subscribers/[templateId].tsx SubscribersStep 1: Details Name, description, category + templatesStep 2: Tiers Up to 3 tiers with pricing (mo/qtr/yr)Step 3: Services Per-tier services, benefits, frequencyStep 4: Review Summary, settings, publish toggle