Airbnb Clone Features: Seven Service Types, One Booking Engine
The hard part of a rental marketplace is not the listing page. It is holding availability honestly, calculating a total that survives a coupon and a seasonal rate, and settling money to hosts net of a commission that must not change retrospectively. Here is everything that ships, grouped by who touches it.
Request a Live Demo →See PricingFeature Set by Role
Every capability grouped by who actually touches it - the guest booking, the host listing and getting paid, and the operator taking a commission they control.
Guest App
- Global search across every enabled service type
- Filter by location, dates, guests, price, amenities and rating
- Autocomplete on locations and listings, plus map view
- Sort by price, rating or distance
- Partial payment for deposit-based models
- Balance reminders before arrival, invoice generation
- Direct messaging with hosts, read receipts and file sharing
- Reviews, wishlists and booking history
Host Console
- Rich listing profiles with gallery and video
- Multiple room types with independent pricing
- Seasonal and date-based rate adjustment
- Length-of-stay discounts and extra guest charges
- Minimum and maximum stay, advance booking window
- Calendar with room-level sync against double-booking
- Earnings net of commission, payout requests
- Host-configured fees such as cleaning and deposits
Operator Admin
- More than twenty admin modules
- Granular role and permission system
- Host approval and listing moderation
- Commission set globally or per host
- Coupons with usage limits and minimum totals
- Payout queue with review and completion
- Featured listing placement sold as promotion
- Service modules switched off without touching code
Airbnb vs Miracuves Clone vs Building From Scratch
The same capability, three different paths - and one difference that is not a matter of degree.
| Capability | Original Airbnb | Miracuves Clone | Build From Scratch |
|---|---|---|---|
| Accommodation booking | Yes - the whole product | Yes - room types, occupancy, bed config, check-in windows | The part everyone starts with |
| Non-accommodation inventory | Experiences only | Cars, tours, boats, events and flights on the same engine | A second booking model per type, or a second product |
| One checkout across types | No | A villa, a tour, a hire car and a boat in one transaction | Cross-type cart and settlement built from zero |
| Pricing engine | Yes | Seasonal rates, length-of-stay discounts, extra guest charges, coupons | Where totals start disagreeing between screens |
| Availability integrity | Yes | Validated at request time against date tables, room-level sync | Cached availability flags are how double-bookings happen |
| Commission handling | Set by Airbnb | Set by you, globally or per host, stored on each booking | Retrospective rate changes corrupt historical payouts |
| Payment rails | Internal | Six pre-integrated plus an internal wallet | One gateway, then an integration per market |
| Languages | Extensive | Fifteen pre-configured, RTL for Arabic and Hebrew, per-entity content | Interface strings only, then a retrofit for content |
| Source code ownership | N/A | Full Laravel 10 source, no encrypted files | Full ownership (you are building it) |
| Price | N/A | $2,499 one-time | Six figures and a year, typically |
The row that matters is the second one. Airbnb itself does not sell you a car and a boat in the same basket - this platform treats all seven types as one polymorphic booking model, which is why enabling a new type later needs no rebuild.
How It Works, End to End
Follow one booking from search to host payout - the path where marketplaces actually break.
Search across every enabled type
Global search runs over stays, spaces, cars, tours, boats, events and flights at once, filtered by location, dates, guests, price, amenities and rating, with autocomplete and a map view. A guest never has to know which inventory type they are looking at.
Availability is checked, not assumed
Every result is validated at request time against the per-service date tables and existing bookings rather than a cached flag, with minimum and maximum stay enforced, the advance booking window respected, and room-level synchronization preventing a clash inside a single property.
The total is calculated once
Seasonal and date-based rates, length-of-stay discounts, extra guest charges, service fees and host-configured extras resolve in one pricing engine, then any coupon is checked against its usage limit and minimum total. The number the guest sees is the number that reaches the invoice.
Payment, in full or in part
Six gateways plus the internal wallet, with partial payment for deposit-based models and an automatic balance reminder before arrival. Card details go to the processor, never to your database, and the payment webhook that confirms it is signature-verified.
Commission is written down, then settled
The commission rate is stored on the booking at the moment it is made. Host earnings accumulate net of that stored rate, the host requests a payout from their dashboard, and you review and complete it in the payout queue - so changing your rate later never rewrites what a host already earned.
Step three is the one to scrutinise in any platform you evaluate. Because the rate is stored per booking rather than looked up at payout time, changing your commission later affects future bookings only and never rewrites what a host already earned.
Every Feature Earns Its Place
Nothing here is on the list because it demos well. Each capability exists because leaving it out breaks something specific.
| Capability | Why it is not optional |
|---|---|
| Commission stored on the booking | Because a rate looked up at payout time means raising your commission silently re-prices every historical booking, and no host will trust your reporting again. |
| Availability checked at request time | Because a cached availability flag is how two guests book the same room. The date tables are the source of truth, not a denormalised boolean. |
| Room-level synchronization | Because a property with four room types is four inventories, and a clash inside one property is invisible to a property-level check. |
| Polymorphic booking model | Because a separate model per service type means seven payment paths, seven payout paths and seven places for a bug to live. |
| Coupons with minimum totals | Because a discount code without floors and usage limits is a way for one shared link to wipe out a month of margin. |
| Partial payment | Because deposit-based bookings are the norm in villas, boats and events, and demanding the full amount up front loses those categories entirely. |
| Per-entity translation | Because translating interface strings while listings stay in one language gives you a localised shell around content nobody in that market can read. |
| Magic-byte upload inspection | Because hosts upload property documents and photos all day, and an extension check trusts a filename an attacker controls. |
| Signature-verified webhooks | Because an unverified payment webhook is an endpoint that will mark bookings paid for anyone who finds it. |
The Technology Behind the Features
A deliberately mainstream stack: PHP 8.1+ on Laravel 10 as a modular monolith with more than twenty domain modules, Eloquent ORM with parameterized queries throughout, and Sanctum tokens plus JWT for API authentication. Data sits in MySQL 8 or MariaDB across 40+ tables, with a polymorphic booking model spanning all seven service types, composite indexes on the polymorphic pairs and full-text indexes on searchable content. The public marketplace is Blade with Vue.js components in the admin surfaces, mobile is Flutter for Android and iOS from one codebase consuming the same REST API, and realtime messaging runs on Pusher with Chatify. Redis handles cache, session and queue drivers with workers under Supervisor, and media goes to S3 or GCS behind Nginx.
None of this is exotic, and that is the point: any competent Laravel developer can maintain it, so you are not dependent on us to keep it running.
What Is Not Included in the Base Package
Everything above is in the base platform and demonstrable in the live demo. These are not, and we would rather you knew before you bought.
Stated against the feature, not implied away
Where a control is configuration rather than shipped, the security documentation says so plainly rather than presenting a clean-looking table - see the Platform Trust section on the Development Company page.
See how Miracuves compares to agencies and freelancers
The deployment process, a named client deployment in Italy, and what to check before you hire anyone - on the Development Company page.
Frequently Asked Questions
Do I have to use all seven service types?
How does the platform stop double-booking?
Can I change the commission rate later?
Which payment gateways are included?
Can I run this in more than one language?
How do host payouts work?
See exactly what you are getting - before you commit
Request a working demo of the booking engine, the host console and the operator admin, or check exact pricing.
Explore the Airbnb Clone
Ready to launch your own booking marketplace?
Deploy in 6 days with seven service types, four surfaces and the full Laravel 10 source, hosted wherever you choose.
Talk to Us →