Loading Chalkfolio...
A new version of Chalkfolio is available
Sign In
Create Account
Email
Password
Forgot password?
Chalkfolio  v1.15.1
League
Match Date
Opponent
A nickname or initials is fine. Full names are not needed.
Team (optional)
Season (optional)
My SL
Op SL
Race
—
— · vs —
Mine
0
vs
Opponent
0
Match Pts —
0
Matches
0
Games
Match History
Unfinished matches are kept on this device. Tap one to pick up where you left off.
Name —
Email —
Appearance
VNEA 8-Ball
Some VNEA leagues rule that making the 8-ball on the break wins the game outright; others just note it and keep playing. Set this to match your league.
8-Ball on the Break
Import & Export
Match Summary adds match totals and stats, with no per-game detail.
Game Detail imports per-game rows and builds the match summaries for you.
Downloads Chalkfolio_Export.xlsx with three sheets: Match Summary, Game Detail and UP 8 Racks.
Clear All History
Permanently deletes every match you have logged. Your account is not deleted, and this cannot be undone. Export first if you want a copy.
Usage analytics
Run into a bug, or have an idea for something new? Let us know.
App Chalkfolio
Version v1.15.1
Build
Author Freedom Digital™
What's New
v1.15.1
  • Moved the logo on the sign-in and home screens down a little so the top of the rack no longer slips under the phone camera in app mode
v1.15.0
  • RackTrack is now Chalkfolio. New name, new logo and a new app icon. Your account, matches and Pro status are not affected
v1.14.2
  • Terms and checkout now say that Freedom Digital LLC is the seller and that Pro is sold through Link, with links to Link's terms and refund policy
v1.14.1
  • Refund and cancellation policy now says that if a payment is refunded in full, the subscription is cancelled and Pro ends right away
v1.14.0
  • Groundwork for Pro subscriptions: secure checkout through Stripe, a Manage subscription button, and the Terms of Use and refund policy. Not switched on for players yet
  • Deleting your account now cancels a subscription first
v1.13.1
  • Age check pop-up: Delete my account now sits last, below Sign out, with space above it, so it is harder to tap by mistake
v1.13.0
  • New one-time age check. Create Account now asks for your birth month and year to confirm you are 13 or older, and accounts made before now are asked once at the next sign-in. The answer is checked on your device and is not stored; RackTrack keeps only a record that you passed and whether you are 18 or older
  • Usage analytics now run only for signed-in players who are 18 or older and have read the notice. You can switch them off in Settings › About › Privacy & Data
  • Updated Privacy & Data notice (you will be asked to read it again)
  • Opponent: a nickname or initials is fine
v1.12.2
  • Fixed: if you changed something while editing or scoring a match and then put it back exactly as it was, the app could still keep an unfinished copy and show Continue Match. That copy is now removed when the match is back to how it started
v1.12.1
  • UP 8: clearing a rack’s result after tagging a Break & Run now puts the rack back exactly as it was, including who broke and any Dry Break. Before, the breaker stayed changed, so backing out of an edit left an unfinished match behind
v1.12.0
  • UP 8: tap the highlighted You Won or Opponent Won button again to clear a rack’s result (tap Edit on a finished rack first). Clearing the result also removes a rack event tag, since the tag decided the winner
  • UP 8: Match History now expands to show every rack, with its result, who broke and any dry break or rack event
  • Sign-in screen: new show/hide password button that is easy to see on the dark screen, instead of the browser’s own icon
  • Sign-in screen: “Account created”, “resent” and “reset email sent” messages are no longer shown in red. The message, the password fields and (after deleting an account) the email are cleared when you come back to the sign-in screen
  • The app now has a browser tab icon
v1.11.1
  • Fixed an error when creating a new account. The verification email is now always sent
v1.11.0
  • Behind-the-scenes groundwork for upcoming features. Nothing changes in how the app looks or works today
