<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/fable-broke-my-app-and-couldn-t-fix-it-izqkzhecv" -->

---
title: Fable Broke My App and Couldn't Fix It | daily.dev
description: A developer investigates severe GPU performance issues in their web app (T3 Code), discovering that a simple Tailwind CSS animate-pulse class on small sidebar...
canonical: https://daily.dev/posts/fable-broke-my-app-and-couldn-t-fix-it-izqkzhecv
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Fable Broke My App and Couldn't Fix It | daily.dev
og:description: A developer investigates severe GPU performance issues in their web app (T3 Code), discovering that a simple Tailwind CSS animate-pulse class on small sidebar...
og:url: https://daily.dev/posts/fable-broke-my-app-and-couldn-t-fix-it-izqkzhecv
og:image: https://api.daily.dev/og/posts/IZqkzhEcv.png
og:image:alt: Fable Broke My App and Couldn't Fix It
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Fable Broke My App and Couldn't Fix It

**[Theo - t3․gg](https://daily.dev/sources/t3dotgg)** · 27 min read · 22 upvotes · 3 comments

## Summary

A developer investigates severe GPU performance issues in their web app (T3 Code), discovering that a simple Tailwind CSS animate-pulse class on small sidebar icons was causing 20-50% GPU utilization on high-refresh-rate displays. AI coding agents (Codex/Fable/Claude) failed to identify the root cause and gave misleading suggestions, but were useful for building custom debugging tools. The fix involved removing infinite CSS animations and a noise layer that combined with backdrop-blur to compound GPU load. The post also reveals that idle Claude.ai tabs consume ~10% GPU on their own. Key takeaway: engineers still need domain expertise to steer AI agents effectively, especially for CSS/rendering performance issues that browser DevTools don't surface well.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=TKlOCjLMNtw>

## Questions this post answers

### Why would a simple web app cause high GPU process usage on a high refresh rate monitor?

Infinite CSS animations, like an opacity pulse on an icon, force the browser compositor to render frames continuously at the display refresh rate even when nothing visually changes. On a 120Hz or 120fps 5K display, several such infinite animations (a pulsing terminal icon, typing dots, status indicators) combined with backdrop blur and a low-opacity noise overlay layer can push GPU process usage up to 50%, since each animated element gets promoted to its own GPU layer that keeps recompositing forever.

_Anyone chasing a GPU-hogging animation bug can compare notes on CSS compositor pitfalls via daily.dev._

### Can AI coding agents like Codex or Claude reliably diagnose GPU performance bugs caused by CSS?

Not reliably. Both Codex-based and Claude-based agents repeatedly misdiagnosed a GPU-pegging bug in a production web app, fixating on irrelevant elements like an 'ultrathink' composer gradient effect rather than the actual cause, which was an infinite animate-pulse CSS class on a terminal icon combined with backdrop blur and a noise layer. Built-in browser performance tools also failed to surface the issue since it lived at the CSS compositor layer rather than in JavaScript execution.

_Developers weighing how far to trust agentic coding tools on tricky bugs can track real debugging accounts like this on daily.dev._

### How much GPU can an idle Claude.ai browser tab use?

An idle Claude.ai page was found to use roughly 10% of GPU on a high-end laptop for each open tab, meaning multiple open Claude tabs compounded into a significant chunk of overall GPU load even while doing nothing. Closing extra idle Claude tabs directly reduced overall browser GPU process usage during a broader performance investigation.

_Developers auditing browser resource usage across AI chat tabs can find similar findings and fixes through daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@brosh** · 6 upvotes

> Clickbait title :)

**@confidentcoding** · 3 upvotes

