Roadmap

What's next. What just shipped.

Planned goals, work in progress, and recent releases. Updated as work lands; the changelog has the chronological history.

0 in progress·8 planned·19 shipped

Planned

  • PlannedContentAdded Apr 29, 2026

    Customer testimonials page (/customers)

    Live customer testimonials with named attribution, photo, and metrics. Review + Article JSON-LD per entry. Major E-E-A-T signal for AI search citability. Blocked on having a first reference customer (likely Park City BJJ) willing to be quoted.

    seotrusttestimonials
  • PlannedContentAdded Apr 29, 2026

    Speakable schema for FAQ blocks

    Voice-search optimization. Add Speakable JSON-LD to discipline / feature / compare FAQ sections so Google Assistant and Siri can read answers aloud.

    seovoice-search
  • PlannedFeatureAdded Apr 29, 2026

    Newsletter signup capture

    Email-list capture for prospects who aren't ready to sign up. Powered by Resend. Adds an owned channel for content syndication.

    marketingemail
  • PlannedInfraAdded Apr 29, 2026

    Lighthouse pass on / (home) and /for/bjj

    Run Lighthouse against the live deployment, fix INP / LCP / CLS regressions on the marketing surface. Marketing pages have heavy gradient and animation; they're a likely Core Web Vitals risk.

    performancecore-web-vitals
  • PlannedContentAdded Apr 29, 2026

    Wrestling city pages (/for/wrestling/[city])

    Add 6-8 wrestling-club city landing pages (Iowa City, Lincoln NE, Stillwater OK, State College PA, Columbus OH, Stanford CA, etc.).

    seocitieswrestling
  • PlannedContentAdded Apr 29, 2026

    Real Organization sameAs URLs

    Replace placeholder slot in Organization JSON-LD with real Twitter / LinkedIn / GitHub URLs once OLM social profiles are live. Currently omitted to avoid shipping 404 URLs.

    seotrust
  • PlannedContentAdded Apr 29, 2026

    Real founder bio on /about

    Replace placeholder name + sameAs in /about's FOUNDER constant with real founder name, real LinkedIn / Twitter, and real martial arts credentials. Powers the Person JSON-LD.

    seotruste-e-a-t
  • PlannedPlatformAdded Apr 29, 2026

    trainolm.com

    Public status page on a separate subdomain. Trust signal for AI search systems and users. Likely powered by statuspage.io, Instatus, or Better Stack — not in-repo.

    trustinfra

