Changelog
Releases, improvements, fixes, and deprecations. Last update: August 10, 2026.
Messages from OLM arrive in your Messages tab instead of only as a notification, and you can reply to them.
Pre-written follow-up sequences for new leads, trials, and lapsed members — flip one on and it runs itself.
The blog gained guides on the 6-week challenge money model and speed-to-lead for martial arts gyms, and posts now point you to the matching free tool — savings calculator, challenge calculator, or schedule widget — right where it's useful.
Undoing a check-in now returns the pack credit you spent instead of losing it, and removing a family profile can no longer leave a membership quietly billing.
The public site now defaults to a light theme with a dark-mode toggle, and the homepage walks through six fresh screens of the real product.
Homepage redesigned around a single free-trial CTA, real product screenshots, and the savings calculator.
The Log tab now groups your training by week so classes never pile up — clear a whole week in a tap, talk through it out loud, and see your focus as numbers or a chart.
On any athlete's page you can now Follow them, and you'll get a notification the moment a new game-plan system attributed to them is published.
When you describe a game plan and let AI build the tree, it now echoes back what it understood, verifies the tree actually covers what you asked for, and lets you preview before saving.
The technique library now opens as one fast, scrollable list with one-tap category filters, and every position and move makes clear which ones actually have community footage behind them versus a plain search.
The app's home now leads with your session count and focus map side by side, followed by a 'Drill this' card that cross-fades through the newest technique videos the community has added.
The link we email you when you request a demo academy stays good for seven days and can be opened as many times as you like — reloading it, opening it on a second device, or retrying after a hiccup no longer says 'Magic link already used.'
The 'From the greats' section now leads with the athletes themselves — tap a card to see every featured system credited to that grappler, with photos and bios where we have them.
Learn from game plans modeled on elite grapplers — browse community-submitted systems attributed to athletes like Marcelo Garcia, get recommendations matched to what you've actually been logging, and add any featured system straight into your own library.
Forgot to log a session? Free-form journal entries now default to today but let you set an earlier date, and you can change the date later from the entry's edit screen.
About 30 minutes after your class ends, we'll send a friendly reminder to log what you learned — so your training journal captures the details while they're still sharp.
A new set of free gym-owner tools (cost calculator, challenge revenue calculator, embeddable schedule widget), a both-sides referral program for gyms on OLM, and a pricing page that spells out exactly what the one-time setup covers.
New members are greeted with a short, skippable setup that captures your martial art and current belt up front, so your dashboard is personalized from your very first visit.
The technique library now shows how many community videos each position has before you tap in, and you can jump straight into our Discord from your profile.
Child (dependent) profiles now keep their own systems and a true-empty start, and the AI training analysis better understands how athletes actually describe their rolls.
The Help & support screen now has a Contact support form — describe what you need help with and our team replies to your account email, usually within a business day.
Two new public pages are now live and crawlable — a Train Hub showcase of the portable AI training suite, and The BJJ Meta with trending techniques and training-data insights.
In Settings → Theme you now pick a brand theme for your member app and, separately, one for your admin portal — by clicking a preset, no color codes to fiddle with.
The "Ready to go live?" button on the demo banner now sends your request straight to the OLM team — no email app required — so we can activate your account and get you set up.
A new Embed tab on the Classes page gives you a copy-paste snippet that drops a live, always-up-to-date class schedule onto your own website — themed to your brand color and updated automatically whenever you change a class.
The Competitions tab now fills itself with real upcoming grappling tournaments from IBJJF, NAGA, and AGF, refreshed daily, with a tap-through to register on the organizer's own page.
Admins can now schedule women's-only classes, remove (and restore) members in one click, set belts with a sleeker visual picker, and run a curriculum built around their gym's art — all on a refreshed light/dark portal.
The app now tracks the injuries and surgeries you're working around — and your AI training suggestions route around them — plus systems trees got a tap-to-drill view that's far easier to read on a phone.
The blog is now reachable straight from the site navigation, and we've added a set of in-depth, screenshot-driven guides on gym check-in and attendance tracking for martial arts academies.
Every technique now has its own community video shelf: save your favorite YouTube breakdowns, submit the ones you swear by, and upvote the best so the strongest video rises to the top — curated across the whole OLM community, not just your gym.
The mobile app got a full visual refresh: a frosted-glass navigation bar with a dedicated check-in button, a color-banded home header with gym and profile switching in one place, slimmer buttons everywhere, and the official OLM mark on the app icon, splash screen, and boot animation.
You can now choose a personal accent color for the app. By default it follows your gym's brand (or OLM's when you haven't joined one), but you can override it with one of nine presets — your pick follows you across every gym and works before you've joined one.
Training notes can reference the people you train with. A new privacy setting lets you opt out of being suggested as a training partner — notes are always private to their author and never shown to the person they describe.
The "new system" flow is no longer a blank canvas. Describe a position and your plan ("Half guard top, I want to pass, react to underhook + knee shield + sit-up") and AI drafts the entire decision tree — root + branches + reactions — in one shot. You land on the populated tree ready to refine.
Every node in your game-plan tree now has a ✨ Suggest button. Tap it and OLM proposes 2–4 likely opponent reactions and the response for each — seeded by the techniques you've actually been working in your rolls — so you can build a full decision tree without staring at a blank canvas.
The mobile training suite got sharper. Rolls and the journal merged into a single Log stream, the Mastery map became a forward-looking Coach that tells you exactly what to drill next, the training journal now works without joining a gym, and "You vs the world" is on by default so you can see how your game stacks up across the sport from day one.
Homepage prospects now go from form submission to a fully-seeded admin dashboard in one click — no Clerk sign-in screen, no re-acceptance of terms, no dead-ends if a stale session is active. Super admins can promote a demo org into a real customer in one move that auto-fires the itemized setup-fee invoice. Member-facing Stripe invoices now carry a per-plan "what's included" line so customers see exactly what they're paying for.
Admins can flip auto-grant trials on/off per org from settings (defaults to on). The mobile dashboard's waiver prompt is now dismissible with an X — the soft nudge clears, the check-in hard gate stays. The dismissal is per-doc-id, so a NEW required document the gym adds later re-surfaces the card.
Members now get their gym's free trial automatically the moment they join — no Skip button required. The mobile dashboard surfaces a free-pass CTA, trial countdown, grace-period nag, and an unsigned-waiver prompt as cards at the top, so members never get surprised at check-in time.
Three onboarding-flow changes ship together: members who hit the billing screen can tap Skip for now to start a free 7-day trial and check in immediately, member invite emails include real App Store + Play Store badges so recipients can download the app from the same email, and a small Powered by OLM signature now sits under the sign-in and pre-org screens so users always see the platform behind their gym.
All app and email links — terms, privacy, help, support, contact, billing, deep links — now point at trainolm.dev. Existing mobile installs continue to work; the iOS Universal Link and Android App Link configs were updated to the new domain in the same change.
For members who train at multi-location gyms, the dashboard's Today's Classes now defaults to the location you actually train at — derived from your last 3 check-ins — instead of showing every location at once. The full schedule is still one tap away on the Check In tab.
Checking in to any class that had a capacity set was failing with a database error. The capacity-locking query has been rewritten so members can check in normally.
The first phone in the white-label hero fan now shows an iOS home screen with the gym's branded app icon installed among muted placeholder apps — re-labeled "01 · installed" — to make the real-download / white-label moment unmistakable.
Admins can now mark a billing plan as Private when creating it. Private plans are hidden from the member-facing list and can only be subscribed to by members the admin has explicitly invited via the new "Private plan invite" picker on the member detail page. Useful for friends-and-family rates, scholarship tiers, founding-member deals, or any one-off arrangement.
Three new DB-backed public pages — a library of 378 Brazilian Jiu-Jitsu 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 for AI search and Google.
Added `GET /api/health` returning DB + Redis probe results, commit SHA, and env. 200 when all deps respond, 503 if any required dep is degraded. Redis probe gracefully passes when Upstash isn't configured (dev / preview). No auth — pingable from UptimeRobot, Better Stack, Pingdom, etc.
Added Playwright spec files for the invite-member, refund, CSV-export, and Stripe-Connect-onboarding admin flows. Specs are smoke-level (no real Stripe / mailbox dependencies) and skip gracefully when seed data isn't available. Covers OLM-17/18/19/20 manual-test checklist surfaces.
Three urgent security fixes — drop-in checkout now enforces the KIDS/ADULTS rank-track gate, ensureUser pulls the verified email from Clerk instead of trusting client input, and the dev OTP bypass requires both NODE_ENV !== production AND an explicit ALLOW_DEV_OTP_BYPASS=1 opt-in.
Find-a-gym list now only advertises a drop-in price for gyms that actually have an upcoming SCHEDULED class. Gyms with drop-ins enabled but no class on the books no longer show a price for a class that doesn't exist.
Two fixes to the drop-in eligibility logic introduced earlier today, plus removal of the now-unused requiresDropInApproval setting.
Removed the duplicate 'Drop in for a class' option from the Join Request dialog. Drop-ins are paid self-service via the gym card's Drop-in button; the dialog is now exclusively for full-membership requests. Message field is also now optional.
The Drop-in CTA now surfaces only when there's actually a SCHEDULED class today in the gym's local timezone. When a gym allows drop-ins but has nothing on the schedule, the gym card and join sheet show a clear 'No class today' state instead of a dead-end Drop-in button.
Drop-ins now work like event tickets — each paid drop-in is a ticket with three states (Upcoming, Past, Refunded). Admins get a dedicated payments page; members get a 'My visits' screen across both pre-org and in-org contexts.
Two more layers on /curriculum — a balance-view radar chart (filterable 1/3/6/12 month windows) and a preset library that scaffolds weeks/months from canonical BJJ curricula.
Curriculum got a real spine — a Mon–Sun weekly calendar with drag-to-reschedule, plus a coverage heatmap that tells you what you've been ignoring.
A simple, opinionated v1: one paragraph per month telling members what your gym is working on. Available to every org out of the box.
Every /compare page now calls out the consumer-facing OLM app as a discovery channel for gyms, and clarifies what 'true white-label' actually means (members never see OLM branding).
Two new competitor breakdowns — Wodify (per-location SaaS with HYROX/Two-Brain co-marketing) and BJJLink (BJJ-only flat-rate, closest philosophical competitor). Honest tradeoffs included.
Platform fees now scale linearly with what your members actually pay. Pricing stays $0/mo subscription, 2% on memberships ($2 min), 3% on add-ons, $0 POS — but with no monthly ceiling.
Per-competitor compare pages, 30 BJJ city landing pages, llms.txt for AI crawlers, FAQ blocks across discipline / feature / compare pages, and a /blog with 6 launch posts.
Removed the $150/mo SaaS subscription and the /subscribe gate. Platform revenue is now pure per-transaction.
Belt promotions and rank records are now keyed by (user, discipline) instead of (user, gym), so members carry verified lineage across OLM academies.
Guardian accounts can now manage one or more dependent (kid) profiles — each with their own training data, but billing rolls up to the guardian.
New AI Monitor surface that flags members trending toward cancellation 14 days early based on attendance drop-off relative to baseline.
Members can log post-class training as tags or voice notes; OLM transcribes and maps to an 8-axis radar chart per discipline.
Onboarding flow now creates a Stripe Connect Standard account for every gym, replacing the legacy platform-account model.
Organizations can now run multiple physical locations under one Stripe billing setup, each with its own class schedule and instructor pool.