v1.10.12
  • Fixed: tapping Sign Out right after opening the app could show the Privacy & Data notice on the sign-in screen, with an Acknowledge button that did nothing. The notice no longer appears after you sign out, and Acknowledge always closes it
v1.10.11
  • New RackTrack logo. The app icon, the sign-in screen and the home screen now use it
v1.10.10
  • UP 8: Match Status Forfeit now works as a forfeit. Neither side gets any points, the racks are locked and not counted, and you can submit it with no racks entered. It shows in Match History as FORFEIT
  • UP 8 dashboard: a forfeit is left out of every number, including Matches, Match W-L-D, Team Pts, rack stats and Recent Form. A UP 8 match already saved with the Forfeit status is left out the same way
v1.10.9
  • About now shows the app build number under the version, and Report an Issue and Suggest a Feature include it in their diagnostics, to help match a report to the exact release
v1.10.8
  • Scoring screen: new ? button at the top right. It shows how to score the league you are in, and your match stays open behind it
  • Dashboard: a small i in the corner of each league stat tile shows what the tile shows, how it is calculated and what it leaves out
v1.10.7
  • APA 8, APA 9 and ACS 8 dashboards: Match W-L is now Match W-L-T. A tied match is a match played, so it shows in the record (always three numbers, for example 4-2-1) instead of being left out
v1.10.6
  • Help & Guide: new UP 8 guide with how to score a match, what every UP 8 dashboard tile shows and how it is calculated, and tips
  • UP 8 dashboard: Results by Rating Band had Vs. Lower-rated and Vs. Higher-rated swapped. A match against a higher-rated opponent now counts under Vs. Higher-rated. Existing matches are corrected automatically
  • UP 8 dashboard: Recent Form now has a space between the date and the result
  • UP 8 dashboard: the top Games tile now reads Racks, since it counts racks
  • UP 8: Submit Match no longer saves a match where no rack has a winner. The pop-up says so and does not let you submit
v1.10.5
  • Help & Guide: new ACS 9-Ball guide with how to score a match, what every ACS 9 dashboard tile shows and how it is calculated, and tips
  • ACS 9: the Match W-L tile is now Match W-L-T and always shows wins, losses and ties
  • Submit Match no longer saves an empty match. In ACS 8, ACS 9, VNEA, APA 8 and APA 9, if no game or rack has a result yet, the pop-up says so and does not let you submit
  • ACS 9: the Submit pop-up now warns when a rack with a winner has no breaker set, since Break Win % and Receive Win % cannot count it
v1.10.4
  • Help & Guide: new ACS 8-Ball guide with how to score a match, what every ACS 8 dashboard tile shows and how it is calculated, and tips
v1.10.3
  • Help & Guide: new APA 9-Ball guide with how to score a match, what every APA 9 dashboard tile shows and how it is calculated, and tips
  • APA 9: tagging a Break & Run or 9 on Snap now sets that rack’s innings to 0, matching the BR / 9OS the card shows in its place. Matches already saved are not changed
v1.10.2
  • Help & Guide: new APA 8-Ball guide with how to score a rack, what every APA 8 dashboard tile shows and how it is calculated, and tips
  • APA 8 rack card: the Innings label no longer says “(yours)”
  • No scoring or data changes
v1.10.1
  • New Dry Break % tile on the VNEA, ACS 8 and APA 9 dashboards
  • Removed the Syncing / Saved status badge. Errors (Offline, Save failed) still show, now with the warning symbol drawn correctly
  • Help & Guide: VNEA guide covers the new tile
  • No scoring or data changes
v1.10.0
  • Help & Guide: new VNEA 8-Ball guide with how to score a game, what every VNEA dashboard tile shows and how it is calculated, and tips
  • No scoring or data changes
v1.9.9
  • New Finish Later button on the Scoring screen: leave a match unfinished, move around the app, and come back to it
  • Home shows Continue Match whenever you have unfinished matches; each one can be resumed or discarded
  • Scores are autosaved on this device as you enter them, so a phone lock, a crash or a refresh no longer loses a match in progress
  • The back arrow on the Scoring screen now asks Finish Later, Discard or Keep Scoring once you have entered something
  • Submitting a match removes its unfinished copy
