My Flow Active
{{ l.label }}
{{ pathMsg }}
{{ peek.emoji }}
{{ peek.name }}
{{ peek.typeLabel }}
Add a technique
Drops a new node into your graph
Name
Type
Gi / No-Gi
Connects to {{ addCount }} selected
{{ note.id }}
{{ note.emoji }}
{{ note.name }}
{{ bd.label }}
[ reference photo ]
Reference: {{ note.name }}
Why it works
{{ note.why }}
{{ noteBody }}
Links & Backlinks
Sensory Checkpoints — What you should FEEL
{{ c.text }}
Common Errors & Fixes
✗ {{ er.e }}
→ {{ er.f }}
Decision Tree — If / Then
IF
{{ d.cond }}
THEN
{{ d.ans }}
Where are you with this? — DRILL
{{ curStage.name }}
{{ curStage.blurb }}
Due for review — tap a DRILL stage to log a fresh session.
Personal Notes
Sensei Context
{{ note.name }} — {{ note.senseiHint }}
{{ m.text }}
Film Room — clips for this technique
{{ nc.platIcon }}
{{ nc.label }}
{{ nc.platform }}
Open ↗
🌊
My Flow
Your personal system — what flows naturally
Style
Create personal chain
Building: {{ buildingChainName }}
{{ cp.emoji }}{{ cp.name }}
API key, backup, and app settings →
Primary Positions — The core of your game
Target Submissions — What you actively hunt
My Personal Chains
{{ ch.name }}
{{ cp.emoji }}{{ cp.name }} {{ cp.arrow }}
Sensei Analysis
🥷
Sensei
Your world-class instructor. Knows your Flow.
🔑
Sensei needs an API key
Free, no card required — takes about 2 minutes.
Free tier · no credit card · key stays on your device
🥷
The Sensei is ready
30 years of experience. Ask anything.
Step {{ wizardStep }} of 2
Connected
Get a free Gemini key
Sensei runs on Google's Gemini API. It's genuinely free — no credit card, no trial that expires — you just need a key tied to your Google account.
What you'll see over there
1
If asked, sign in with your Google account
2
Tap Create API key
3
Under "Name your key," type Flowverse BJJ — so you can find it later
4
Under "Choose an imported project," tap Create project → name it Flowverse BJJ
5
Tap Create key — if Google shows an error, just tap it again
Paste it in
Your key starts with AIza followed by a long string of letters and numbers. Copy the whole thing — not the project name, not your Google account.
{{ wizardDraftHint }}
Free tier basics: plenty of requests per day for personal training use, resets daily. Google may use free-tier conversations to improve their models — switch to a paid Anthropic key in Settings later if that matters to you. Exact current limits at aistudio.google.com/rate-limit once signed in.
{{ wizardError }}
Sensei is ready
30 years of experience. Ask anything.
{{ m.avatar }}
{{ m.text }}
🥷
Chains & Systems
Proven sequences from the world's best
{{ c.name }}
{{ cp.arrow }}
My Personal Chains
{{ c.name }}
{{ cp.arrow }}
🔍 Path Finder
Find the shortest connection between any two techniques and explore it as a guided sequence.
Progress & Journal
Le journal — track every roll
My Rank
{{ userBeltName }}
Stripes
{{ beltStripes }}/4
{{ timeAtRank }} at this rank
Promotion history
{{ bh.belt }}{{ bh.stripes }} {{ bh.date }}
Your belt is your one overall rank. Each technique tracks its own DRILL stage — independent of the belt you wear.
{{ s.num }}
{{ s.label }}
Log a Sparring Session
Techniques drilled
{{ cp.emoji }}{{ cp.name }}
Technique Mastery — DRILL distribution
{{ b.name }} {{ b.count }}
Sparring Log
{{ e.date }} ▲ {{ e.caught }} ▼ {{ e.submitted }} ↔ {{ e.passed }}
{{ e.notes }}
🎥
{{ sc.note }}
Watch ↗
Session Journal
🎬
Film Room
Clips you spotted — paste a link, drill it later
{{ clipCount }}
Saved
{{ clipToTry }}
To Try
{{ clipTested }}
Tested
Save a Clip
🎞️
No clips yet
Spot a slick technique on your feed? Paste the link above and tag it to a technique to find it later.
{{ c.platIcon }}
{{ c.label }}
{{ c.platform }} {{ c.techLabel }}
Open ↗
Dilemmas
Decision points you haven't resolved yet
{{ dilemmaCount }}
⚔️
No open dilemmas
Add a dilemma below — 2, 3, or more options. When you've committed to one, mark it resolved.
{{ d.title }}
{{ d.situation }}
{{ o.text }}
{{ d.notes }}
+ Add Dilemma
Resolved ✓
{{ d.title }}
Resolved · {{ d.defaultChoice }}
Decision Quiz
{{ quizProgress }}
No decision trees found for this technique. Try another.
{{ quizNode.emoji }}
{{ quizNode.name }}
If…
{{ quizIf }}
Then…
{{ quizThen }}
Positional Sparring Prompt
{{ randomDrillA.emoji }}
{{ randomDrillA.name }}
Start here
{{ randomDrillB.emoji }}
{{ randomDrillB.name }}
Get here
Injury / Load Tracking
Track niggles and rehab so you train smart
Log Injury
{{ inj.joint }}{{ inj.side }} {{ inj.date }}
{{ inj.note }}
Training Partners
Track your regular training partners
Add Partner
🥋 {{ ptn.name }} {{ ptn.weight }}
{{ ptn.style }}
{{ ptn.notes }}
Curriculum
Belt-by-belt progression — personalize your path
{{ cb.label }}
{{ cb.nodeCount === 0 ? 'No techniques assigned — content coming soon' : cb.progress + ' / ' + cb.nodeCount + ' drilled' }}
CURRENT
{{ cn.emoji }} {{ cn.name }} {{ cn.stageName }}
Technique list for this belt is a TODO — Cowork content task pending.
Competition
Match log · weight tracking · opponent scouting
{{ compWins }}
Wins
{{ compLosses }}
Losses
⚖️ Weight / Goal
Current weight
Target / weight class
Competition goal
✅ Match Day Checklist
{{ ci.label }}
🥋 Log Match
{{ cm.result==='win' ? '🏆' : cm.result==='loss' ? '😤' : '🤝' }}
{{ cm.opponent }} {{ cm.result }}
{{ cm.date }} {{ cm.points ? '· ' + cm.points : '' }}
{{ cm.notes }}
🔍 Opponent Scouting
{{ cs.name }}
↑ {{ cs.strengths }}
↓ {{ cs.weaknesses }}
{{ cs.notes }}
Settings
App configuration & data management
🥷 Sensei AI
Provider
Gemini API Key
Model: gemini-3.5-flash. Free tier available at Google AI Studio (aistudio.google.com). Note: free-tier requests may be used by Google to improve their models — use a paid tier if privacy matters to you.
Anthropic API Key
Model: claude-haiku-4-5. Pay-per-use billed to your Anthropic account. No free tier — each message costs a fraction of a cent.
⚠️ Not yet available
In-browser LLM (WebLLM / Gemma) requires WebGPU, which isn't supported on iOS Safari or most older Androids. Model downloads are also 1–4 GB — impractical at a gym. This option is stubbed pending broader WebGPU availability. Use Gemini (free tier) instead.
🔄 Cloud Sync (GitHub)
{{ ghSyncMsg }}
Last sync: {{ ghLastSyncLabel }}
Pulls if remote is newer, pushes otherwise. Token needs repo write scope. The target repo should be private — separate from the app's public source repo.
💾 Backup & Restore
Saves a JSON file with your progress, notes, chains, dilemmas, and settings. Keep it somewhere safe — restoring replaces what's on this device.
⚠ Your last change couldn't be saved (storage may be full or restricted). Back up now.
⚠ Danger Zone
This permanently deletes all your progress, notes, chains, and session history from this device. Export a backup first.