High Five Studio

November 2026

Undo Stack Capped at 20 Steps, 42% of Devs Ship Without Reverting

A 20-step undo cap quietly shapes how developers build and ship websites, revealing why many never revert and what that means for interface design

Undo Stack Capped at 20 Steps, 42% of Devs Ship Without Reverting

Picture a Saturday afternoon in a Zagreb co-working space, four people building a client site on a free tier of a visual builder, and someone hits the wrong button. The undo arrow is greyed out. That small moment — the cap on how far back you can travel — is where interface design, behavioral psychology, and the daily reality of shipping websites collide. This article is about what that cap does to the people who build and maintain sites, why so many developers reportedly ship without ever reverting, and how the shape of a "take it back" button quietly steers decisions under uncertainty.

The Undo Stack Is a Behavioral Interface, Not a Technical Detail

Most discussions of undo treat it as an engineering afterthought: a stack, a depth limit, a memory budget. But an undo stack is really a model of how much regret a system is willing to absorb on your behalf. When you cap it at 20 steps, you are making a statement about how far a user is expected to wander before they should be responsible for their own decisions.

That statement lands on human psychology in predictable ways. Daniel Kahneman and Amos Tversky's work on loss aversion established that losses loom larger than equivalent gains — roughly twice as large in many experimental settings. In a site-building context, the "loss" is the work you might destroy with a bad click. The undo button is the insurance policy against that loss. Cap the policy at 20 steps and you have not just limited a feature; you have changed the perceived risk of every action taken after step 21.

There is a second concept at play: variable-ratio reinforcement, the schedule where a reward arrives after an unpredictable number of responses. It is the mechanism B.F. Skinner documented in the 1950s and it is famous for producing persistent, sometimes compulsive behavior. Undo is not a reward, but the reliability of undo functions the same way. When undo works every single time, users stop thinking about it. When it works sometimes — because the cap was hit, because a save point was overwritten, because a plugin broke the history chain — users start building mental heuristics around it. Some become cautious. Some become reckless. Almost none become accurate.

The interesting question for anyone building or maintaining websites in Croatia, whether for an agency in Split, an in-house team in Osijek, or a freelancer serving clients across the EU, is this: what does a 20-step cap actually teach the person using the tool?

What a shallow stack teaches

A shallow undo stack teaches three things, and none of them are about the software:

  1. Commit early and often. If you cannot go back far, you learn to lock in progress by saving, publishing, or duplicating. This is a reasonable adaptation, but it produces a lot of near-duplicate artifacts — draft pages, versioned templates, "final_v3" files — that later become maintenance debt.
  2. Trust your instincts less. Users who have been burned by a greyed-out undo arrow start previewing changes in their heads before making them. That is cognitive load that could have gone into the actual design problem.
  3. Treat the tool as adversarial. Once a builder is perceived as capable of eating your work, every session starts with a small defensive posture. That posture is expensive and it is invisible in any analytics dashboard.

None of this is hypothetical. Anyone who has watched a junior colleague rebuild a hero section from scratch because the history was capped knows exactly what this costs.

Why 42% Ship Without Reverting — and What That Number Really Says

The figure that 42% of developers ship without reverting is the kind of statistic that gets repeated because it sounds damning. It is worth unpacking rather than accepting.

First, "reverting" is ambiguous. It can mean using a version-control revert, using an interface's undo, rolling back a deployment, or restoring a database snapshot. A developer who has never used git revert may still have rolled back a deploy a dozen times. A developer who has never touched an undo button may work in a flow where every change is additive and reversible by deletion. So the 42% is best read not as "42% of developers are reckless" but as "42% of developers operate in workflows where the explicit revert action is not part of their vocabulary."

Second, the absence of reverting is often a rational response to the tooling. Consider the mental math. If reverting is cheap and reliable, you revert freely — it is a normal move, like a chess player taking back a blunder in a casual game. If reverting is expensive, uncertain, or socially awkward (you have to tell the client the site went backwards for an hour), you avoid it. You patch forward instead. Patching forward is usually worse engineering but often better politics.

Third, there is a decision-theory angle worth naming. Under uncertainty, people do not maximize expected value; they satisfice, a term Herbert Simon introduced to describe choosing the first option that meets an acceptable threshold rather than the optimal one. When a developer ships a change they are not fully sure about, they are satisficing. Reverting would require re-opening the decision, re-evaluating it, and accepting that the original choice was wrong — a small but real ego cost. Shipping forward lets them keep the narrative intact: we are iterating.

A concrete example worth studying

The clearest published evidence on undo behavior comes from the human-computer interaction literature rather than from any single tool vendor. A well-known line of research on "undo" as a recovery mechanism — including work by Alan Dix and later studies on error recovery in direct-manipulation interfaces — found consistently that users underuse undo relative to how often they make errors, and that the perceived availability of undo changes risk-taking behavior more than its actual depth does. In other words, a user who believes undo is there will experiment more boldly; a user who has been bitten by a capped stack will not, regardless of how deep the stack actually is.

That finding has a direct read for site builders. The 20-step cap is not primarily a technical constraint on recovery. It is a signal about how much experimentation the tool expects from you. Twenty steps is roughly two to three minutes of active editing for a fast user. That is not a safety net; it is a speed bump. And users calibrate to it.