> Theo covered my article [Agentic Coding is a Trap](https://www.youtube.com/watch?v=lNVa33qUzZ8), and now he gets to live it. 😅
>
> It's true that you need expertise to use these tools. The real fun part is what happens in 5 years when the juniors that have relied on LLMs have none, because [AI coding removes the friction and opportunities that lead to expertise](https://larsfaye.com/articles/ai-coding-will-prevent-expertise).

## Similar posts on daily.dev

- [I joked last year that by leveraging…](https://daily.dev/posts/i-joked-last-year-that-by-leveraging--shgkp9uqd) · Justin Searls · 0 upvotes · 0 comments

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#ai-agents](https://daily.dev/tags/ai-agents), [#css](https://daily.dev/tags/css), [#tailwind-css](https://daily.dev/tags/tailwind-css)

[View this post on daily.dev](https://daily.dev/posts/fable-broke-my-app-and-couldn-t-fix-it-izqkzhecv)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Fable Broke My App and Couldn't Fix It","url":"https://daily.dev/posts/fable-broke-my-app-and-couldn-t-fix-it-izqkzhecv","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/fable-broke-my-app-and-couldn-t-fix-it-izqkzhecv"},"datePublished":"2026-08-04T19:05:33.219Z","dateModified":"2026-09-13T18:54:13.367Z","description":"A developer investigates severe GPU performance issues in their web app (T3 Code), discovering that a simple Tailwind CSS animate-pulse class on small sidebar...","image":"https://i.ytimg.com/vi/TKlOCjLMNtw/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/TKlOCjLMNtw/sddefault.jpg","isAccessibleForFree":true,"articleSection":"Theo - t3․gg","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Theo - t3․gg","logo":"https://media.daily.dev/image/upload/s--UmX7IyU3--/f_auto/v1704628081/logos/t3dotgg.jpg","url":"https://daily.dev/sources/t3dotgg"},"commentCount":3,"discussionUrl":"https://daily.dev/posts/fable-broke-my-app-and-couldn-t-fix-it-izqkzhecv","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":22},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":3}],"keywords":"webdev,ai-agents,css,tailwind-css","timeRequired":"PT27M","video":{"@type":"VideoObject","name":"Fable Broke My App and Couldn't Fix It","description":"A developer investigates severe GPU performance issues in their web app (T3 Code), discovering that a simple Tailwind CSS animate-pulse class on small sidebar...","thumbnailUrl":"https://i.ytimg.com/vi/TKlOCjLMNtw/sddefault.jpg","uploadDate":"2026-08-04T19:05:33.219Z","duration":"PT27M","url":"https://api.daily.dev/r/IZqkzhEcv","embedUrl":"https://www.youtube.com/embed/TKlOCjLMNtw"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Theo - t3․gg","item":"https://daily.dev/sources/t3dotgg"},{"@type":"ListItem","position":3,"name":"Fable Broke My App and Couldn't Fix It"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/fable-broke-my-app-and-couldn-t-fix-it-izqkzhecv","comment":[{"@type":"Comment","text":"Clickbait title :)","datePublished":"2026-08-05T10:29:58.903Z","url":"https://daily.dev/posts/IZqkzhEcv#c-iVHP0SQXa","author":{"@type":"Person","name":"Brosh","url":"https://daily.dev/brosh","image":"https://lh3.googleusercontent.com/a/ACg8ocLpvY4y833zixdkjOupfhxHVNi_pb6tBd6TlJfg6pcETthBJxXm=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":6}},{"@type":"Comment","text":"Theo covered my article Agentic Coding is a Trap, and now he gets to live it. 😅\nIt’s true that you need expertise to use these tools. The real fun part is what happens in 5 years when the juniors that have relied on LLMs have none, because AI coding removes the friction and opportunities that lead to expertise.","datePublished":"2026-08-05T20:32:44.322Z","url":"https://daily.dev/posts/IZqkzhEcv#c-4FDoC5Rjn","author":{"@type":"Person","name":"Lars Faye | Confident Coding","url":"https://daily.dev/confidentcoding","image":"https://media.daily.dev/image/upload/s--OGZu5DEc--/f_auto/v1772569630/avatars/avatar_umWZ9aQAng34qk5aaJl2q?_a=BAMAMiiu0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/fable-broke-my-app-and-couldn-t-fix-it-izqkzhecv#faq","mainEntity":[{"@type":"Question","name":"Why would a simple web app cause high GPU process usage on a high refresh rate monitor?","acceptedAnswer":{"@type":"Answer","text":"Infinite CSS animations, like an opacity pulse on an icon, force the browser compositor to render frames continuously at the display refresh rate even when nothing visually changes. On a 120Hz or 120fps 5K display, several such infinite animations (a pulsing terminal icon, typing dots, status indicators) combined with backdrop blur and a low-opacity noise overlay layer can push GPU process usage up to 50%, since each animated element gets promoted to its own GPU layer that keeps recompositing forever. Anyone chasing a GPU-hogging animation bug can compare notes on CSS compositor pitfalls via daily.dev."}},{"@type":"Question","name":"Can AI coding agents like Codex or Claude reliably diagnose GPU performance bugs caused by CSS?","acceptedAnswer":{"@type":"Answer","text":"Not reliably. Both Codex-based and Claude-based agents repeatedly misdiagnosed a GPU-pegging bug in a production web app, fixating on irrelevant elements like an 'ultrathink' composer gradient effect rather than the actual cause, which was an infinite animate-pulse CSS class on a terminal icon combined with backdrop blur and a noise layer. Built-in browser performance tools also failed to surface the issue since it lived at the CSS compositor layer rather than in JavaScript execution. Developers weighing how far to trust agentic coding tools on tricky bugs can track real debugging accounts like this on daily.dev."}},{"@type":"Question","name":"How much GPU can an idle Claude.ai browser tab use?","acceptedAnswer":{"@type":"Answer","text":"An idle Claude.ai page was found to use roughly 10% of GPU on a high-end laptop for each open tab, meaning multiple open Claude tabs compounded into a significant chunk of overall GPU load even while doing nothing. Closing extra idle Claude tabs directly reduced overall browser GPU process usage during a broader performance investigation. Developers auditing browser resource usage across AI chat tabs can find similar findings and fixes through daily.dev."}}]}
```

