Creating different user types for a 2-sided marketplace

Hi everyone :wave::wave:, excited to join the bubble community!

We are relatively new to bubble and in the beginning stages of building a 2 sided marketplace. We would love some advice to use the most logical structure to set us up for success:

We have 2 types of users, supply-side and demand-side. Each supply-side can offer themselves as a service for the demand-side users to book (similar to Fiverr, but we want just one „listing“ possible per supply-side user). Each side should also be able to review & rate the other (with different types of rating options depending on supply/demand side).

When a supply-side user signs up, they should get redirected to fill out their profile (bio / advice offering etc.), which then gets shown on a search-results page for anyone (demand-side) coming on the website searching for the right supplier.

A demand-side user should also be able to create an account, but should fill out different info about themselves than a supply-side user.

What is the most „elegant“ way to do this? It looks like bubble only has one „User“ possible under data type(?).

At the moment, our workaround is to have both of our different user sides register the same basic „User“ profile (e-mail & password). Then, a supply-side user gets redirected to create a separate „supply-side listing“ data type, and vice-versa for a demand-side user. So we end up with 2 data types on top of the default bubble „User“.

Looking at our requirements and with an eye towards simplicity (& managing our users best in the future), is this the optimal way? Should we look to combine all the data into the one default „User“ data type?

Thank you guys for any advice :slight_smile:


I have multiple templates for 2 sided marketplaces. Check out this one

Follow the signup button at the top to see the signup flow.

In this case the supply and demand side both have the same info as both providers and clients will have profiles (provider offering services; client requesting service - kind of like a job posting)

Because of that setup I have only one user type that has a field that is an option set with two options (provider or client) to recognize the difference in user type.

There is also a Profile-Listing data type that stores all the information regarding the profile with a related field to User.

You could do something similar where the User has datatype has limited and basic info, while there is a related data type of Profile data (if you want to demand side and the supply side to have different info, maybe make two different profile data types)

1 Like

I expirienced the same problem, building an event platform with type of users: a) organizers and b) attendees.

What worked for us was creating 2 more data types, like you one for suppliers and one for buyers. And to connect each data to bubble default to “user” data, created 2 fields, each containing each data type.

So you have a data user, with email, name supplier profile (if is a supplies) and a buyer profile (if is a buyers).


You can consider:

User type: standard, admin
User role: role1, role2, etc

All standard users can take on different roles… demand side1, demand side2: supply side1, supply side2, etc. An admin user manages the app.

1 Like

Hey guys, thanks for the help!

So you would also recommend to register both suppliers and buyers under the same default bubble “User” data type, and then capturing their specific information in separate data types (one data type for supplier and one for buyer, that can then be used to create listings)?

  • And in the default “User” data type, besides just their e-mail and password, have a field that denotes whether the user is supplier or buyer (which is based on what they selected when they signed up)?

Question for that: what if in the future, a buyer-user wants to also create a supplier listing? Under this setup, they are either a supplier OR a buyer, not both. Would that create any problems?

Thank you @cmarchan - I’m not sure I 100% understand, is that a similar structure as described above? If not, would you be able to elaborate what an admin and a role is?

To expand on that, one challenge for me that I am struggling with in that setup is with a user viewing/editing their profile. Is it possible to create a “My Profile” page that when clicked, first checks if the User is a supplier or buyer, and if it’s a supplier it displays the data from his “supplier data type” (which is a separate data type than the default “User” data type, as discussed above) and vice versa for buyers?

I see many questions on user roles and types which is great. My advice is that you can create the structure that you want. It is up to you.

  • For two sided marketplaces a basic structure for the user data-type could be:

User type: standard and admin
User role: seller and buyer

  • Admins manage the app. As simple as that. What this means is that you do not restrict them and that they can access an admin dashboard only for admins. There they can change user roles, see stats, check for flag notifications from standard users, etc etc. Whatever you deem necessary to exist in your marketplace.
  • Standard users are the opposite. But … they can be either be a seller, either be a buyer, or even be both if you want. You establish what they can or cannot do via conditions, privacy rules, access to app areas, etc etc.

