Start a new game to track your scores and build your game list.
Bowlers drag to reorder
Game Type
Venue
Lane Number
Games
Lane Condition
Date
Time
Step 1 of 3
Select Game & Photo
Which game does this photo show?
Select bowling screen photo
Works with Bowlarama Wetherill Park, QubicaAMF, Brunswick Sync screens
ℹ️ Secure AI import now runs through /api/gemini-ocr. Local file previews will not read photos until that backend endpoint is deployed with your secret key.
Reading your scores...
AI is analysing the photo
Step 3 of 3
Review & Confirm
Check the AI's reading before saving
✏️ Tap any frame to correct it
Session Details
Date
Time
Lane
Condition
Venue
Uploaded OCR Crop
Compare the source image with the scorecards below
Bowler
Frame 1 · Ball 1
No last game
Max 300•0X•0 Split
0
Ball 1: tap knocked down pins
Ball 1 — enter pins knocked down
⚠️ Frames with missing data will be highlighted
Full rack
Standing B1
Knocked B2
All time · All games
Split Overview
Spare Breakdown
Score Trend
Selected Game Context
StrikeSpareSplit
Exact Split Types
Spare Leave Types
Single Pin Misses
Profile
Profile
Bowlers and Teams
Settings
Settings
Control panel
v4.10.0
Account / Profile
Manage Bowlers
Open profiles, teams, and bowler defaults
Open
App Settings
Theme
Dark
Dark
Entry Mode
How you enter scores during a game
Score
Sync & Data
Sync & Share
Your data syncs automatically across devices in this group.
Open
Export All Data
JSON backup of all profiles and games
Export
Import JSON
Restore backup or import a bowler
Import
Danger Zone
Clear App Data
Deletes all Framelogz data on this device only
Reset
Import & AI
Secure AI Import
Uses your Cloudflare backend endpoint
Photo import is configured to call a server-side endpoint instead of storing a Gemini key in the browser.
Frontend target: /api/gemini-ocr
Deploy a Pages Function or Worker that stores your Gemini key as a secret and forwards the OCR request.
No Google API key is stored in this app.
Advanced / Debug
Diagnostics
Diagnostics
Open existing debug and sync tools
Debug
About
Framelogz
main - Local - Offline first
v4.10.0
🛠 Debug Panel
DATA COUNTS
Build —
Bowlers 0
Games 0
Balls 0
Sessions 0
Teams 0
Venues 0
Achievements Unlocked 0
Games missing bowlerId 0
Games missing sessionId 0
Orphan sessions 0
Orphan achievements 0
PHASE 4 FIELDS (future)
Games with leagueId 0
Games with tournamentId 0
Games with teamId 0
STORAGE
Schema Version 0
Storage Used —
Firebase UID —
Primary Bowler —
ACHIEVEMENT TESTING
Achievement Mode
Live — badges earn and save normally
Test result —
ACTIONS
Crop Score Area
Drag the handles to frame the score screen
Add Bowler
Import Data
Select a Framelogz export file. Works with full backups and single bowler exports.
Bowler name
— games
Adds this bowler and their games to your app. Games already in your game list are never overwritten — only new ones are added. The bowler's profile details will be updated if they already exist.
Full Backup
— bowlers · — games
How do you want to handle this backup?
New Team
🎳
Team icon
Use none, choose an icon, or upload a photo. Icons and photos use the same zoom and crop tools as bowler profiles.
Selected
No icon — team will show initials from the team name.
Background colour
New Bowler
AB
Initials
Your initials are generated from your name automatically.