Undo and redo on everything

One undo stack over the whole design, where one intent is one step — a whole drag, or a burst of stepper clicks, undoes at once.

What it is

UseSpecHistory owns the spec, the selection and a bounded stack of immutable {spec, selection} snapshots. Every mutation in the builder routes through commit, so any feature added later gets undo for free.

Also called: undo · redo · cmd+z · history

See it
Undo and redo on everything
New lead 2
Marlin Hoover
$51k
Delia Yoder
$31k
Sutter Kline
$45k
Contacted 3
Sutter Kline
$49k
Ronan Petsch
$43k
Ivy Brubaker
$34k
Estimate 2
Ivy Brubaker
$59k
Gideon Alt
$40k
Marlin Hoover
$63k
Sold 4
Marlin Hoover
$75k
Delia Yoder
$72k
Sutter Kline
$53k
Panel footer with Undo/Redo buttons and their enabled state; best shown as a short animation of one drag undoing in a single press. Sample data — no customer information appears here.
How it works
  1. 1gesture:<key> coalesces continuous pointer gestures; a window pointerup bumps the gesture generation so the entry closes exactly when the drag ends.
  2. 2field:<key> coalesces rapid stepper or typed edits on the same field inside a sliding window, so click-click-click on Width is one step.
  3. 3No key means every commit is its own entry (delete, add, wall change, preset load).
  4. 4Each entry remembers the selection at commit time, so undoing a delete reselects what came back.
  5. 5Cmd/Ctrl+Z and Cmd/Ctrl+Shift+Z work in orbit and walk mode, and go inert while focus is in a text field or while a pointer is down.
Why we built it

A builder trying an idea in front of a customer needs to take it back without thinking about it. Undo covers every change to the design rather than the subset someone remembered to wire up, and a continuous drag collapses into a single step — without that, one resize of a wall lands sixty entries in the history and undo stops being usable at all.

The problem
  • Continuous drags flooding an undo stack with useless intermediate states.
  • Losing work because a destructive action had no reverse.
Sound familiar?
What you get
One drag equals one undo.
Undoing a delete brings the piece back selected.
Text fields keep their own native undo.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →