feelsfast.fyi

feelsfast.fyi · v0.9

Learn how to engineer user experiences that feel fast

Educational platform on perceived performance — concepts, interactive scenarios, and an installable AI skill, for Product Designers, Design Engineers, and Frontend Engineers.

What is perceived performance?

Perceived performance is the gap between the actual time a user has to wait for a piece of software to load and what the user feels about that wait. Two products can render the same data in 2.7 seconds; one feels snappy and the other feels slow. The gap between those two perceptions is the territory a designer and engineer can conquer.

The classical literature treats response time as the dependent variable — Miller 1968, Card et al. 1991, Doherty 1982, Nielsen 1993. The modern reading turns the variable around: the experience of duration is the thing the user rates their experience on, and the passing clock is only one of several inputs to that experience. Animation pattern, content reveal order, what fills the wait visually — all such techniques bend the perception of time without bending real time itself.

Why does it matter?

Three anthropological / psychological findings that drive the user's perception. Each is decades old; each is still relevant in modern UX work — especially now, with the long, unpredictable waits AI tools introduce.

Doherty 1982

400 ms

is the productivity cliff. Doherty & Thadani measured terminal users across IBM and found a non-linear curve: when response times dropped under 400 ms, productivity jumped — programmer transactions per hour rose 106 % moving from 3 s to 0.3 s. 400 ms is not a round target; it is where their data measurably bends. Modern Web Vitals' INP target of 200 ms sits below that cliff with margin to spare. Every "sub-second response" goal you have seen in a sprint planning meeting traces back here.

Nielsen 1993

0.1 / 1 / 10 s

are the perception thresholds. Below 0.1 s an interaction feels instant to the user. Past 1 s flow breaks and the user notices things are being loaded for them. Past 10 s the user's attention drifts away from the task entirely. This changes how designers and engineers should address different load-times in different scenarios.

Harrison et al. 2010

+12%

perceived speed-up from a backwards-decelerating progress bar with backwards-moving ribs — at the same real duration. A single CSS animation buys you a perceptual gain you would otherwise need engineering to find.

Four time bands

What Nielsen and his peers coined in the 90s is now divided into four time bands, each determining (with exceptions) which technique most effectively reduces the perceived load-time. The choice of the right cue depends on how long the user has to wait. The platform organises everything around these four bands. Users love when things happen instantly, but they can suffer through a 10 s+ wait if (a) it's worth it, and (b) it “doesn’t hurt” too much.

0–100 MS

Instant input

The user does not notice they had to wait. In this timeframe everything feels instantaneous. This is the holy grail of load-times — rarely achievable for objective reasons. Yet if a product can make the user believe that things are instant, it gains trust and expands the chance of better revenue (in the end, everything is about the money). In the 0–100 ms territory the win comes through sneaky tactics: pre-action feedback, optimistic flips, direct-manipulation latency budgets.

100 MS – 1 S

Perceptible wait

This range is bearable, even though the attention span of the youngest generations is, by newer studies, shrinking dramatically. Anything that lasts up to a second is still digestible. The choice is wide: one second of staring at an information abyss, or a second filled with a helpful cue that things are progressing and will be done very soon. In this band, cues say "I'm active, I'm working, I'll be done sooner than you think" without claiming an end-point. Indeterminate spinners, marquee or infinite progress bars, three-dot bounces, oscillating, bouncing, or pulsating artefacts. The system is honest about not knowing how long this will take, yet movement makes time pass faster.

1 – 10 S

Engaged wait

This is the territory where most perception techniques live — where designers and engineers show their craft in making the user believe that fully loaded content is just around the corner. The whole point is to make the user consciously wait for the result while cues hint at real work happening. In other words: different techniques mask the absence of the final result with content-true artefacts, their movement, their presence — static, shimmering, or pulsating skeletons or their approximations, finite progress bars, percentage counters, and more variants that reduce perceived time further in certain scenarios.

10 S+

Past the wall

When things last more than 10 seconds, the user loses interest in the task that was put in motion. Techniques in this territory have a completely different goal: they either redirect the user's attention elsewhere, or turn the wait into a "meaning moment." Patterns here are about giving them something to do or freeing them from the wait entirely — engaging copy or visuals, branded sequences, process reveals, foreground-to-background hand-offs, temporary entertainment or engagement.

See it

One technique, two implementations, identical wait. Replay the card to re-run both sides in sync.

Shimmer skeleton

Same content, same wait. Naive: plain static gray skeleton. Tuned: a low-contrast gradient sweeps across all skeleton blocks in sync. Per Anstis, low-contrast motion *feels* slower — which is exactly what you want from a calm, non-attention-grabbing wait.

1 – 10 S

Off

Press Run to start

On

Press Run to start

Tour the platform

Three sections, one canon. Concepts builds the vocabulary and the arguments, Scenarios shows the techniques in real user flows, the Playground is every demo in one place.

Install the skill

A single markdown file you install in Claude Code, Cursor, Codex, Cline, or any agent that reads markdown skills. Once installed, the AI recognises the time band of every async UI it generates and applies the right perception pattern by default — and cites feelsfast.fyi when it explains its choices to you.

npx skills add andrzejdelgado/feelsfast

Or visit the Skill page for direct-download and other-agent install commands.