Skip to Content
Living documentation — last reviewed 2026-05-28
OverviewRoadmap

Roadmap

Status as of 2026-05-28. Linear is the authoritative tracker — this doc reconciles what’s actually in the code with the planning material in _archive/product/taikan-product-roadmap.md (which is much older) and the strategic framing in _archive/product-direction.md.

Conventions in this doc:

  • ✅ Shipped (in main, customer-visible).
  • 🔨 Active development.
  • 🟡 Near-term (next 1–3 months).
  • 🔵 Longer-term (3–9 months).
  • ⛔ Deferred / explicitly not building soon.

Issue IDs (FIT-XXX) link to the Linear backlog. When a code reference is given, treat that as the canonical source.


Shipped recently (last ~2 months)

| Area | What | Notes | | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ----------------------- | | ✅ Spotter Phase 1 | Coach-only AI assistant with tools, RAG, conversation history, rate limit, audit. | apps/api/src/ai/agent/. Per-turn cost + cache hit ratio tracked in PostHog. Tier-gated. | | ✅ Push notifications | Native push via Expo to coach/owner devices for assignments, messages, announcements. | libs/db/src/lib/schema/device-tokens.ts, apps/api/src/push-notifications/. BullMQ-driven fan-out. | | ✅ Forms engine — compliance | Hebrew signed PDF flow (FIT-158, FIT-176). Single-use signing link, 7-day TTL, immutable R2 bucket. | apps/api/src/forms/, libs/db/src/lib/schema/forms.ts. See FIT-184 spike comment for design. | | ✅ Forms engine — check-in | Recurring coach check-ins, scheduled → sent → answered → reviewed. | Same module. FIT-183. | | ✅ Onboarding auto-issue of compliance forms | When a new member joins, the configured compliance forms auto-issue. | apps/api/src/forms/forms.service.ts (Onboarding auto-issue block, FIT-176). Uses EventEmitterModule. | | ✅ Cardcom integration | Platform-billing (B2B) + member-billing provider option. | apps/api/src/payments/, PLATFORM_BILLING_* env. | | ✅ Morning provider | Israeli invoicing + payments (formerly GreenInvoice). | Same module; sandbox + prod URLs configurable. | | Cancellation notice window | A cancellation is a notice, not a request — no owner approval step. Staff record the member’s notice on the dashboard; there is no self-serve cancel on web or mobile. Retention cases, SLA escalation and digest, cancellation-form prompting, provider standing-order cancellation and final settlement are always-on under existing eligibility and idempotency rules. Presale plan swap and cancellation analytics remain unchanged. | apps/api/src/subscriptions/retention-case.service.ts, subscriptions-plans/behavior.md. Current member terms are accepted through the existing legal gate; Israeli counsel review is a launch prerequisite. | | ✅ Manual refund tasks | Auto-created when refunding through manual-capability providers (e.g. Morning). | taskType: manual_refund, transactionStatus: refund_pending. | | ✅ Course delivery mode | Purchasable programs with sequential or open curriculum. | delivery_mode = 'course', course_configs, course_entitlements. | | ✅ Multi-domain minisites | Per-org custom domains via Vercel domain API. | apps/minisites/, VERCEL_TOKEN/VERCEL_MINISITES_PROJECT_ID env. | | ✅ Arbox + CSV import | Per-phase importer (plans → members → enrichment → done). | apps/api/src/import/, libs/db/src/lib/schema/imports.ts. | | ✅ Per-cell assignment kinds | Coaching grid cells can be workout | rest | note (FIT-159). | assignment_kind enum. | | ✅ Program templates | Reusable multi-week structures (FIT-74). | libs/db/src/lib/schema/program-templates.ts. Excludes course mode. | | ✅ Pgvector + embeddings | Voyage-multilingual-2 embeddings for exercises, workouts, programs, member profiles. | libs/db/src/lib/schema/_pgvector.ts, apps/api/src/ai/embeddings/. Degrades gracefully without VOYAGE_API_KEY. | | ✅ Migration safety (post-incident) | Strict-monotonic _journal.json when rule documented after 2026-04-18 outage. | See CLAUDE.md “Database Policy” + architecture/database.md. |


