Is it possible to create an open client's page?

Let’s say I’m bulding a SaaS platform for my clients to create and publish a knowledge base page. Inside the admin he can register all question/answers that will be displayed in his own knowledge base display. How can I build this page, so that it has a public URL for each one of the clients? Any suggestions? Is it possible with bubble’s resources? Thanks!

Definitely possible.
You need to create the ‘knowledge base’ page and set the data source to show the knowledge base dataset of the business. When you refer to this page, you’ll simply send it some data so it’ll show the knowledge base of the business you want them to see.

1 Like

@cho thanks for the answer! but not sure if I understood completely how I do it… can you elucidate a little further? tks

Hi @cho , sry, to followup, but nobody else gave an answer… I tried several formats, but didnt reach out a solution. Could you explain a little further pls?

Other forum guru’s, any hint on how to solve this typical SaaS issue? @NigelG @romanmg @ashley.benson.tait @emmanuel @csfalcao

Hi there,

I made you a little public app to see how it works.
Once you understand it’ll be simple.

First, select a company, when you select a company I set a state on index that saves the selected Company.
When you click “See private page” we simply send it the index’s selected company.

If you try adding a link to that page, bubble will give you an error, the secret is that you must set the “Type of content” of the page. If you do, then you can send data to the page and it’ll display the data.

Here is a link to the editor: saas-test | Bubble Editor

I hope that’s what you meant and it helps.

PS. setting a state is just an extra step I added, you could navigate the user to the private page from the repeating group and send the data then. I just thought this is more intuitive in this example.

In your knowledge base, you’d have a lot of different data types.

You’d have “Frequently asked questions” “Comments” “Updates” etc…

What you want to do is setting the “Type of the page” to a Company.
And make sure that every different data type you create has a “related-company” field that saves whichever company that data type is related to.

Now you can simply use the Knowledge Bases’s company as a reference point for every related data type.


HUGE THANKS! I’ll get into it right now.

1 Like

Yes, it definitely worked out. I replicated it and did some variations to practice, so I get the basic idea. It produces a link that can be used as a unique link to access the knowledge base (so I can access the main page directly, and not via the buttons). Again, its amazing how the community donate some time to help others. Truly amazing. I’m sending you a PM regarding machine learning! Again, very much appreciated the help, thanks.

1 Like

Hey @felipe, @cho et al.

Yeah, that rocks… just like Air BnB :smiley:

Hey, Felipe. I suggest that once you get that idea down, consider JIT (just in time) delivery. When a site can predict the next steps of a user (we usually can as we build the environment), then we can start to prepare for their actions and preload assets just ahead of time. This preloading can’t be done in a page navigation paradigm. Hence, I suggest you consider working with loading draggable groups (set super sneakily above the viewport (ie. y= -1000)… This way you can preload environments for your users and when they’re ready for them, simply animate the draggable groups down into view. Baddabing bro! You just reduced your clunky page navigation to a smooth lightening quick experience:slight_smile:

rant-o-the-day (please don’t read this! haha)

I got this idea as much from business school as from remembering the quiet chaos that goes on backstage at a play. On stage, all looks elegant and clean. Backstage, everyone’s running around frantically preparing for what is required on stage. We should be more like that when building I think. Why should the audience of a play have to care about the convoluted preparatory steps that occur backstage in order to facilitate an elegant viewable experience? When you force the users to wait for pages to load, it’s airing your dirty laundry ladies and gentlemen :smiley:

Or, how about a restaurant that says… Oh, ok, your main course is done… Wonderful. Now we’ll start to prepare desert. And you can eat it just as soon as the dishwasher washes the dish you just gave me… I’ll take it back to him, he can wash it and we’ll put your desert on it lickety split!. Where’s the flow? Websites are super clunky far too often. A play, a restaurant, Toyota’s car manufacturing plant would never stand for that kind of inefficiency. So why do we persist in this page-based wait-for-me-to-load-your-page-paradigm?

This concludes your friendly Bubble soap box rant-o-the-day.

Peace y’allz!


1 Like

nice, as always @ashley.benson.tait!

I’ve read that the groups are loaded only when shown, so even if I create the structure you are suggesting (which I am doing), it might take some time loading the group once it is shown. Or do you have a solution for that too?

Also, when setting the Y = -1000, it gets kinda of hard to edit them right? They disappear! kkkk

But definitely using groups instead of pages and playing with hide and show animated actions makes the app smoooooth… cheers!

Hey @felipe my friend :smiley:

Yes, groups, like pages are only loaded when shown. Agreed.

That is why you ultra sneakily ninja that loading in visible mode, just squished up above the top of the viewport. So nobody has to sit and watch or wait for your content to load (is. just-in-time supply chain management theory :slight_smile: )

Yes, editing is a bear up there, so of course when you’re building it, you just edit your group down below… When it’s all pretty, pack it up above. Then you can trigger it to be loading (out of sight) above and pop down when needed… (like a Bubble swiss army knife amirite?)

Yes, I think the best practice in terms of combining persistence and speed is to implement CRUD (create read update delete) in state form, which Emmanuel said was not currently possible in a post somewhere. @NigelG and some other brilliant folks were working on deleting from a state based list but the solution siezed up and was not efficient, was slow, or even crashed with hefty lists.

I work with data in state based lists that automatically store to the DB. My solution for your aforementioned loading quandry is to pack up your state based data into a single item field. Then the DB only has to upload and download a single cell of info. (it’s quick and holds over 50,000 items nicely) That means implementing an index and multi-field (lists of lists all rolled up into a single datapoint) state system. It’s good because it also allows you to enter doubles and blanks in a state-based system.

What are you building Felipe?



1 Like