v1.9.8
  • Settings: Help is now Help & Guide, with Getting Started and General pages in collapsible sections
  • Your Data now explains the two CSV imports and what Export Excel contains, and keeps Clear All in its own section
  • About: Privacy & Data can be re-read any time, and the changelog heading is now What's New
  • No scoring or data changes
v1.9.7
  • Settings is now a menu: Account, Preferences, Your Data, Help, Support and About
  • Profile is merged into Settings as Account, and the Profile button is gone from Home
  • The changelog shows the latest few versions, with View full history for the rest
  • No scoring or data changes
v1.9.6
  • Dashboard: removed the ABC and RHC tiles; the top row is now just Matches and Games
  • APA 8: new Balls/Match and Balls/Game tiles on the APA 8 dashboard, counting the same balls made that Match History shows
  • VNEA and ACS 8 keep their own Pts/Match, Pts/Game and BCP tiles
v1.9.5
  • APA 8, ACS 9 and UP 8: Edit on a finished rack now opens it with everything still set (result, event, breaker, tags, balls) instead of clearing it
  • An open rack has a Done button at the top and bottom to fold it back up
v1.9.4
  • APA 8: a rack tagged Early 8, Scratch on 8 or Wrong-Pkt 8 now counts for balls made (10 for the winner, 0 for the loser unless you enter balls) in history, totals and the dashboard
v1.9.3
  • APA 8: Match History now shows the balls you made on each game and for the match, instead of 10 per win
  • APA 8: a Break & Run or 8 on the Break counts as 10 balls for the side that ran out and 0 for the other
  • APA 8: the live totals, the submit pop-up and the dashboard Avg Balls tiles use balls made too
  • APA 8: matches with no balls entered look the same as before and are left out of the Avg Balls tiles
v1.9.2
  • UP 8: added a Dry Break pill for your own breaks and Rack Event pills (Break & Run, Early 8, 8 + Scratch) for each side
  • UP 8: tagging an event sets the rack winner, and a Break & Run also sets who broke
  • UP 8: the dashboard now shows Break Win %, Receive Win %, Dry Break %, Break & Runs, Early 8 and 8 + Scratch
  • UP 8: the UP 8 Racks export has new Dry, Event and Event Side columns
v1.9.1
  • VNEA: added a Wrong-Pocket 8 pill under each score
  • VNEA: the dashboard now shows Break Win %, Receive Win %, Break & Runs, Early 8, 8 + Scratch and Wrong-Pkt 8
  • VNEA: Break Balls/Gm now averages only the games you tagged as your break; until you tag one it keeps the old all-games average
  • VNEA: the Break pill no longer fills itself in when you enter break balls or a break result
v1.9.0
  • APA 8: added Break pills to record who broke each rack, and a Dry Break pill for your own breaks
  • APA 8: the dashboard now shows Break Win %, Receive Win % and Dry Break %
v1.8.6
  • ACS 8: the dashboard now shows Break Win % and Receive Win %, using the who-broke pills you already record
v1.8.5
  • VNEA: added a Break pill to record who broke each game
  • VNEA: Break Balls/Gm now averages only over games you broke; games with no breaker recorded count as before, so existing matches read the same
v1.8.4
  • Pinch-to-zoom now works on every screen, for small text in low light
  • Double-tap zoom stays off, so quick taps on steppers and pills never zoom the page
v1.8.3
  • UP 8: correcting the Lag winner partway through a match now updates the auto-filled breakers on every later rack
v1.8.2
  • ACS 9-Ball: submitting with a rack that has no result now warns you first, instead of quietly leaving that rack out of the match
