Free Online Tally Counter
A click counter that saves automatically in your browser. Add multiple counters with custom labels and steps. Count people, reps, laps, inventory, anything.
Common uses
- Count People at EventsTrack attendance, headcount, or capacity at doors and venues.
- Count Inventory & StockTally items during stock counts without losing your place.
- Count Reps & SetsTrack workout reps, sets, or rounds with big tap targets.
- Row Counter for Knitting & CrochetKeep track of rows and pattern repeats in your project.
- Count Birds, Wildlife & SurveysTally sightings during bird counts, surveys, and field research.
How It Works
This tally counter runs entirely in your browser using React state and the browser's built-in localStorage API β there is no server, no account, and no data sent anywhere. Counts survive page refreshes automatically, and fullscreen mode uses the Screen Wake Lock API to keep your display on while counting.
- 1State lives in localStorageWhen the page loads, the tool reads any previously saved counters from localStorage under a fixed key. Each counter β its label, current value, step size, and allow-negative flag β is serialized as JSON and written back to localStorage on every change, so your counts survive accidental tab closes or refreshes.
- 2Increment/decrement via React stateTapping + or the large center button calls an updater that adds the configured step value to the counter's current value. If allow-negative is off, the result is clamped to zero with Math.max. Keyboard shortcuts (Space/+ to increment, -/Backspace to decrement) are wired through a window keydown listener that targets whichever counter is active.
- 3Fullscreen mode with Screen Wake LockEntering fullscreen mode renders an overlay where the entire screen is the tap target. Simultaneously, the tool requests a wake lock via navigator.wakeLock.request('screen') β a browser API that asks the OS to suppress screen sleep. The lock is re-acquired automatically if the tab regains visibility after being backgrounded.
- 4Multiple counters with combined totalAdding a second counter spawns a new entry with a crypto.randomUUID()-generated ID. When more than one counter exists, a combined total is computed by summing all values and displayed above the counter list. Each counter has independent step, reset, and allow-negative settings.
Guide
Worked example
Counting stitches for a pattern that repeats every 8 rows: add the preset "+ Row counter with repeat". It creates a Rows counter that returns to 0 after row 8 and a Repeats counter that gains 1 each time. Tap 20 times and Rows shows 4 with "Rounds: 2", while Repeats shows 2. The tap history lists each tap with its time, and you can download it as a CSV.
Which settings to use, and the limits
- Set the step to the size of each count. The step is how much each tap adds, for example 2 for pairs or 10 for bundles. On a computer, Space or + adds one step to the first counter, and - or Backspace removes one. On a phone, tap the large button.
- Use "Repeat, target & link" for rounds. "Repeat every (resets to 0)" sends the count back to 0 after N and counts rounds. "Alert at total" shows a message when the total reaches your target, with an optional sound. "Each round adds 1 to" links one counter to another.
- Use fullscreen for hands-free counting. "Fullscreen" turns the whole screen into one tap target and asks the browser to keep the screen awake. "Lock" ignores everything except taps; press and hold "Hold to unlock" to leave.
- Allow negatives only if you need them. By default a counter stops at 0. Tick "Allow negative" for counting up and down from a starting point, such as stock in and out.
- Undo before you reset. "Undo last tap" or Ctrl+Z takes back recent taps (the last 100 are remembered). Right after a reset, an "Undo" button appears with the previous count. "Set count to" lets you correct the number directly.
- Export what you counted. "Copy summary" gives the labels and totals as text. The tap history keeps up to 1,000 entries, can be copied or saved with "Download CSV", and shows the latest 50 on the page.
Common problems and how to fix them
- My count is gone.
- Counts live in this browser's local storage. They disappear if you clear site data, use a private window, open the page in another browser or on another device, or if storage is full. Use "Copy summary" or "Download CSV" for anything important.
- The counter will not go below zero.
- That is the default. Tick "Allow negative" on that counter if you want values under 0.
- Space or Backspace does not count.
- The keys act on the first counter and are ignored while a button, text box or number field has focus. Click an empty part of the page first. On a touch screen, tap the big button instead.
- The screen still turns off in fullscreen.
- Keeping the screen awake depends on the browser supporting it, and it can be refused, for example by battery saver. If it keeps happening, lengthen your device's screen timeout in its own settings.
- I tapped the wrong counter or reset by mistake.
- Use "Undo last tap" or Ctrl+Z for taps, and the "Undo" button right after a reset. "Reset all" clears every counter at once, so check before pressing it.
Related Tools
Metronome
Keep tempo while you practice with a sample-accurate metronome β set BPM, pick a time signature, add subdivisions, and tap to find the beat.
Word Counter
Count words, characters, sentences, and paragraphs. Estimate reading time.
Word Frequency Counter
Count how often each word appears in your text. Visualise top words, export to CSV, and filter stop words.