How-to & troubleshooting
Everything you need to get up and running with Session for Tennis v3.
Getting started
Complete this checklist in your first week to get the most out of v3.
- 1Connect Square — Settings → Square Integration → Connect. Your lesson packages and subscriptions bill through your Square account.
- 2Set your Coach PIN — Settings → Coach PIN. Used by the NFC/QR kiosk and for PIN check-in fallback.
- 3Add your first client — Clients → Add Client. Enter name and email; phone is optional.
- 4Order NFC fobs — We recommend NXP NTAG213 fobs from GoToTags or ShopNFC. Assign them in Clients once they arrive.
- 5Try video review — Open any client → Sessions → select a session with video → Review & annotate.
- 6Try voice dictation — During any session, tap the mic button to dictate notes hands-free.
- 7Invite your first student to the PWA — From a client profile, send the magic-link invite. They get a read-only app view of their sessions and messages.
NFC + QR check-in
Session for Tennis v3 supports contactless check-in via NFC fobs or printed QR codes. Clients tap or scan, the platform matches the fob to their profile, and the session package auto-decrements.
1. Get fobs
We recommend NXP NTAG213 fobs. Order from GoToTags or ShopNFC. One fob per client.
2. Assign fobs to clients
Go to Clients, open a client profile, then open the Fob Assignments panel. Tap “Assign new fob” and scan or enter the fob UID. The client can now use that fob to check in.
3. The scan flow
Open the Check-in Kiosk at /scan on a phone or tablet. When a client taps their fob (Web NFC on Android Chrome) or scans a printed QR code, the platform looks up the fob UID, verifies the client against their active package, decrements one session, and logs the check-in timestamp.
What happens when a package is depleted
If the client has no sessions remaining, the scan screen shows a “No remaining sessions” message and does not decrement. The coach is notified via the dashboard. The client keeps their fob — it becomes active again when a new package is assigned.
iOS caveat
Web NFC is only supported on Android Chrome. On iOS, use the QR fallback: print the per-client QR from their profile and have them scan it with the Camera app.
Video review — on-frame drawing
v3 replaces AI skeleton tracking (v2.5) with on-frame drawing tools and stroke-path presets. You draw directly on a paused video frame.
Opening the review screen
Client profile → Sessions → select a session → “Review & annotate” under a video thumbnail. The review screen opens with the video paused at frame 0.
Drawing tools
The toolbar has four tools: Line, Arrow, Circle, and Square. Select a tool, then click-drag on the video to draw. Color picker and stroke width are in the toolbar. Undo removes the last stroke.
Stroke-path presets
Below the toolbar is the presets bar with four one-click shapes: Topspin, Slice, Flat, and Kick serve. Each drops a Bézier curve approximating that ball-flight path onto the frame. Drag the handles to adjust.
Saving and sharing
Click Save annotation to write the drawing data to the session record. The annotated frame is visible to the client in their Student PWA. Click Export frame to download a PNG for sharing externally.
Voice notes
Dictate session notes hands-free using your device microphone. No backend processing — transcription happens in the browser via the Web Speech API.
How to use it
During any open session, tap the mic icon in the session notes panel. Speak naturally — the transcript appears in real time. Tap the mic again to stop. The transcript is appended to the session notes field and auto-saved.
Browser support
Fully supported on Chrome (desktop and Android) and Safari 15+ (iOS/macOS). Firefox does not support the Web Speech API — the mic button will not appear. Edge on Windows works via Chrome’s engine.
On Chrome, audio is processed by Google’s speech service — only the resulting text transcript is stored in Session for Tennis. Audio never leaves your device or reaches our servers.
Where notes live
Voice-dictated text is stored alongside manually typed notes in the session record. Both appear in the client’s session history and are visible to the client in the Student PWA.
Video upload
Specs
- Max duration: 60 seconds
- Max resolution: 720p (1280×720)
- Format: H.264 / MP4 (auto-compressed client-side)
- Bitrate: 1.5 Mbps target
How to upload
Open a session → tap the video drop-zone or camera icon. On desktop, select a file. On mobile, you can record directly or pick from the camera roll. The file compresses in-browser before uploading — you’ll see a progress bar during compression and upload.
iPhone notes
iOS Safari does not support SharedArrayBuffer, which is required for in-browser ffmpeg.wasm compression. On iPhone, the raw file is uploaded and re-encoded server-side via a Firebase Cloud Function. Upload may take slightly longer on iOS.
Group lessons
Create group sessions with a configurable minimum-seat threshold. The session auto-confirms once enough students enroll.
Creating a group session
Group Lessons → New Group Session. Set title, date, time, capacity, price per seat, and minimum seats. Save. The session is in “Pending” state until the min-seat threshold is reached.
Enrolling and dropping clients
Open any group session → Roster tab. Search for a client and click “Enroll.” To remove, click the X next to their name. The session auto-confirms when enrolled count reaches the minimum. Enrollment after the minimum is reached adds to the roster immediately.
Min-seat threshold
If minimum seats are not filled before the session date, you can manually confirm anyway or cancel. Cancellation sends a notification to enrolled clients.
Messaging
Inbox
All client conversations appear in Messages (sidebar). Each client has their own thread. Conversations are sorted by most recent message. Unread counts appear in the sidebar badge.
Digest timing
Students receive a daily email digest of coach messages at 7 AM PT. They cannot reply in v3.0 — student replies are a v3.1 feature.
Student read-only (v3.0)
In the current release, students view messages in the Student PWA but cannot send replies from the app. All student communication in v3.0 flows through the email digest. Direct student reply is on the v3.1 roadmap.
Student PWA
Students get a read-only Progressive Web App — no separate download, works in any mobile browser.
Magic-link sign-in
Students authenticate via email magic link — no password. From a client profile, click “Send student invite.” The client receives a sign-in link. On first click, their Supabase Auth account is created and linked to their client record by email address.
Installing on iOS
On iPhone: open tennis.jkcreative.store in Safari → tap the Share icon → “Add to Home Screen.” The app icon appears and runs in standalone mode. iOS does not show an install prompt automatically — direct students to these steps.
What students can see (v3.0 scope)
- Their session history and notes
- Annotated video frames from their coach
- Messages from their coach (read-only)
Students cannot book, pay, or reply to messages in v3.0.
Academy — multi-coach
Championship tier includes 5 coach seats. Additional seats are $25/coach/month.
Inviting sub-coaches
Academy → Coaches → Invite Coach. Enter their email. They receive a 7-day invite link. On acceptance, they sign in with Firebase Auth and are added as a sub-coach under your account.
Seat billing
Your Championship plan includes 5 coach seats. Additional seats are billed at $25/seat/month, added to your next Square subscription charge. Current seat usage is visible on the Academy → Coaches page.
Roster assignment
Academy → Coaches → select a sub-coach → Roster. Add or remove clients from their roster. Sub-coaches only see clients assigned to them — not the full academy roster.
Billing
Plan pricing
Deuce $20/mo. Advantage $65/mo or $680/yr. Championship $125/mo or $1,310/yr. Annual plans save ~13%.
- Annual billing is a single payment at the start of each year.
- Monthly billing renews automatically until you cancel.
Upgrading or downgrading
Go to Billing in the sidebar. Upgrades take effect immediately. Downgrades apply at the end of the current billing period.
Migrating from CoachNow?
We have a step-by-step migration guide for moving your student list, lesson history, and notes. Email tennis@jkcreative.store to request it.