v1.8.1
  • Fixed APA 9-Ball and ACS 9-Ball rack cards staying on screen when a UP 8 match was started afterward
  • Removed the old generic score table, unused since ACS 9-Ball moved to its own cards (no behavior change)
v1.8.0
  • Added ACS 9-Ball as its own format — a race to racks, replacing the generic W/L table it had used since v1.0.0
  • Setup takes each side's race target (quick-pick 3/5/7) and the break format; different targets per player covers games on the wire
  • Two taps per rack: who broke, who won. Breaker auto-fills from the format once Rack 1 is set, and stays tappable
  • Optional Add Details: break result, special wins (9 on Break, Combination 9, Break & Run, Three-Foul), and closeout errors
  • Special wins set the rack winner automatically — Three-Foul is tagged on the offender and awards the rack to the other player
  • New three-block dashboard: Match Results, Break Performance, Closing
  • ABC/RHC hidden for ACS 9 — a rack win isn't a ball count
v1.7.1
  • Rewrote the changelog into short bullets per version — same history, about a quarter the length
  • No app behavior changed
v1.7.0
  • Added APA 9-Ball as its own format — a race to points off the Equalizer chart (SL 1–9), not a race to racks
  • Rack cards track points, dead balls, innings, defense, who broke, and 9-on-Snap / Break & Run
  • Live 10-point rack check flags a rack that doesn't balance, without blocking entry
  • Team match points calculated from the official Score of Match chart
  • New two-part APA 9 dashboard: Official and Improvement
  • ABC/RHC hidden for APA 9 — its per-rack numbers are points, not balls potted
v1.6.24
  • Added a Support section in Settings: Report an Issue and Suggest a Feature
  • Both open a short form, then your email app with the message pre-filled to support@freedomdigital.io
  • App version and browser info are attached, visible and editable before you send
v1.6.23
  • ACS 8-Ball: new matches start with 5 games instead of 3
  • ACS 8-Ball: Rack Event tags no longer wipe the losing side's recorded ball count
  • ACS 8-Ball: top ball totals now update live instead of staying at 0–0
  • ACS 8-Ball: added a Break pill to record who broke each rack
  • All formats: game cards now have clear borders and spacing, fixing hard-to-see separation in light mode
v1.6.22
  • ACS 8-Ball setup now uses a single personal HC dropdown instead of My SL / Op SL, matching VNEA
  • Editing a saved ACS 8-Ball match re-populates the HC field
  • Match History labels it HC instead of SL for ACS 8-Ball
v1.6.21
  • Added ACS 8-Ball as its own format with VNEA-style card scoring
  • New Rack Event section: Break & Run, 8 on Break, Early 8, Made 8 + Scratch, Wrong-Pocket 8
  • 8 on Break is recorded but never auto-wins the rack, per ACS rules
  • Added an ACS 8-Ball dashboard block using BCP terminology
  • CSV export/import carry ACS events in their own columns, separate from APA 8-Ball's
v1.6.20
  • Fixed the Dashboard Games tile showing 0 for UP 8 matches — each decided rack now counts
v1.6.19
  • Fixed the ABC tile averaging UP 8 rack counts as if they were balls potted; UP 8 is now excluded
v1.6.18
  • Match History moved to its own screen with its own league filter, kept in sync with the Dashboard
  • Dashboard is now stats-only
  • Import, Export Excel, and Clear All moved to a new Manage Your Data section in Settings
v1.6.17
  • Fixed Match History being pushed far down the page when a taller stats block was selected
v1.6.16
  • Removed dead code left over from the pre-rebuild UPool 8 implementation (no behavior change)
v1.6.15
  • Rebuilt Ultimate Pool from scratch as UP 8 to match real league rules
  • Setup takes both UPScores and suggests a handicap from the official chart, always editable
  • Rack cards record winner and breaker, with Lag on rack 1 and auto-alternating breaks after
  • Adjusted score and team points calculated live per the official formula
  • Added Match Status and an official-score-override toggle with a note field
  • New UP 8 dashboard, plus a dedicated UP 8 Racks sheet in CSV export
