Build the product

My Bubble app slows to a crawl once I have a few thousand records. How do I fix performance without rebuilding in code?

The short answer

Most Bubble slowness is not the platform, it is unindexed searches, do-a-search-for calls nested inside repeating groups, and loading fields you never display. Add constraints so searches return dozens of rows not thousands, cache heavy results in custom states, and move anything batch-like into backend workflows. If you have genuinely outgrown that after tuning, that is a signal to move the hot path to code, not the whole app.

Go deeper, your way

19 hand-picked resources, 19 link-checked. Pick how you want to dig in.

▶️ Video
✓ Link checked Free Advanced

Why we picked it A recorded conversation where the performance book author walks through how database design drives Bubble speed, including satellite data types and search patterns. Watching him reason through tradeoffs lands differently than reading a checklist. Worth it if your slowness is really a data structure problem.

Fast Database: cheat code for your Bubble app performance (interview with Petter Amlie)

On YouTube (Zeroqode) by Zeroqode and Petter Amlie ~45 min

  • Database structure is the deepest lever on Bubble performance
  • Satellite data types can make heavy searches lightweight
  • Design for the queries you run most, not just clean storage
Watch on YouTube youtube.com
▶️ Video
✓ Link checked Free Beginner

Why we picked it The most direct fix for a repeating group choking on thousands of rows is to stop loading them all at once. This shows how to page a repeating group step by step so it fetches a screen at a time. A concrete change you can ship the same day.

Pagination for Repeating Groups (Bubble tutorial)

On YouTube ~15 min

  • Never render hundreds of rows at once
  • Pagination fetches one page of data per view
  • Fewer loaded rows means faster render and lower workload
Watch on YouTube youtube.com
▶️ Video
✓ Link checked Free Intermediate

Why we picked it When you need to touch thousands of records, doing it in one go times out; a recursive backend workflow processes them in safe batches instead. This walks through building that loop from scratch. It is the standard pattern for batch work in Bubble, so it is worth learning once.

Recursive workflows in Bubble (how to loop through a list)

On YouTube ~20 min

  • A recursive workflow reschedules itself to process a list in chunks
  • Batching avoids timeouts on large updates
  • This is how you run big jobs without freezing the app
Watch on YouTube youtube.com
▶️ Video
✓ Link checked Free Beginner

Why we picked it A short, plain explanation of when to reach for a backend workflow instead of doing work on the page. If the term still feels abstract, this makes the decision obvious with real examples. Good primer before the recursive workflow deep dives.

Why use backend workflows for your Bubble app

On Planet No Code by Planet No Code ~10 min

  • Move slow or bulk work off the page and onto the server
  • Backend workflows run even when the user closes the tab
  • Use them to keep the interface fast under heavy data
Open planetnocode.com
📖 Book
✓ Link checked Paid Advanced

Why we picked it This is the single most complete reference on why Bubble apps slow down and how to fix it, written by the person most founders in the Bubble community learn performance from. It goes deep on database structure, search efficiency, and page speed with detail Bubble's own docs skip, including input from Bubble's head engineers. If you are past quick fixes and want to understand the mechanics before deciding whether to rebuild anything, start here.

The Ultimate Guide to Bubble Performance

From Amlie Solutions by Petter Amlie book

  • Most slowness is app structure, not the platform hitting a hard limit
  • How you design your data types decides how fast searches can ever be
  • Page element count and repeating group size compound as your data grows
Open amliesolutions.com
📄 Article
✓ Link checked Free Intermediate

Why we picked it This is Bubble's own guide, and it names the exact levers that decide whether a search stays fast as your data grows: put constraints on the search itself instead of reaching for :filtered, keep sorts and filters at the database level, and watch out for searches nested inside repeating group cells. It is written against how Bubble actually queries data, so the advice maps directly to the slowdown you are seeing, not to generic web performance. Treat it as your first checklist before assuming you need to rebuild anything.

Performance and scaling

From manual.bubble.io by Bubble

  • Filters shown in the search palette run on the database and are fast; :filtered runs in the browser after the data loads and gets slow past a few thousand records, so move that logic into search constraints.
  • A search placed inside a repeating group cell runs once per row, which multiplies your query count; pull it out or restructure the data so one search feeds the whole list.
  • Order constraints from most to least restrictive and prefer exact matches over 'contains' so Bubble can eliminate the bulk of records early.