Shipped

  • ShippedContentShipped May 14, 2026

    Public BJJ knowledge surfaces (/techniques, /creators, /athletes)

    Three DB-backed public pages: a library of 378 BJJ techniques across 38 positions, a directory of 20 instructors and channels, and a directory of 211 notable competitors seeded from Wikidata + Wikipedia. Heavily cross-linked, ISR-revalidated daily, with schema.org HowTo / Person / BreadcrumbList markup. Adds ~720 URLs to the sitemap and advertises the new surfaces via llms.txt and llms-full.txt.

    See in changelog →

    seogeocontentbjj
  • ShippedFeatureShipped May 4, 2026

    Curriculum: coverage radar + preset library

    Balance-view radar chart (1/3/6/12 month filterable) on /curriculum, complementary to the heatmap. Plus a preset library — "Fundamentals of Self-Defense (White → Blue)" (81 techniques) and "Blue → Purple (Pedro Sauer)" (88 techniques) — surfaced in the focus dialog so admins can scaffold a week or month with one click.

    See in changelog →

    coachinganalyticspresets
  • ShippedFeatureShipped May 4, 2026

    Curriculum: weekly calendar + coverage heatmap

    Tier A curriculum tool: Mon–Sun weekly calendar with drag-to-reschedule, per-discipline category tagging, and a 12-week coverage heatmap with gap report. Pulls from monthly + weekly tags so partial adherence still produces useful coverage data.

    See in changelog →

    coachinganalyticsmembers
  • ShippedFeatureShipped May 4, 2026

    Curriculum: monthly focus

    Simple v1 of a curriculum tool: one paragraph per month telling members what the gym is working on. Available to every org. Designed around how gyms actually behave (set an intent, partially adhere) rather than a rigid lesson-plan checklist. Available on the admin sidebar and as a dashboard card + dedicated screen on mobile.

    See in changelog →

    coachingmembers
  • ShippedFeatureShipped Apr 29, 2026

    Interactive pricing calculator

    Client-side calculator at /pricing/calculator that takes member count + revenue and shows OLM cost vs Mindbody / PushPress / Glofox / Zen Planner side-by-side.

    See in changelog →

    seolead-gen
  • ShippedContentShipped Apr 29, 2026

    City pages for muay thai, judo, karate

    Extended /for/[discipline]/[city] to muay thai, judo, and karate disciplines with 8 unique city entries each (LA, NYC, Chicago, Boston, Seattle, etc.).

    See in changelog →

    seocities
  • ShippedContentShipped Apr 29, 2026

    Internal linking on feature + discipline pages

    Added structured `relatedLinks` field to feature and discipline data files. Each page now renders 3-6 contextually relevant cross-links to features, blog posts, comparisons, and the pricing calculator.

    See in changelog →

    seointernal-linking
  • ShippedFeatureShipped Apr 29, 2026

    Custom /not-found page

    Branded 404 page with popular-routes block, contact CTA, and noindex meta. Replaces the default Next.js 404.

    See in changelog →

    uxseo
  • ShippedContentShipped Apr 29, 2026

    Public roadmap (/roadmap)

    Data-driven roadmap page with goal status, target dates, and shipped-date tracking. Paired with a Stop-hook reminder when the changelog is updated without checking the roadmap.

    See in changelog →

    trusttransparency
  • ShippedContentShipped Apr 29, 2026

    Public blog at /blog

    /blog index + /blog/[slug] with 6 launch posts (switching guides, AI Monitor explainer, Stripe Connect deep dive, training journal, portable belt history, drop-in marketplace).

    See in changelog →

    seocontent
  • ShippedContentShipped Apr 29, 2026

    FAQ blocks across discipline / feature / compare pages

    5-6 unique FAQs added to every discipline, feature, and competitor comparison entry. FAQPage JSON-LD wired through page templates.

    See in changelog →

    seoschema
  • ShippedContentShipped Apr 29, 2026

    Public changelog (/changelog)

    Data-driven changelog page grouping releases by month with type tags (release / improvement / fix / deprecation). ItemList JSON-LD.

    See in changelog →

    transparency
  • ShippedContentShipped Apr 29, 2026

    /about with Person schema

    Founder bio page with Person + AboutPage JSON-LD. Placeholder fields until real founder identity is published.

    See in changelog →

    e-e-a-ttrust
  • ShippedContentShipped Apr 29, 2026

    30 BJJ city landing pages

    /for/bjj/[city] for 30 major US BJJ markets (Austin, San Diego, NYC, LA, Chicago, etc.) with substantial unique copy per city.

    See in changelog →

    seocitiesbjj
  • ShippedContentShipped Apr 29, 2026

    Per-competitor pages (/compare/[slug])

    Dedicated indexable pages for OLM vs Mindbody, PushPress, Glofox, Zen Planner, Kilo, GymRocket. Tabbed /compare kept for browsing UX.

    See in changelog →

    seocomparisons
  • ShippedContentShipped Apr 29, 2026

    /llms.txt + /llms-full.txt

    Route handlers serving llms.txt index and full content reference for AI crawlers (ChatGPT, Perplexity, Claude). Auto-syncs from canonical content sources.

    See in changelog →

    ai-searchseo
  • ShippedPlatformShipped Apr 20, 2026

    Pay-as-you-grow pricing model

    Removed monthly subscription, replaced with 2% on memberships ($2 min) / 3% on seminars / $0 POS. platform_subscriptions table + /subscribe gate removed.

    See in changelog →

    billingpricing
  • ShippedFeatureShipped Apr 15, 2026

    Portable belt history + per-discipline ranks

    user_ranks keyed by (user, discipline); belt_promotions append-only ledger with issuing org + promoter. Members carry verified lineage across OLM academies.

    See in changelog →

    data-modelportability
  • ShippedFeatureShipped Apr 5, 2026

    AI Monitor — 14-day churn prediction

    At-risk member detection based on attendance drop-off relative to baseline. Org-level pattern detection separates seasonal dips from individual signals.

    See in changelog →

    airetention