You commented SLOW. Here's the exact string from the reel, what each of the twenty items actually does, and the audit prompt I ran on my own app.

The prompt, word for word

Hey Claude, my vibe-coded app is so slow. I need you to compress all the images, add lazy loading, split the code into chunks, cache the API responses, add a CDN, minify the JS and CSS, index the database, fix the unnecessary re-renders, debounce the input handlers, paginate the large lists, remove the unused dependencies, defer the non-critical scripts, add loading skeletons, compress the API payloads, add database connection pooling, cache the expensive queries, fix the N+1 queries, turn on server-side caching, rate-limit the public routes, and run a Lighthouse audit. Go through the codebase, do each one that applies, skip the ones that don't and tell me why, and show me before and after numbers. Make no mistakes.

Paste it into Claude Code inside your project. One string, not twenty messages. The last two sentences are the ones that stop it skipping things.

What each one does and why it matters

  1. Compress all the images. Images are usually most of the page weight. WebP or AVIF at the size they're displayed, not the 4,000px original.

  2. Add lazy loading. Anything below the fold loads when the user gets there, not before. One attribute on each image and iframe.

  3. Split the code into chunks. Users download the code for the page they're on, not the whole app. Route-level splitting first.

  4. Cache the API responses. The same request from the same user in the same minute should not hit your server twice.

  5. Add a CDN. Static files served from a node near the user instead of your one server. Vercel, Netlify and Cloudflare do this by default; check it's on.

  6. Minify the JS and CSS. Strips whitespace and comments from what the browser downloads. Most build tools do it in production mode. Confirm you're building in production mode.

  7. Index the database. Every column you filter or sort on needs an index. Without one the database reads the whole table on every query. This was one of the problems Claude found in my app.

  8. Fix the unnecessary re-renders. React components that redraw on every keystroke because state lives too high up. Memoise, or move state down.

  9. Debounce the input handlers. Search boxes and filters should wait until the user stops typing before they fire a request.

  10. Paginate the large lists. Load 50 rows, not 5,000. Claude found two screens in my app that quietly cut off at a fixed number instead of paging.

  11. Remove the unused dependencies. Every package you installed and never used still ships to the browser. Run a dependency check and delete.

  12. Defer the non-critical scripts. Analytics, chat widgets and tracking pixels load after the page is usable, not before.

  13. Add loading skeletons. Grey placeholder shapes while data loads. The page feels faster even when it isn't.

  14. Compress the API payloads. Gzip or Brotli on every JSON response, and don't send fields the screen never shows.

  15. Add database connection pooling. Serverless functions open a new database connection on every request unless you pool them. At scale this is what takes Supabase and Postgres down.

  16. Cache the expensive queries. Dashboard totals and reports that take seconds to compute get cached for a minute, not recomputed per visit.

  17. Fix the N+1 queries. One query for the list, then one more query per row. 100 rows = 101 queries. Join or batch instead.

  18. Turn on server-side caching. Pages that look the same for everyone get rendered once and served from cache.

  19. Rate-limit the public routes. Any endpoint a stranger can hit needs a limit per IP. Claude found three places in my app where a bot could burn paid API credits or flood my Slack.

  20. Run a Lighthouse audit. Chrome's built-in report. Run it before and after so you can prove the numbers moved.

The audit prompt: what breaks at 1,000 users

Run this one first if you only run one. It doesn't change anything. It reads your code and ranks what will hurt.

I vibe-coded this app. What breaks when I get 1,000 real users? Don't change anything. Give me the top 10 problems ranked by severity, each with the file and line, what happens at 1,000 users in one sentence, and the one-line fix.

On my lead-gen app it came back with ten problems. Three were on the list above: unindexed lookups, lists that cut off instead of paging, and public routes with no rate limit. The other seven were things I'd never have asked about, like a save that reported success when it failed. Fix the top three before you spend a penny on ads.

Order to do them in

Audit first. Then the database items (index, pool, N+1, paginate). Then the network items (CDN, caching, payloads, rate limits). Then the front-end polish (images, lazy loading, chunks, skeletons, re-renders). Lighthouse last, so you have a before and after.

If this one finds something scary in your app, reply and tell me what it was.

Mike

PS: I build lead-gen systems for local businesses at OptiMAX, optimax-ai.com.