Open manual.bubble.io
📄 Article
✓ Link checked Free Intermediate

Why we picked it Anything batch like, bulk updates, recalculations, imports, belongs on the server, not in a page the user is staring at. This is the official guide to doing that work in backend workflows without timing out or burning workload. It pairs directly with the advice to move heavy operations off the hot path.

Optimizing backend workflows

From Bubble Docs by Bubble 12 min read

  • Run bulk and batch work server side so the interface stays responsive
  • Chunk large jobs to avoid timeouts and runaway workload
  • Schedule expensive results once and store them for instant reads
Open manual.bubble.io
📄 Article
✓ Link checked Free Beginner

Why we picked it Slowness and cost come from the same root: work your app does that it did not need to. This explains how Bubble measures that work across page loads, searches, and workflows, which gives you a number to chase instead of a vague feeling. Understanding it makes the other optimizations concrete.

The workload calculation

From Bubble Docs by Bubble 10 min read

  • Searches, workflows, and page loads all consume measurable workload
  • Custom states live on the device and cost nothing to set
  • The same waste that spikes workload is what makes pages feel slow
Open manual.bubble.io
📄 Article
✓ Link checked Free Intermediate

Why we picked it A free, focused shortlist of the highest leverage fixes from the author of the definitive performance book. If you cannot buy the book yet, this is the fastest way to get his core thinking on searches, element count, and structure. Practical enough to apply the same afternoon.

6 useful tips to improve performance in Bubble

From Amlie Solutions by Petter Amlie 15 min read

  • Keep visible element count and repeating group rows low
  • Constrain searches so they return dozens of rows, not thousands
  • Structure data around how you read it, not just how you store it
Open amliesolutions.com
📄 Article
✓ Link checked Free Beginner

Why we picked it Repeating groups are where most Bubble apps quietly go wrong, especially when each cell runs its own search. This walks through how they load, why nesting multiplies work, and how to feed them without dragging in thousands of rows. It targets the exact structure behind your slowdown.

How to use Repeating Groups in Bubble

From Amlie Solutions by Petter Amlie 20 min read

  • Nested repeating groups multiply element count fast
  • A search inside every cell means many searches, not one
  • Cap rows and use pagination or infinite scroll for large lists
Open amliesolutions.com
📄 Article
✓ Link checked Free Intermediate

Why we picked it A clear, example driven intro to what backend workflows are and the jobs they are built for, from bulk edits to scheduled recalculations. Once you see the patterns, moving heavy work off the page stops feeling advanced. Good bridge between the concept and doing it.

5 ways to use Backend Workflows in Bubble

From Amlie Solutions by Petter Amlie 15 min read

  • Backend workflows run on the server without blocking the user
  • Use them for bulk edits, scheduled jobs, and heavy calculations
  • They keep expensive work out of the page load path
Open amliesolutions.com
📄 Article
✓ Link checked Free Intermediate

Why we picked it Airdev is one of the largest Bubble agencies, and this is their production checklist for keeping apps fast. It reads like a team standard rather than a blog post, covering searches, page structure, and loading order in one place. Useful when you want an opinionated list to audit against.

Optimize for speed (Bubble Development Best Practices)

From Airdev by Airdev 15 min read

  • Load only the data a page actually shows
  • Prefer server side constraints over client side filtering
  • Treat speed as a build habit, not a late cleanup
Open docs.airdev.co
📄 Article
✓ Link checked Free Intermediate

Why we picked it Workload and speed problems share a cause: work your app repeats needlessly. This lays out the cache once and reuse pattern (do a search, store it in a custom state, reference it everywhere) that both speeds pages and cuts cost. Concrete tactics you can apply to a specific slow page.

How to optimize Workload Units in your Bubble app

From Minimum Code by Tom (Minimum Code) 15 min read

  • Do a heavy search once and cache it in a custom state
  • Reuse the cached list instead of re searching per element
  • Cutting repeated searches speeds pages and lowers workload together
Open minimum-code.com
📄 Article
✓ Link checked Free Intermediate

Why we picked it A hands on walkthrough of the query mistakes that slow Bubble down, from client side filtering to nested searches, with the server side fix for each. It maps almost one to one onto the common causes of a few thousand record slowdown. Practical and example heavy.

