A no-recipe cooking companion for improv cooks. Track what's actually in the pantry, cook from balance instead of instructions, and rescue food before it turns. Built for wet hands, big families, and the six o'clock question — what's for dinner.
Counterweight is not five loose tools — it's a single cooking companion arranged around three moments: what's in stock, what to make, and what to do when the pot goes sideways.
Every item you cook with, rendered as a painterly tile. Tap once per unit to restock. Tap the mode switch and tap again to burn down as you use. Batches, freshness clocks, and frozen state — all handled quietly underneath.
Not "what's for dinner tonight" typed into a box. The live pantry is already the prompt. Pick a preset — kid-friendly, use-what's-expiring, unconventional pairings — and get three balanced options in seconds. Mark ingredients used and the counts follow.
The see-saw method as a permanent reference. Diagnose what's dominating the dish. Swap by job, not by name — soy sauce is salt + umami, not a bottle. Rescue burnt bottoms, broken sauces, and dishes that got too salty for anything but dilution.
Not a feature list. The actual arc from grocery bag on the counter to dinner on the table — and the moments the app has to earn its keep.
You get home with the groceries. Open Counterweight, hit RESTOCK, and tap each item once per unit — ten green apples is ten taps on the green apple tile. Each tap fires a pulse ring in acid green, stamps a new batch with a use-by date, and merges with same-day batches so the pantry doesn't clutter.
No forms. No barcode dance. The tiles are big enough for one-handed taps while the other hand is holding milk.
"The moment restocking feels like a chore, the counts drift from reality, and the whole product dies. That's why we bet on tapping — not scanning."
Above the grid: four stat cards — fresh, expiring, today, frozen. Below that, a "use these first" strip with the eight worst offenders, tap-through to a Cook screen already pre-filtered to rescue them.
The Flavor Balance profile reads your whole pantry against the seven weights (salt, acid, sweet, fat, bitter, heat, umami) so you can see at a glance if you're heavy on fat and starving for acid — before you cook, not after.
The Cook tab knows your inventory — every count, every batch, every days-until-expiry. Pick one preset chip (kid-friendly · expiring first · 30 min · unconventional) or save your own, add an optional note, and press generate.
Three recipes come back. Each one names which pantry items it uses (and which it rescues — old bananas → banana bread), with a total time, a step count, and a balance readout showing which weights it hits. Tap "Mark ingredients used" after cooking and the counts burn down oldest-batch-first.
"Recipe apps assume you shopped for the recipe. This one assumes you already own dinner — it just doesn't know that yet."
The dish tastes off. Open the Fix tab: what's wrong — too rich, too spicy, too sweet, too bitter, too bland? Tap the problem. The see-saw shows what's dominant and offers the two weights that biologically counter it. Add the counterweight. The see-saw balances. Taste again.
The Swap tab handles the other panic: out of an ingredient. It teaches you to swap by job (salt + umami) not by name (soy sauce). The Rescue tab is for when balance isn't the problem — you burnt the bottom, the sauce broke, the whole thing is over-salted.
Pull up the item, hit the stepper, or flip to USE mode and tap the tiles as you cook — each tap decrements the oldest batch first, so the salmon you bought Tuesday goes before the salmon you froze Friday.
Freeze a surplus? Tap the frost button on the edit sheet: the icon swaps to its frozen variant and the shelf life re-stamps to ninety days. Thaw and it becomes three. Bottles and spices track as a 0–100 level bar instead of a count — because a half-empty jar of soy sauce isn't 1, it's 47.
Counterweight is a phone-first web app, but it lives inside a system — assets, models, and rails that make the tap feel instant and the recipes feel yours.
A hand-generated icon library, transparent 256px, matched to the pantry catalog with a CI check that says every item resolves to a tile — or the deploy fails.
AssetsEvery batch, every level, every saved preset keyed to your user. Magic-link sign-in, row-level security, and a schema that's multi-user-ready when the household wants shared shelves.
PersistenceRecipes and mid-cook diagnosis run through a server route with the API key never on your phone. Structured JSON, Zod-validated, one clean retry — no chatty preamble, no invented ingredients.
IntelligenceDays-until-expiry are computed from timestamps every render, never cached — so midnight rolls over cleanly and you never see "1d left" on a batch that already turned.
CorrectnessEvery tap updates the UI in under 100ms and queues the mutation in the background. Kitchen wifi drops? Your restock still happened. Reconciles when the pipe comes back.
SpeedPWA-quality on iOS and Android. One tap from your home screen, full-screen, works on wet-handed kitchen phones. No app store, no update dance, no permissions circus.
DistributionBecause a cooking companion should teach the vocabulary of the craft, not hide it.
Counterweight is being built by Mike Perina at tangent.build — a household kitchen tool that any improv cook can point their family at. Early access is limited by design.