In this tutorial, Dave walks through how to build an Airbnb clone using Bubble

Set up your homepage

Add a group with a nice image in it that will be the top of the homepage (I use to make the images smaller so they load faster)

Create a group inside the header that will be the search widget to search homes

Add a search input that searches GEO locations

Add 2 date pickers from & until

Add this workflow to your date picker

Should look something like this now

Create a group that looks like an input inside the group that will open the selection group

Now add a focus group to create the custom select group Download this plugin for good looking icons

Add states to save the guest count in

Should look something like this:

Add this dynamic data to the text box for all types

Add a delete that will set every selection at 0, and save button that will close the group

Add a floating group up top to create the menu

Add the ‘reusable element: sign up / login pop up that shows when you click sign up and design it so it fits your app

Create a new page /become-a-host so we can start adding houses to the platform

Create a custom form to let people submit or later edit their place Data:

The form data should be the user’s house

Create auto binding for the selections and a privacy rule that the user needs to be logged in to change

Add this workflow to the page

And add input fields to your form to complete the listing

Add to collect info from the user that posts the listing

Add a repeating group to the homepage to start showing the listings

Create a blank page /listing To show a single listing

Make the type of content ‘house’

When you click on a listing on the homepage

Add this workflow for the image sider

Add a favourites button to the page

Add a group that will show the description of the listing and calculate the price.. copy the date & guest qty focus group (with workflows) from the homepage.. you’ll get a lot of error codes most of them you have to add the ‘focus group’ to the data calculations

Set this state when one of the date inputs change

Add a button to the form that calculates the total price

******************changed some things for the data picker******************

Download the plugin

With this plugin you can select a range of dates and block dates that are booked.. so we change the data inputs to this plugin with these settings:

You can also keep the 2 separate dates selectors… and skip this part

Same for the homepage

You can copy the guest selection group and place the picker inside to make it look like an input :)

Set this state when the data pickers value changes

Add a description to the listing form

So users can add a description to the listing that should look something like this now:

Add the plugin stripe to create actual bookings

Set up test API keys

When a user clicked booked first check if they ‘re logged in if not show the signup pop up

Add this button to the add/ edit listing form

And add this workflow

Add this rule to the booking button on the listing page

Charge the user if logged in and take a cut of the booking

In this case, $5 you could make this dynamic based on the nights booked or % of the total

After this, we can create an order and block the dates booked in the listing

Dates will be blocked from the date picker now

Add a name to your signup pop up you’ll need it for bookings

Create a new page called /orders

Copy the /dashboard page from the Uberpad template

Modify all data to fit the Makerbnb app

When you click the order group set the current order show you can show the details group

Now when a user orders a booking send them to the /orders page

Add a pop up that will be the profile settings and opens when you click the ‘my account’ button

Add a reusable menu that we can use on every page Add a focus group linked to an icon that will show it Also add the signup pop up to handle signups

Then add the menu to all pages

You can style your 404 page with an image from

Create a pop up in /orders to contact the owner or the customer

Use these rules to determine which user is contacting and contacted

Add a contact button that will open the pop up and set the current order to the /orders page

Go to the homepage and change the repeating group data source

You can add icons to the listing page to make it more clear what kind of features the listing has

Add an image to your dashboard that shows if you don’t have any orders yet…

Download the plugin ‘toolbox’ we need to get the dates in between the from and the till date so we can block them in the agenda

Copy this blue box on the /listing page

The output are the dates booked

On the listing page before charging the user set this state so we can show on the page that its loading and make the buttons unclickable to exclude errors


What's your story?  Tell us how you use no-code
Something wrong?