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 https://tinypng.com 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 undraw.co
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