BikeControl (SwiftControl)
Use Zwift Click, Zwift Play, Shimano Di2, or any Bluetooth controller with MyWhoosh, Rouvy, Zwift, and more. Free to try on iOS, Android, Windows, and macOS.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기📓 A local-only BJJ training journal: one tap to log class, open mat, drilling, comps and rounds; mat hours, sub ratios, a position graph and belt timeline. No account; data stays on your device.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A BJJ training journal that keeps everything on your phone. One tap starts a class, open mat, drilling session, comp or round, and you get clear ways to see your progress: mat hours, a week-by-week heatmap, subs for and against, where you get stuck, your techniques as a position graph, and your belt and stripe timeline.
Open the app → It's free, with no account and no ads, and it works offline.README 전문 보기 ↗A BJJ training journal that keeps everything on your phone. One tap starts a class, open mat, drilling session, comp or round, and you get clear ways to see your progress: mat hours, a week-by-week heatmap, subs for and against, where you get stuck, your techniques as a position graph, and your belt and stripe timeline.
Open the app → It's free, with no account and no ads, and it works offline.
matlog is a sibling of tinylog and uses the same template: one tap to log, easy to log late, patterns but never advice, and your data stays on your device. It's a static site on GitHub Pages; your log lives in your browser's IndexedDB, with a second copy in localStorage.
Logging
Train with intention: everything here lives in one Notebook (N), with tabs for Focus, Problems, Injuries and Reflections.
Technique library
Seeing progress
Delight
Checked on 2026-10-09 against each app's own site and App Store listing. Prices are US prices and change often. "—" means the site didn't say.
| App | Cost | Runs on | Account | Where your log lives | Coaching or advice | Source |
|---|---|---|---|---|---|---|
| matlog | Free | Any phone or computer (web app, installable) | No | On your device only | None: describes what you logged | Open (MIT) |
| BJJ Notes | Free; Pro $7.90/mo, $59.90/yr or $149 lifetime | iOS, Android | Yes | Their cloud (syncs devices) | AI insights, focus goals | Closed |
| BJJBuddy | Free; $5.99/mo or $39.99/yr | iOS, Android | — | — | Video picks "based on your stats" | Closed |
| BetterBJJ | — | iOS, Android | — | — | AI game plans, proficiency scores | Closed |
| MatTime | $9.99 lifetime | iOS (Android planned) | Yes (public profiles) | — | Streaks, weekly goals, gym leaderboards | Closed |
| Grapl | Free (10 roll logs); Pro subscription | iOS | — | — | AI coaching | Closed |
| GrappleKit | Free; Premium $6.99/mo | — | — | — | Round timer, playlists | Closed |
| Obsidian | Free for personal use; Sync $4/mo yearly or $5 monthly |
Where matlog fits: it's for someone who wants a fast, good-looking journal with real stats, without a sign-up, a subscription or a coach in the app.
| Phone | How |
|---|---|
| iPhone / iPad (Safari) | Share → Add to Home Screen → Add. |
| Android (Chrome) | ⋮ menu → Add to Home screen (or Install app). |
On iPhone, Safari can clear data for sites you haven't installed, so installing matters. The installed app keeps its own storage, separate from Safari's. If you started in Safari, use Settings → Export backup there and Import backup in the installed app.
Press ? in the app to see them all.
| Key | Action |
|---|---|
| C O D P R | Start / stop class, open mat, drilling, comp, round (with Shift: log a finished one) |
| U | Undo |
| G T V | Progress, technique library, paste a class note |
| N | Notebook (the tab you used last) |
| F B I K | Notebook → Focus, Problems, Injuries; round clock |
| S | Start / stop study |
| M | Copy the last 7 days as Markdown |
| , | Settings |
| Ctrl/⌘ K | Command palette: type a few letters to run any of the above, change the theme, back up, or jump to a technique |
Any link with ?do= logs something when opened, with the usual Undo. Settings → Shortcuts and Siri lists ready-made links to copy.
| Link | Does |
|---|---|
?do=log&type=open-mat&min=60 | Log a 60-minute open mat that just ended |
?do=toggle&type=class | Start or stop class (also open-mat, drilling, comp, roll) |
?do=log&type=class&min=90&gi=nogi&tech=knee cut,arm triangle | A finished no-gi class with techniques |
?do=log&type=roll&partner=Jo&belt=blue&sub=rnc&tapped=triangle&stuck=half guard | A round |
?do=log&type=roll&landed=knee cut&tried=berimbolo | A round where you landed a knee cut and went for a berimbolo |
?do=log&type=roll&from=side control&role=bottom | A positional round from bottom side control |
?do=log&type=roll&from=mount&role=bottom&goal=escape&got=2&theygot=1 | A situational round: you escaped twice, got held once |
?do=log&type=study&min=10&source=Half guard series | Ten minutes of study (not mat time) |
&ago=30 | It ended (or started) 30 minutes ago |
window.matlog (see llms.txt).Paste a class note (📋 Paste a note, or V) and matlog logs the session with its techniques, rounds, problems and injuries. You see what will be logged before anything is saved. Exports use the same format, so a copied week pastes straight back in, and it drops into Obsidian or any notes app.
## Class
- Date: 2026-10-08 18:00
- Length: 90m
- Gi: no-gi
- Topic: Half guard passing
### Techniques
- Knee cut pass
- Key detail: underhook the far arm first
- Shoulder post wrist grab arm drag
### Rounds
- Sam (purple, bigger)
- Started from: half guard bottom
- Goal: sweep or come up
- Got it: 2
- They got it: 1
- How it went: came up twice once I got the underhook
- Hit: armbar
- Tapped to: triangle
- Landed: knee cut
- Stuck: half guard
### Problems
- Got flattened in half guard
- Idea: knee shield first
### Injuries
- Left knee (minor)
- How: heel hook
- Training around it: no leg locks
### Notes
Anything else, as free text.
## Class starts a session (Class, Open mat, Drilling, Comp or Study); several can follow each other.### section is a list: one technique, round, problem or injury per bullet, with sub-bullets for its details. Situational rounds add Goal, Got it, They got it and How it went. Technique sub-bullets become notes on that technique (Key detail, Observation, Question, Source).With an AI. Got a voice memo or a messy note? In the Paste dialog, open The format and tap Copy prompt for an AI. Paste the prompt into ChatGPT or Claude with your notes, then paste the answer back into matlog. The prompt includes your own technique and partner names, so they match. Claude users can also add the skill in skills/matlog-note, and agents can read the same spec in llms.txt.
Everything stays in your browser: IndexedDB, with a second copy in localStorage. There are no accounts, servers or analytics, and the only network request is for fonts. Partner names never leave your device unless you export them.
Because the browser is the only copy, matlog reminds you to back up: every 7 days by default (3, 14 or 30 in Settings, or only every 30 new entries), with a Back up now button right in the reminder. On a phone it opens the share sheet so the file can go to Files, iCloud Drive or Google Drive. Importing a backup merges, so it also moves your log between devices.
Requires Node 24.
npm install
npm run dev # http://localhost:5173/matlog/
npm run check # typecheck + unit + end-to-end tests; run before committing
SCREENSHOTS=1 npx playwright test screenshots --project=chromium # refresh docs/*.png
| Stack | Vite + TypeScript (no UI framework), hand-written SVG charts and companion, vite-plugin-pwa |
| Storage | IndexedDB with a localStorage mirror; settings in localStorage |
| Unit tests | Vitest (jsdom), run in America/New_York to catch DST bugs |
| E2E tests | Playwright on Chromium, WebKit, an Android phone, iPhone layout, and the production build (offline) |
| Icons | scripts/icons.mjs renders one SVG mark to favicon.ico/PNG/SVG, the iOS touch icon, and Android 192/512 + maskable PNGs |
| CI / deploy | Every push runs the tests; main deploys to GitHub Pages only if they pass |
The plan, competitor notes and decisions log are in PLAN.md, and conventions for contributors (human or AI) are in AGENTS.md.
MIT © 2026 Sam Parmar
| Windows, macOS, Linux, iOS, Android |
| No (only for Sync) |
| Markdown files on your device |
| None |
| Closed (plugins are open) |
| Notes app or paper | Free | Anywhere | No | Wherever you keep it | None | — |