Active development

AreaIssueStatus notes
🔨 Forms validationFIT-176 follow-upsField-level validation polish (date pickers, multi-select, conditional questions). Renderer mostly there; some inputs need work.
🔨 Audit log surfacingFIT-20The audit_logs table exists and captures select admin writes. The cross-cutting interceptor and admin-UI browser are not done. Trust-signal gap for paying customers.
🔨 Insights widgets(apps/api/src/insights/)Dashboard-overview widgets are partial — capacity utilization, lead conversion. Full analytics dashboard is the next wave.
🔨 Lead pipeline polishFIT-140 areaLead → trial → conversion task automation. Wired but edge cases (duplicate leads, status reversal) need work.
🔨 Cost dashboard (admin)(apps/api/src/admin/)Railway + PostHog cost surfaces wired; per-org cost breakdown still rough.

Near-term roadmap (1–3 months)

ThemeWhatIssue / area
🟡 WhatsApp (transactional)Twilio ISV middleware integration — booking confirmations, payment reminders, form delivery. Not direct Meta API.FIT-157 area
🟡 Analytics dashboard v1Monthly revenue, retention cohort, churn, class utilization. The “demo wow” piece.FIT-162 area
🟡 Email automationsWelcome series, follow-up, re-engagement; per-org Resend audience templates.FIT-24 area
🟡 Reports (operator)Monthly revenue/retention/churn export. CSV + PDF.
🟡 Spotter Phase 2 — member-facingA constrained member assistant (FAQ-style: schedule, PR lookup, plan status). Separate tool surface, tighter guardrails.
🟡 Refine programming delivery modesTighten schedule vs coaching UX based on actual usage.
🟡 Audit log completionFull interceptor + admin-UI browser. Closes FIT-20.FIT-20
🟡 Spotter cost/budget capsPer-org daily cost ceilings, surfaced to admin.

Longer-term (3–9 months)

ThemeWhatNotes
🔵 Native mobileStart with PWA hardening, evaluate React Native based on push + offline gaps. Member-first; coach later.
🔵 WhatsApp AI botSpotter on WhatsApp — true conversational interface, not just templates. Sits on the Twilio ISV pipe.
🔵 Advanced analyticsCohort retention, churn forecasting, member LTV.
🔵 Arbox migration toolMapping UI + dry-run + diff. Critical for studio segment switch costs.
🔵 Community surfacesFeed, reactions, comments — already in schema (feedItems, reactions) but UX is dormant. Will revisit if beta signal supports it.
🔵 Multi-locationSchema can carry multiple locations per org; UX, reporting, and staff per-location not yet built.Fewer than 5% of users need it today.
🔵 Payments expansionBit deeper integration, additional Israeli providers if demanded.

Deferred / not building

  • ⛔ Direct Meta WhatsApp Business API — stay on Twilio middleware until volume forces it.
  • ⛔ Enterprise SSO / SCIM.
  • ⛔ On-premise deployment.
  • ⛔ Custom API for individual customers.
  • ⛔ Nutrition coaching, gun ranges, tennis/paddle club software, anything outside core fitness ICP.
  • ⛔ Family / group memberships (Pro+ feature in old roadmap; deprioritized).
  • ⛔ Multiple-location complexity for orgs under 5 locations.

How to read the legacy planning docs

_archive/product/taikan-product-roadmap.md predates the current platform-tier model and uses different tier names (Starter / Studio / Pro). The shipped product uses lite | pro | elite — see libs/db/src/lib/schema/enums.ts: platformTier. Use the legacy roadmap for feature inspiration only; the tier matrix is no longer accurate.

_archive/product-direction.md (2026-04-17) remains a reliable strategic frame — the personas, the three pillars, and the GTM phasing are unchanged. The pricing numbers (₪249 / ₪499) are still aspirational.