Optimize Database Queries in Bubble

From RapidDev by RapidDev 15 min read

  • Client side filters download everything before narrowing
  • Constraints run on the server and use indexes
  • Paginate and cache instead of loading full result sets
Open rapidevelopers.com
📄 Article
✓ Link checked Free Intermediate

Why we picked it A common instinct is to store a list of things on a record to avoid searching, and it sometimes backfires. This compares stored lists against live searches so you pick the faster one for your case. Useful nuance once you have done the obvious constraint fixes.

List or Searches: which is faster in Bubble?

From No Code Assistant by Himanshu Sharma 10 min read

  • Stored lists and live searches each win in different situations
  • A well constrained search is often faster than a huge stored list
  • Match the approach to how the data is read
Open nocodeassistant.com
📄 Article
✓ Link checked Free Beginner

Why we picked it A founder facing answer to the worry underneath your question: is Bubble itself the ceiling, or is it your build? It separates real platform limits from self inflicted slowness so you do not panic and rebuild prematurely. Grounding before you make an expensive decision.

Are Bubble Apps Scalable? (2026 Founder's Guide)

From Lowcode Agency by Lowcode Agency 15 min read

  • Most scaling pain is build quality, not a platform wall
  • Bubble handles far more than a few thousand records when built well
  • Fix structure before concluding you have outgrown the tool
Open lowcode.agency
✍️ Essay
✓ Link checked Free Intermediate

Why we picked it Most migration writing is either no-code hype or agency sales pitches. This one gives you an actual checklist to run before you agree to a rewrite: five concrete signals (page loads over 3 seconds, databases past 30,000 to 50,000 records, platform fees over 10% of revenue, blocked enterprise deals, workflows eating half your dev time) plus a rough breakeven math on migration cost versus platform fees. Read it as a starting point for the conversation with your co-founder, not a verdict, because your numbers are what settle it.

When to Migrate Off Bubble (or Any No-Code Tool): The Decision Framework

From AlterSquare by Huzefa Motiwala

  • Treat migration as a revenue-triggered decision, not a taste one: the piece suggests only starting to plan the move once you are hitting real limits AND have the MRR to fund it, roughly $5,000 to $15,000.
  • It names specific pain thresholds (load time, record count, share of revenue going to platform fees) so a vague "it feels slow" argument becomes a measurable one.
  • Full rebuilds are expensive and slow to pay off, so partial or hybrid migration (keep the no-code shell, move the heavy logic into code) is often the honest middle path.
Open altersquare.io
📄 Article
✓ Link checked Free Beginner

Why we picked it A written, beginner friendly companion to the recursive workflow videos, useful if you prefer to read and copy the setup. It explains the self scheduling loop and the offset trick for processing large lists. Good reference to keep open while you build the workflow.

Recursive workflows for beginners in Bubble

From No Code Assistant by Himanshu Sharma 12 min read

  • A recursive workflow schedules its next run at the end of each pass
  • Use an offset to walk through records in batches
  • This handles thousands of records without timing out
Open nocodeassistant.com
🛠️ Tool
✓ Link checked Free Intermediate

Why we picked it This is Bubble's reference page on how searches actually execute, and it is the highest-leverage read for your problem because it explains that Bubble indexes your data automatically once the volume is large enough, and that privacy rules keep unmatched data from ever leaving the server. Understanding both means you can set your database up so the engine does the filtering for you instead of shipping thousands of rows to the browser first. Keep it open as a checklist while you audit each slow search in your app.

Searches (Optimization checklist)

From manual.bubble.io by Bubble

  • Bubble adds database indexes automatically for common query patterns once your dataset is big enough, and it does not cost extra workload, so structuring searches around real constraints lets that indexing kick in.
  • Privacy rules are not just security: fields a user cannot access never leave the server, which cuts the data returned to the browser and the workload that comes with it.
  • Text matching only indexes the first 256 characters, so very long text fields are a poor thing to search on when speed matters.
Open manual.bubble.io

People also ask

Also in D2C

The same ground, over in Make your product, our D2C track.

Also in How Founders Use AI

How founders actually use AI for this, over in Vibe Coding.

eChai Partner Brands