I am creating a linktree clone. Each user can create up to 5 different (page) links.
I am looking to search for (page) where (page_name) = get data from page url - path.
I am worried for WU based on previous experiences as user base is currently 5k with potentially 25k pages.
Is there a better way to optimize this as this will do 25k searches everytime a link is visited
My plugin Data Jedi can help with that. If you expect to have 25K pages, Iâd expect if implemented properly, the search will require 0.15 WUs to perform, as you can create a data type called âpagesâ, create 5 fields to begin (so as to batch each field as a list of 5,000 items), and when you perform the search you just do a search for pages data type with constraint of unique ID equals to the one entry in the DB unique ID. This results in an individual data request, which costs just 0.15 WUs, then there will be some extra WU overhead for # of characters returned, which will be dramatically less than if you used a legacy approach.
The way you would use Data Jedi for this use case is to create the âobjectsâ via API connector to create the data object in Bubble. Then you will use the elements and actions of Data Jedi to create those âobjectsâ and save them to the fields in Bubble DB.
You will be able to use the fields of the objects in dynamic expressions just like any other data type available in Bubble since it is just the same things a âdata from api connectorâ.
With Data Jedi you can later modify and delete this âobjectsâ via actions built into the Data Jedi plugin.
Iâll be adding in some functionality to the plugin in the next month as well to create a sitemap file for the objects as well, but that is not in there yet.
If youâd need any help in getting this point together feel free to reach out via PM to setup a time to discuss. But the documentation is very detailed and can be easily fed into an LLM for you to ask an AI how to use it properly.
Unless Iâm misunderstanding something (which is likely), I would suggest:
Donât bother with a search of some string of text in the URL. In a database, we have ID fields (and Slugs) to prevent this kind of thing.
If you create a page with a âtype of contentâ = [data type] and use the Slug field, the link with the slug will retrieve the database row required.
The database row required should have the fields you need to display on that page.
Each page view should only need the WU units to retrieve one row of data.
Personally, I would use Supabase.io or https://neon.tech - they have much better query speeds/pricing in terms of what you can query in Bubble. Postgres powered, excellent with JSON-specific data, in which, youâd likely want to keep your rows minified. The only WU youâd have to worry about is backend stuff then, like creating/updating. When you want to query, thatâll cost virtually nothing on the client, or if you do it server-based, your query results would so small that youâre basically only paying for the API request.
This would be the most optimal way without incurring additional WU costs. Speed and optimization is incredibly important for these types of apps, and no offense to Bubble, but it lacks that for now until they improve the over-all engine. While Bubble is heavy-handed on one side (functionality, productiveness, etc..), it lacks on the other, which is SEO, and speed specifically.