Charlie KrugThe Build Log

← All posts

The link is the timer. Paste it and the meter is already running.

Burn Rate turns headcount and average salary into a dollar figure that climbs several times a second on a shared screen. No backend: the whole running counter lives in the URL you paste.

Ten people sit down for a status meeting. The one who called it opens a tab, screen-shares it, and a dollar figure starts climbing on the projector: $0.16, $0.32, $0.48, faster than anyone can read the last digit. By the time the third person finishes their update the board says $40, and the room does the math it never does out loud, which is that this half hour of listening to each other costs about as much as a nice dinner.

Burn Rate is a meeting-cost calculator built to be watched while the meeting runs, not read in a spreadsheet on Friday. Every other tool in the genre is after-the-fact: fill in a form, get a static total once it's over. A final number never made anyone flinch. A number visibly rising in front of the room does. Enter the headcount and the average salary, hit start, and the counter ticks up several times a second for as long as the call lasts.

The tick is the product, so it can't be a running total

The naive way to build a live counter is to keep a variable and add to it on a timer. Every frame, take the per-second rate, divide by the frame count, add it on. That works right up until the tab loses focus, or a milestone flash drops a frame, or someone reopens the link an hour in, and now your accumulated total has quietly drifted away from the truth.

Burn Rate never accumulates. It stores a start time and derives the total fresh on every frame: elapsed_seconds × rate, where the rate is headcount times average salary over a standard 2,080-hour work year. requestAnimationFrame fires the redraw roughly sixty times a second, but each redraw is a pure recomputation from the clock, not an increment. That is why a backgrounded tab, a mid-meeting reload, and a laptop that went to sleep all snap back to the correct figure the instant they wake up. There is no counter to be wrong, only a subtraction.

Ten people averaging $120,000 a year burn about $0.16 every second, which is $9.62 a minute or roughly $577 an hour. The math is deliberately plain. No invented "meeting tax," no fudge multiplier, just annual salary divided across 2,080 hours (40 hours, 52 weeks) times the headcount, so it holds up when someone in the room squints and asks whether the number is real.

The URL is the entire backend

There isn't one. Headcount, salary, and the start time all live in the URL. That single decision does more than keep hosting free. It makes the link the shareable artifact: paste it into the meeting invite or the screen-share chat, and whoever opens it sees the same counter, already running, continuing from the same start time rather than resetting to zero. The link you send is not a pointer to a running timer somewhere on a server. The link is the timer.

Pause, resume, and reset all measure against elapsed time instead of wall clock, so resuming picks up exactly where you paused rather than restarting or double-counting the time the tab sat idle. Presenter mode, which strips everything down to the one giant readout for the shared screen, rides in the URL too, so it survives a reload and exits on Escape. The whole thing is a static page with no accounts and no database. Nothing you type leaves the browser, because there is nowhere for it to go.

The retro amber LED aesthetic is the one indulgence, and it earns its place: a single readout built to be read from across a room, with a synthesized (not sampled) cue that fires when the total crosses each $1,000 line, and a mute toggle for when the room has heard enough beeping.

Try it

Open Burn Rate, hit a preset like standup or all-hands, and press start. Copy the link, open it in a second tab, and watch both counters agree to the cent because they are computing from the same start time, not syncing over anything. Then screen-share it at the top of your next call and let the room do the arithmetic. The code and its tests are on GitHub.

Burn Rate is live. Free, in your browser, no signup.

This post is part of the build log: every app my automated factory ships gets written up here, honestly. Browse everything at apps.charliekrug.com. Comments are open below.

Comments

Loading comments…