v1.6.14
  • Fixed editing an older APA 8-Ball rack clearing its historical ball count the moment it opened
v1.6.13
  • Fixed older APA 8-Ball matches showing blank dashes for rack detail when opened for editing — the data was never lost
v1.6.12
  • Fixed the update banner rendering behind the phone status bar in home-screen app mode
  • Cause: missing spaces in CSS calc() made several safe-area paddings resolve to zero
  • Same fix applied to the Synced indicator and the login screen
v1.6.11
  • Added optional Balls Made tracking to APA 8-Ball, alongside Innings and Defensive Shots
  • Fixed the top ball totals summing the internal win/loss placeholder instead of real balls made
  • CSV gained APA My Balls and APA Opp Balls columns
v1.6.10
  • APA 8-Ball pops the match summary automatically as soon as a race target is reached
  • No further rack cards appear once a match is decided
  • Summary adds Total Adjusted Innings and Total Defensive Shots
v1.6.9
  • Fixed the dashboard filter pills squashing when APA 8 was selected
v1.6.8
  • Reworked APA 8-Ball scoring: explicit You Won / Opponent Won buttons per rack
  • Added Innings and Defensive Shots counters, plus an optional Rack Event tag
  • Tagging an event auto-sets the rack result; tapping it again clears it
  • Finished racks collapse to a one-line summary with an Edit button
  • Added an APA 8-Ball dashboard block
v1.6.7
  • Fixed the real cause of filter pills shrinking: a wide, non-wrapping row of game tags forcing the page past screen width
  • Tags now wrap, and Match History can no longer exceed the screen width
v1.6.6
  • Fixed filter pill text sitting low until tapped (iOS Safari rendering)
v1.6.5
  • Shortened the VNEA Opponent HC label to just HC
v1.6.4
  • Moved the VNEA Opponent HC selector below the tag pills into its own section
v1.6.3
  • VNEA setup now asks for your own HC (1–10) and drops Op SL
  • Opponent HC is captured per-game on the score screen instead
  • Added a DRY (dry break) tag alongside 8OB and SOB
v1.6.2
  • VNEA scoring returned to a single points dropdown (0–7, 10) with auto-fill
  • Removed the separate Game Winner picker
  • The 8-on-break auto-win setting now sets your score straight to 10
v1.6.1
  • Renamed About to Settings and added a settings section there
  • New option: 8-ball on the break counts as an automatic win or a note only (defaults to note)
  • Fixed E8/BR/8S tag text not centering in its pill
v1.6.0
  • Reworked VNEA scoring with a balls-made stepper, 8-ball toggle, break counter, and explicit Game Winner
  • Added a VNEA dashboard block
  • Excel export/import gained the new columns
v1.5.3
  • Added an update-available banner, since Firebase Hosting doesn't prompt when a new version deploys
v1.5.2
  • Fixed Firebase Analytics recording nothing — the CSP was blocking Google's analytics domains
v1.5.1
  • Corrected the Privacy & Data notice to point at the new Delete Account button
v1.5.0
  • Added a self-service Delete Account button on the Profile screen
v1.4.9
  • Added Firebase Analytics (basic usage stats only) and updated the Privacy & Data notice
v1.4.8
  • Match History now shows a colored pill for racks tagged E8, BR, or 8S
v1.4.7
  • Added a Privacy & Data notice, shown once after your first verified login
v1.4.6
  • Updated the Author credit to Freedom Digital™
v1.4.5
  • Fixed the edit and delete buttons on Match History rows being invisible in light mode
v1.4.4
  • Rack tick marks (E8/BR/8S) are now three tappable pills under each score instead of a picker
v1.4.3
  • Restyled Submit Match and its confirmation button to the teal/blue glow theme (dark mode)
v1.4.2
  • Restyled the Export Excel button to match the teal/blue glow theme (dark mode)