Best of luck with your app and have fun building it :+1:t2:

What exactly is the reason to have the two different types of users? Basically, what is the information that is required for a demand side user and what is the information for a supply side user?

Answering these questions with consideration of the UX, UI and user stories in mind will help guide you in whether it is necessary or not to have them separated…sometimes having a single user type with a few blank fields is not really a problem, especially if it makes things overall more simple by avoiding the headache of having two separate user types.

To your question

On the user data type where you have a field that would specify the type of user (demand/supply) you could make it a list and have demand and supply as text in the list or make it a single field and write both.

Then on the user types (demand/supply) you can have a User data field related to the User Data Type so you can easily search for the current users demand or supply side profile.

That’s a good point, I guess I’m trying to find out that answer ;). Maybe you can tell me what you would do:

Essentially, the supply-side user creates just a singular account / “listing” (about themselves, their bio, the type of advice they can give), and the demand-side puts in a search query and gets presented with a list of suppliers to chose from, with whom he can book in a consultation. Before he can book in a consultation, he has to create an account himself where he uploads his CV and a few sentences about himself, so that the supplier can view that & get prepared before the consultation.

That’s it for the MVP, later we’d like to enable ratings/reviews (different format based on the type of user), messaging between the two groups etc. I almost feel like based on what people wrote, it may be easier to just have the one default “User”, and like you said have some fields to be filled in by the supply-side, some by the demand-side. Thoughts?

My templates allow for this through an email request as a recommendation. The user can in their user profile page provide a name and email address and then an email is sent to that email address requesting a recommendation be provided. The link in the email brings the recipient to the page which recognizes all necessary information to assign the recommendation to the correct suer.

This system allows the user to request recommendations from past clients who are on and not on the platform, which greatly increases awareness as it would be assumed the user would request recommendations from people not on the platform, who would in return be introduced to the platform themselves through filing in the recommendation.

My templates provide this. Users begin a conversation from a button on the user listing page. Later they can go directly into their inbox to view conversations and messages. It has a built in function to provide limited communications from users who are not paying for a subscription so that the user can send a message, but replies are blurred out until they subscribe…this can be adjusted, but the current settings are intended to encourage users to try the platform for free, and then once wanting more engagement, subscribing to a paid tier.

I would set it up the way I did in my templates, because that is what I did. I have a single user data type, and a single profile data type. Both are the same with a field that denotes if the profile is for a provider or a client. Clients fill in the same details as the provider with a twist. Providers will select from a list of services they provide, while the clients selects a list of services they are searching for (the list of services is the same).

Basically, all details are mirror images of each other…provider indicates the distance radius they are willing to provide services to, while clients indicate a distance radius they are willing to hire a provider from.

You can check out all of them here: Boston85719 Templates

The templates are documented extensively and are built to enable quick and easy branding…all colors can be changed in about 1 minute as well as all necessary company information that is part of the emails.

So, to be honest, if all you are trying to achieve at this point in time is to have an MVP that would be used to market validate your idea, I’d save the weeks, if not months of development, buy one of the templates that probably already has everything you need and get that MVP to market in days.

I know a shameless plug, but honestly, after years of experience with Bubble, that is what I would do.

If you don’t want to buy a template, and instead want to take the time to learn how to build on bubble and develop your own MVP, you can always preview the templates, play around with them from the users perspective and see what is happening to get an idea of how to build it yourself. That is what I do all the time…I find an existing product that does what I want mine to do, signup for a free trial, play around with all its features and build them out myself.

Thank you so much for your help! Definitely a lot of good points to go through, I will have a good long look at the templates as well. So much to figure out in the beginning :wink:

This topic was automatically closed after 70 days. New replies are no longer allowed.