> Markdown version of [/videos/817-the-illusion-of-a-performant-web-application?t=380](https://www.wearedevelopers.com/videos/817-the-illusion-of-a-performant-web-application?t=380). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # The Illusion of a Performant Web Application Chasing perfect performance metrics is a costly trap. Discover how clever UX tricks and optimistic UI create the illusion of blazing-fast web apps without rewriting legacy backend code. - **Speakers:** Cathrin Möller - **Event:** World Congress 2023 - **Published:** November 10, 2023 - **Duration:** 28:56 - **URL:** https://www.wearedevelopers.com/videos/817-the-illusion-of-a-performant-web-application ## Summary Web application performance often revolves around chasing perfect technical metrics, but improving the perceived performance through UX interventions can be far more effective and less costly. Human perception of loading times follows distinct stages: transitions under 100 milliseconds feel instant, up to one second is acceptable without introducing a spinner, but delays beyond that risk losing user context and demand engagement. Recognizing this psychology allows developers to prioritize how an application feels rather than over-optimizing for a flawless Google Page Score, particularly when dealing with robust enterprise frameworks or slow legacy backends. Technical pitfalls during application bootstrapping often inadvertently cause the most significant performance delays, especially in heavily structured frameworks like Angular. Common anti-patterns include halting the main single-threaded JavaScript execution to fetch a runtime configuration, or configuring the `APP_INITIALIZER` to return blocking promises for asynchronous, low-priority tasks like analytics tracking. Switching to deployment-time configuration and ensuring initializers return non-blocking `void` types prevents extended blank screens. Furthermore, a simple CSS fix—assigning a minimum height of `100vh` to the application body—serves as a high-value quick win to prevent jarring header-footer collapses and layout shifts. When backend processes inevitably stall, strategic UX patterns step in to create "the illusion" of a highly performant application. Adapting the default empty `index.html` to display a left-to-right shimmer skeleton animation keeps western users visually engaged during long load times, as this specific directional movement is psychologically perceived as faster. Interactivity can also be extended artificially using CSS transition properties; making a button scale slightly on hover or displaying descriptive processing text buys unbothered wait time during a slow request. Combined with optimistic UI updates and parallel loading for costly secondary queries, these techniques prove that masking technical limitations with thoughtful UX often brings more user satisfaction than rewriting complex architecture. **Keywords:** perceived performance, angular bootstrapping, shimmer animations, skeleton loading, optimistic updates, google page score, css transition animations, app_initializer, runtime configuration, blocking javascript, header footer collapse, parallel data loading, lighthouse metrics, user wait time perception, layout shift prevention ## Chapters 1. **Human perception of application load times** (00:02) — How human tolerance for wait times dictates the psychological perception of application speed. 1. **Bundle sizes and frontend framework choices** (03:09) — Understanding how monolithic architecture decisions and massive javascript bundles impact initial loading times. 1. **Debugging performance bottlenecks with developer tools** (06:20) — Identifying blocking resources using lighthouse tools without over-optimizing for flawless laboratory metrics. 1. **Preventing layout shifts in modular architectures** (09:30) — Using minimum viewport heights to eliminate jarring visual jumps during asynchronous content rendering. 1. **Implementing shimmer animations for initial loads** (11:26) — Replacing blank screens with animated skeleton loaders to vastly improve perceived initial load speed. 1. **Resolving JavaScript blocks during application bootstrapping** (17:43) — Bypassing synchronous runtime configuration and initialization bottlenecks to prevent javascript thread locking. 1. **Enhancing runtime performance through interface interactions** (24:03) — Masking slow backend network responses through interface transitions and optimistic data updates. 1. **Balancing performance scores and user experience** (27:35) — Prioritizing the actual subjective experience of loading states over chasing flawless technical performance metrics. ## Related Moments - [Evaluating performance impacts of advanced CSS animations](https://www.wearedevelopers.com/videos/1806-nolojs-avoiding-javascript-cruft-with-html-and-css-aaron-t-grogg) (from "NoLoJS - Avoiding JavaScript Cruft with HTML and CSS - Aaron T. Grogg") - [Navigating browser constraints through web animation performance tier lists](https://www.wearedevelopers.com/videos/1753-wearedevelopers-live-spicy-vanilla-web-css-magic-more) (from "WeAreDevelopers LIVE – Spicy Vanilla Web, CSS Magic & More") - [Understanding user dissatisfaction with web application performance](https://www.wearedevelopers.com/videos/1040-core-web-vitals-put-your-application-into-orbit-with-best-practices) (from "Core Web Vitals: Put your application into orbit with best practices") - [Building an application shell to improve perceived loading performance](https://www.wearedevelopers.com/videos/212-pwa-fundamentals-websites-with-superpowers) (from "PWA Fundamentals: websites with superpowers") - [Applying quick performance wins to personal websites](https://www.wearedevelopers.com/videos/903-catching-up-on-the-basics-you-don-t-really-need-that-much-code) (from "Catching up on the basics you don't really need that much code") - [Optimizing browser performance using modern island architecture](https://www.wearedevelopers.com/videos/872-multiple-ships-to-the-island-micro-frontends-island-architectures) (from "Multiple Ships to the Island - Micro Frontends & Island Architectures") ## Related Articles - [Dev Digest 133 - Back to Front](https://www.wearedevelopers.com/magazine/474-dev-digest-133-back-to-front) - [Dev Digest 139 - Soft and hard queries](https://www.wearedevelopers.com/magazine/487-dev-digest-139-soft-and-hard-queries) - [Dev Digest 130 - The Diablo is in the details](https://www.wearedevelopers.com/magazine/470-dev-digest-130-the-diablo-is-in-the-details) - [Dev Digest 113 - Debugging above the cloud](https://www.wearedevelopers.com/magazine/422-dev-digest-113-debugging-above-the-cloud) ## Related Jobs - [Senior Web Designer, Growth](https://www.wearedevelopers.com/jobs/ext/102722-senior-web-designer-growth) at **Intercom, Inc.** - [Staff Frontend Engineer](https://www.wearedevelopers.com/jobs/48313-staff-frontend-engineer) at **SMG Swiss Marketplace Group** - [Junior Frontend Engineer](https://www.wearedevelopers.com/jobs/ext/1532351-junior-frontend-engineer) at **Almedia** - [Staff Frontend Engineer (Expert+/Lead equivalent) - Hybrid working model, 100%, Ho Chi Minh City](https://www.wearedevelopers.com/jobs/48314-staff-frontend-engineer-expert-lead-equivalent-hybrid-working-model-100-ho-chi-minh-city) at **SMG Swiss Marketplace Group** - [Senior Product UI Designer](https://www.wearedevelopers.com/jobs/ext/1998621-senior-product-ui-designer) at **Almedia** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/679408-remote-senior-full-stack-engineer) at **Edge Impulse**