There is a parallel in deployment tooling. Teams that adopt one-click rollback report — anecdotally and in several published postmortems from European engineering organizations — that deploy frequency goes up and mean time to recovery goes down. The rollback button is not used more often because deployments fail more; it is used more often because it is cheap to use, and cheap reversibility changes the risk calculus of shipping in the first place.

The Psychology of the Grey Arrow

The greyed-out undo arrow deserves its own section because it is one of the most psychologically loaded pixels in any interface.

Loss aversion at the moment of need

Loss aversion bites hardest exactly when undo is unavailable, because that is when the potential loss becomes concrete. Before the mistake, the risk is abstract. After the mistake, with the arrow greyed out, the loss is real and the user is being asked to absorb it. Kahneman's framing applies cleanly: the pain of losing the last hour of work is felt more acutely than the pleasure of the hour of work that preceded it. A 20-step cap does not prevent mistakes; it converts recoverable mistakes into felt losses at a higher rate than a deeper stack would.

The illusion of a safety net

There is a subtler problem. Users do not know the depth of the undo stack unless they hit the bottom. A builder with a 20-step cap and no visible indicator looks identical to a builder with unlimited undo until the moment it matters. This is a design failure with behavioral consequences: it produces overconfidence in the early session and distrust in the late session. The same user, in the same afternoon, will behave like two different people.

The fix is not necessarily a deeper stack. It is legibility. Show the user where they are in the history. Let them see the stack. A visible, finite resource is easier to plan around than an invisible, finite one.

Competitive play and the "one more try" loop

There is a reason the language of undo maps so naturally onto games. Competitive play is built on the assumption that failure is cheap and retries are unlimited — that is what makes practice possible. A fighting game with no rematch button is not a harder game; it is a game nobody plays. Site builders are not games, but the same principle governs how much a user is willing to experiment. Cap the retries and you cap the experimentation. Cap the experimentation and you cap the quality of the result, because the best layouts and the cleanest code come from trying three things and keeping the best one.

The variable-ratio angle returns here. When retries are reliably available, users settle into a steady rhythm of attempt, evaluate, keep or discard. When retries are unreliable, users fall into a different rhythm: attempt, hesitate, keep because discarding is risky. That second rhythm is how you end up with sites full of half-finished ideas that nobody dared remove.

Designing for Reversibility: What Site Builders and Dev Teams Can Actually Do

The good news is that reversibility is one of the cheaper things to improve, and the improvements compound. Here is what actually moves the needle, in roughly ascending order of effort.

Make the history visible

If your builder or CMS has a history panel, surface it. If it does not, add one. A visible timeline of the last N changes, with the ability to jump to any point, converts an invisible cap into a manageable resource. Users plan around what they can see.

Separate "undo" from "restore"

Undo is stepwise and ephemeral. Restore is a named, persistent checkpoint. Most tools conflate the two, which means users who need to go back further than the undo stack have no path except manual reconstruction. Named checkpoints — "before the hero rewrite," "after client approval" — cost almost nothing to store and eliminate the entire class of loss that a 20-step cap creates.

Treat deploys as reversible by default

For teams shipping code rather than clicking through a builder, the equivalent move is to make every deploy a named, restorable version. This is standard in mature CI/CD setups and still surprisingly rare in smaller Croatian agencies and freelance operations. The behavioral effect is the same as a deep undo stack: people ship more, and they ship better, because the cost of being wrong is bounded.

Watch for the "patch forward" smell

If your team or your clients consistently fix problems by adding new changes rather than reverting old ones, that is a signal that reverting is too expensive. The fix is almost never "tell people to revert more." It is "make reverting cheaper." Look at the actual friction: is the revert command obscure? Is the rollback process manual? Does reverting require a conversation with a client? Each of those is a design problem with a design solution.

Accept that some caps are fine — if they are honest

A 20-step cap is not inherently wrong. Some tools genuinely cannot afford deep history, and pretending otherwise is dishonest engineering. What is wrong is a cap that is invisible and unannounced. A tool that says "history: last 20 changes, save a checkpoint for anything you want to keep" is teaching its users to work well within a constraint. A tool that silently truncates history is teaching them to distrust it.

What This Means for the Next Generation of Build Tools

The direction of travel is clear, and it is not toward deeper undo stacks. It is toward structured reversibility: versioned content, named checkpoints, branch-and-merge for page edits, and collaborative history that shows who changed what and when. The tools that get this right will not win because they let you undo 200 steps. They will win because they make the question "how far back can I go?" stop being a question users have to ask.

For the people building sites in Croatia right now — the agencies, the in-house teams, the freelancers juggling five client projects — the practical takeaway is smaller and more immediate. Audit your own workflow for the places where you patch forward because going back is expensive. Those are the places where you are paying a tax you did not budget for. Then look at the tools you hand to clients and ask the same question on their behalf. A client who is afraid to click is a client who will call you instead of fixing it themselves, and that call has a cost too.

The 42% who ship without reverting are not a cautionary tale about recklessness. They are a measurement of how expensive we have made going backwards. Make it cheaper, make it visible, and the number will take care of itself.