v1.4.1
  • Added ACS 8-Ball to the formats supporting rack tick marks, missed in v1.4.0
v1.4.0
  • Home screen now uses the logo artwork as its background
  • Dashboard cards and Home buttons get a glowing teal outline in dark mode
  • Enter key now submits on the login screen
  • Added optional rack tick marks (E8/BR/8S) for APA 8-Ball, VNEA, and UPool 8, included in Excel export/import
v1.3.3
  • Replaced the app icon with a dedicated square graphic, removing the cropping trade-off from v1.3.2
v1.3.2
  • Fixed the app icon being cropped off-center on real phone home screens
v1.3.1
  • Replaced the login background with a portrait logo image that isn't cropped on tall screens
  • Updated the PWA app icon to match
v1.3.0
  • Added real UPool 8 support with the official UPscore handicap system
  • Match win/loss now determined by handicap-adjusted score rather than raw racks won
  • Handicap stored per match and included in Excel export/import
v1.2.19
  • Critical fix: a mis-capitalized reCAPTCHA Enterprise class name from v1.2.17 crashed the app on load
v1.2.18
  • Cleaned up the changelog, consolidating in-progress bug-fix attempts into single entries
v1.2.17
  • Fixed the score and About screens failing to scroll on long content
  • Switched App Check to reCAPTCHA Enterprise
v1.2.9
  • Added Firebase App Check so requests are verified as coming from the real app
v1.2.8
  • Fixed the v1.2.6 Content-Security-Policy blocking the app's own code, causing an infinite loading screen
v1.2.7
  • Added SRI hashes to the CDN script tags so the browser verifies they haven't been tampered with
v1.2.6
  • Added a Content-Security-Policy restricting which domains scripts, styles, and connections can load from
v1.2.5
  • Security hardening: escaped all user-entered text before inserting it into the page
  • Fixed names with an apostrophe breaking the edit and delete buttons
  • Raised the minimum password length to 8, protected Excel exports against formula injection, and added field length limits
v1.2.4
  • Fixed a white gap at the bottom of Home and Log Match in PWA light mode
  • Fixed dark-on-dark text while typing in light mode
  • Fixed modal buttons and text running to the screen edge on notched devices
v1.2.0
  • Added a light/dark mode toggle in Profile, saved per device
v1.1.2
  • Reordered home buttons, added the About screen, and required email verification before first sign-in
v1.1.1
  • Unified home screen buttons into one pill style and changed the Dashboard icon
v1.1.0
  • Added long-press on a match row to enter edit mode
v1.0.9
  • Fixed inconsistent win/loss highlight coloring in the scoring table
v1.0.8
  • Team and Season suggestions now refresh each time the setup screen opens
v1.0.7
  • Added an edit button for matches on the Dashboard, with larger tap targets
v1.0.6
  • Corrected the APA skill-level race matrix against the official chart
v1.0.5
  • RHC now falls back to match-total-over-5-games for VNEA/ACS 8 matches with no per-game detail
v1.0.4
  • Fixed 5-game padding to also apply to ACS 8 matches, not just VNEA
v1.0.3
  • Fixed back-button spacing on mobile and iOS blur rendering on the login screen
  • Corrected APA match result logic to use race targets
  • Fixed RHC to exclude placeholder games, and date-normalized CSV imports for correct sorting
v1.0.2
  • Added the RackTrack logo login background and the billiards home background
  • Fixed Game Detail CSV import to use the stored Match Result instead of re-deriving it
v1.0.1
  • Initial bug fixes after the Firebase migration
v1.0.0
  • Initial release: Firebase-backed match tracking for APA, VNEA, ACS, and UltimatePool, with CSV import/export and a stats dashboard
Report an Issue
Describe what happened, and we'll take a look. This opens your email app to send it to us.
Description
Submitting will open your email app with a message addressed to support@freedomdigital.io, including your app version and browser info to help us look into it. You'll see the full message before it sends, and can edit or remove anything.