---
title: Airbnb Clone Features
description: 
url: https://miracuves.com/airbnb-clone/features
date_modified: 2026-08-20
author: miracuves
language: en_US
---

.mcv-abf{
    --crimson:#e8344f; --crimson-deep:#a70d2a; --crimson-hot:#d81b46; --crimson-light:#ff8090;
    --amber:#fbbf24; --black:#0a0a0a; --white:#ffffff; --paper:#faf8f8; --ink:#191419; --ink-dim:#6d666d;
    --line:rgba(11,11,16,0.1); --line-light:rgba(255,255,255,0.12);
    --card-bg:rgba(8,3,8,0.82);
    font-family:'Plus Jakarta Sans',Arial,sans-serif; color:var(--ink); background:var(--white); margin:0; padding:0;
  }
  .mcv-abf *{ box-sizing:border-box; }
  .mcv-abf h1,.mcv-abf h2,.mcv-abf h3{ font-family:'Plus Jakarta Sans',Arial,sans-serif; font-weight:800; margin:0; letter-spacing:-0.02em; line-height:1.12; }
  .mcv-abf p{ margin:0 0 14px; line-height:1.7; color:var(--ink); }
  .mcv-abf a{ color:var(--crimson-deep); text-decoration:none; }
  .mcv-abf .mono{ font-family:'JetBrains Mono',monospace; }
  .mcv-abf-wrap{ max-width:1180px; margin:0 auto; padding:0 24px; position:relative; z-index:2; }
  .mcv-abf-bleed{ position:relative; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw; width:100vw; }

  .mcv-seo-ref{ background:#FFF7E0; border:2px dashed #C79A00; padding:18px 22px; font-family:Arial,sans-serif; font-size:13px; color:#4A3B00; max-width:1180px; margin:18px auto; border-radius:8px; }

  .mcv-abf-crumb{ display:flex; gap:8px; align-items:center; font-family:'JetBrains Mono',monospace; font-size:11.5px; color:rgba(255,255,255,.62); margin-bottom:20px; }
  .mcv-abf-crumb a{ color:rgba(255,255,255,.62); }
  .mcv-abf-crumb a:hover{ color:var(--crimson-light); }
  .mcv-abf-crumb span.sep{ opacity:.5; }
  .mcv-abf-crumb span.cur{ color:rgba(255,255,255,.75); }

  .mcv-abf-eyebrow{ display:inline-flex; align-items:center; gap:8px; padding:7px 16px; border-radius:100px; background:rgba(255,255,255,.06); border:1px solid var(--line-light); font-family:'JetBrains Mono',monospace; font-size:11.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--crimson-light); margin-bottom:22px; }
  .mcv-abf-eyebrow .dot{ width:6px; height:6px; border-radius:50%; background:var(--crimson); }

  .mcv-abf-hero{ background:radial-gradient(ellipse 900px 500px at 85% -10%, rgba(232,52,79,.16), transparent), #0a0a0a; color:#fff; padding:56px 0 150px; position:relative; overflow:hidden; }
  .mcv-abf-hero .ring{ position:absolute; border:2px solid rgba(232,52,79,.18); border-radius:50%; pointer-events:none; }
  .mcv-abf-hero .ring1{ width:560px; height:560px; top:-260px; right:-200px; }
  .mcv-abf-hero .ring2{ width:340px; height:340px; bottom:-200px; right:120px; border-color:rgba(232,52,79,.1); }
  .mcv-abf-herogrid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:center; }
  .mcv-abf-hero h1{ font-size:clamp(27px,3.9vw,44px); color:#fff; }
  .mcv-abf-hero h1 em{ font-style:normal; color:#ff8090; }
  .mcv-abf-hero p.sub{ font-size:16px; color:rgba(255,255,255,.68); max-width:600px; margin:20px 0 30px; }

  .mcv-abf a.mcv-abf-btn{ display:inline-flex; align-items:center; gap:8px; border-radius:12px; background:linear-gradient(160deg,#d81b46,#e8344f); color:#fff; font-weight:700; font-size:15px; padding:15px 28px; box-shadow:0 10px 30px rgba(232,52,79,.3); transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s; }
  .mcv-abf a.mcv-abf-btn:hover{ color:#fff; transform:translateY(-2px); box-shadow:0 14px 36px rgba(232,52,79,.42); text-decoration:none; }
  .mcv-abf a.mcv-abf-btn-outline{ display:inline-flex; align-items:center; border:2px solid rgba(255,255,255,.7); color:#fff; border-radius:12px; font-weight:700; font-size:15px; padding:13px 26px; margin-left:12px; transition:all .2s; }
  .mcv-abf a.mcv-abf-btn-outline:hover{ background:#fff; color:#191419; text-decoration:none; }

  .mcv-abf-trust{ display:flex; flex-wrap:wrap; gap:22px; margin-top:34px; padding-top:24px; border-top:1px solid var(--line-light); }
  .mcv-abf-trust-item{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:rgba(255,255,255,.6); }
  .mcv-abf-trust-item strong{ font-family:'JetBrains Mono',monospace; color:#fff; font-size:14px; }

  .mcv-abf-cardstack{ position:relative; height:340px; }
  .mcv-abf-fincard{ position:absolute; width:300px; height:180px; border-radius:18px; padding:22px; background:linear-gradient(150deg,#1c1418,#0d0709); border:1px solid var(--line-light); box-shadow:0 30px 70px rgba(0,0,0,.5); }
  .mcv-abf-fincard.c1{ top:0; left:10px; z-index:1; opacity:.5; transform:rotate(-6deg) scale(.92); }
  .mcv-abf-fincard.c2{ top:30px; left:40px; z-index:2; background:linear-gradient(150deg,#3a0a15,#160408 60%,#0a0a0a); border-color:rgba(232,52,79,.3); box-shadow:0 40px 90px rgba(0,0,0,.55), 0 0 60px -12px rgba(232,52,79,.35); }
  .mcv-abf-fincard .brand{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); }
  .mcv-abf-fincard .chip{ width:34px; height:24px; border-radius:5px; background:linear-gradient(135deg,#ff8090,#e8344f); margin:22px 0 18px; }
  .mcv-abf-fincard .num{ font-family:'JetBrains Mono',monospace; font-size:15px; color:#fff; letter-spacing:.1em; }
  .mcv-abf-fincard .curr{ position:absolute; bottom:22px; right:22px; font-family:'JetBrains Mono',monospace; font-size:11px; color:#ff8090; }
  .mcv-abf-float{ position:absolute; background:rgba(8,3,8,0.82); border:1px solid var(--line-light); border-radius:14px; padding:12px 16px; box-shadow:0 16px 40px rgba(0,0,0,.35); z-index:3; }
  .mcv-abf-float .k2{ font-family:'JetBrains Mono',monospace; font-size:10px; color:#ff8090; text-transform:uppercase; letter-spacing:.08em; margin-bottom:3px; }
  .mcv-abf-float .v{ font-family:'JetBrains Mono',monospace; font-size:15px; color:#fff; font-weight:700; }
  .mcv-abf-float-1{ top:-10px; right:0; }
  .mcv-abf-float-2{ bottom:10px; left:0; }

  .mcv-abf-statbar{ margin-top:-72px; position:relative; z-index:3; }
  .mcv-abf-statbar .inner{ background:rgba(8,3,8,0.82); border:1px solid var(--line-light); border-radius:18px; box-shadow:0 24px 60px rgba(0,0,0,.35); padding:32px 20px; display:grid; grid-template-columns:repeat(4,1fr); }
  .mcv-abf-statbar .stat{ text-align:center; padding:0 12px; border-right:1px solid var(--line-light); }
  .mcv-abf-statbar .stat:last-child{ border-right:none; }
  .mcv-abf-statbar .num{ font-family:'JetBrains Mono',monospace; font-weight:700; font-size:22px; color:#ff8090; }
  .mcv-abf-statbar .lbl{ font-size:11.5px; color:rgba(255,255,255,.62); margin-top:6px; line-height:1.4; }

  .mcv-abf-section{ padding:100px 0 76px; }
  .mcv-abf-section.paper{ background:#faf8f8; }
  .mcv-abf-section.tight{ padding-top:76px; }
  .mcv-abf-head{ text-align:center; max-width:720px; margin:0 auto 48px; }
  .mcv-abf-head .kicker{ font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#a70d2a; margin-bottom:12px; }
  .mcv-abf-head h2{ font-size:clamp(22px,3vw,34px); color:#191419; }
  .mcv-abf-head p{ color:#6d666d; margin-top:14px; }

  .mcv-abf-rolegrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .mcv-abf-rolecard{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:28px 24px; box-shadow:0 6px 18px rgba(0,0,0,.05); transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, border-color .3s; }
  .mcv-abf-rolecard:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.09); border-color:#e8344f; }
  .mcv-abf-roleicon{ width:40px; height:40px; border-radius:10px; background:rgba(232,52,79,.12); border:1px solid rgba(232,52,79,.3); display:flex; align-items:center; justify-content:center; margin-bottom:16px; font-family:'JetBrains Mono',monospace; font-weight:700; font-size:14px; color:#a70d2a; }
  .mcv-abf-rolecard h3{ font-size:17px; margin-bottom:12px; color:#191419; }
  .mcv-abf-rolecard ul{ margin:0; padding-left:18px; font-size:13.5px; color:#191419; }
  .mcv-abf-rolecard li{ margin-bottom:8px; line-height:1.5; }

  .mcv-abf-tablewrap{ overflow-x:auto; border-radius:16px; box-shadow:0 12px 34px rgba(0,0,0,.07); border:1px solid var(--line); }
  table.mcv-abf-table{ border-collapse:collapse; width:100%; min-width:680px; background:#fff; font-size:13.5px; }
  table.mcv-abf-table th{ background:#0a0a0a; color:#ffffff; text-align:left; padding:14px 16px; font-family:'JetBrains Mono',monospace; font-weight:600; font-size:12px; letter-spacing:.04em; text-transform:uppercase; }
  table.mcv-abf-table td{ padding:14px 16px; border-bottom:1px solid rgba(11,11,16,0.1); vertical-align:top; color:#191419; }
  table.mcv-abf-table td.hl{ background:rgba(232,52,79,.06); border-top:3px solid #e8344f; font-weight:600; color:#191419; }
  table.mcv-abf-table th.hl{ background:#e8344f; color:#ffffff; }
  table.mcv-abf-table tbody tr:hover td{ background:#f4f1f1; color:#191419; }
  table.mcv-abf-table tbody tr:hover td.hl{ background:rgba(232,52,79,.13); color:#191419; }
  table.mcv-abf-table tr:last-child td{ border-bottom:none; }
  .mcv-abf-note{ font-size:12.5px; color:#6d666d; margin-top:12px; }

  .mcv-abf-callout{ background:linear-gradient(135deg,#2B0710,#4A0F1E); color:#fff; border-radius:20px; padding:40px 44px; }
  .mcv-abf-callout h2{ color:#fff; font-size:22px; margin-bottom:12px; }
  .mcv-abf-callout p{ color:rgba(255,255,255,.78); font-size:14.5px; margin:0; }

  .mcv-abf-honest{ background:#fff; border:1px solid var(--line); border-left:4px solid #fbbf24; border-radius:14px; padding:28px 30px; }
  .mcv-abf-honest h3{ font-size:17px; margin-bottom:14px; color:#191419; }
  .mcv-abf-honestgrid{ display:grid; grid-template-columns:1fr 1fr; gap:10px 28px; }
  .mcv-abf-honestgrid div{ font-size:13.5px; color:#191419; line-height:1.55; padding-left:18px; position:relative; }
  .mcv-abf-honestgrid div::before{ content:'!'; position:absolute; left:0; top:0; font-family:'JetBrains Mono',monospace; font-weight:700; color:#8a6100; }

  .mcv-abf-cs{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:32px 34px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; box-shadow:0 8px 24px rgba(0,0,0,.05); }
  .mcv-abf-cs-badge{ display:inline-flex; align-items:center; gap:7px; padding:6px 14px; border-radius:100px; background:rgba(232,52,79,.08); border:1px solid rgba(232,52,79,.25); font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#a70d2a; margin-bottom:12px; }
  .mcv-abf-cs-badge .dot{ width:6px; height:6px; border-radius:50%; background:#e8344f; }
  .mcv-abf-cs-body{ flex:1; min-width:260px; }
  .mcv-abf-cs-body h3{ font-size:16.5px; margin-bottom:6px; color:#191419; }
  .mcv-abf-cs-body p{ color:#6d666d; font-size:13.5px; margin:0; max-width:460px; }
  .mcv-abf a.mcv-abf-cs-link{ font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; color:#a70d2a; white-space:nowrap; }

  .mcv-abf-faqgrid{ display:grid; grid-template-columns:1fr 1fr; gap:0 40px; max-width:1000px; margin:0 auto; }
  .mcv-abf-faq details{ border-bottom:1px solid var(--line); padding:18px 0; }
  .mcv-abf-faq summary{ font-family:'Plus Jakarta Sans',Arial,sans-serif; font-weight:700; font-size:15px; color:#191419; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; }
  .mcv-abf-faq summary::-webkit-details-marker{ display:none; }
  .mcv-abf-faq summary::after{ content:'+'; font-family:'JetBrains Mono',monospace; color:#a70d2a; font-size:20px; font-weight:700; flex:none; }
  .mcv-abf-faq details[open] summary::after{ content:'\2212'; }
  .mcv-abf-faq .a{ color:#6d666d; font-size:13.5px; margin-top:10px; line-height:1.65; }

  .mcv-abf-cta{ background:linear-gradient(120deg,#e8344f,#6e0e1f); color:#fff; padding:64px 0; position:relative; overflow:hidden; }
  .mcv-abf-cta .ring{ position:absolute; border:2px solid rgba(255,255,255,.14); border-radius:50%; width:360px; height:360px; top:-140px; right:-100px; }
  .mcv-abf-cta .flex{ display:flex; justify-content:space-between; align-items:center; gap:28px; flex-wrap:wrap; position:relative; z-index:2; }
  .mcv-abf-cta h2{ color:#fff; font-size:clamp(20px,2.6vw,28px); margin-bottom:8px; }
  .mcv-abf-cta p{ color:rgba(255,255,255,.82); margin:0; max-width:460px; }
  .mcv-abf-cta a.mcv-abf-btn-outline{ border-color:#fff; }
  .mcv-abf-cta a.mcv-abf-btn{ background:#fff; box-shadow:0 10px 30px rgba(0,0,0,.2); }
  .mcv-abf-cta a.mcv-abf-btn,.mcv-abf-cta a.mcv-abf-btn:hover{ color:#a70d2a; }

  .mcv-abf-explore{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
  .mcv-abf a.mcv-abf-pill{ font-family:'JetBrains Mono',monospace; font-size:12.5px; font-weight:600; padding:10px 18px; border-radius:100px; border:1px solid var(--line); color:#191419; background:#fff; transition:all .2s; }
  .mcv-abf a.mcv-abf-pill:hover{ border-color:#e8344f; color:#a70d2a; text-decoration:none; }
  .mcv-abf a.mcv-abf-pill.cur{ background:#191419; color:#fff; border-color:#191419; }

  .mcv-abf-finalcta{ background:#0a0a0a; color:#fff; text-align:center; padding:96px 24px 64px; position:relative; overflow:hidden; }
  .mcv-abf-finalcta .ring{ position:absolute; border:1.5px solid rgba(232,52,79,.16); border-radius:50%; }
  .mcv-abf-finalcta .ring1{ width:480px; height:480px; top:-220px; left:-160px; }
  .mcv-abf-finalcta .ring2{ width:300px; height:300px; bottom:-180px; right:-90px; }
  .mcv-abf-finalcta .card{ background:rgba(8,3,8,0.82); border:1px solid var(--line-light); border-radius:24px; padding:56px 40px; max-width:720px; margin:0 auto; position:relative; z-index:2; }
  .mcv-abf-finalcta h2{ color:#fff; font-size:clamp(24px,3.2vw,34px); max-width:640px; margin:0 auto 14px; }
  .mcv-abf-finalcta p.sub{ color:rgba(255,255,255,.7); max-width:520px; margin:0 auto 30px; }
  .mcv-abf-footerbar{ max-width:1180px; margin:56px auto 0; padding-top:28px; border-top:1px solid var(--line-light); position:relative; z-index:2; }
  .mcv-abf-byline{ display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; font-family:'JetBrains Mono',monospace; font-size:11.5px; color:rgba(255,255,255,.55); border-bottom:1px solid rgba(255,255,255,.12); padding-bottom:16px; margin-bottom:12px; }
  .mcv-abf-byline strong{ color:#fff; font-weight:600; }
  .mcv-abf-byline .dotsep{ opacity:.4; }
  .mcv-abf-footermeta{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-family:'JetBrains Mono',monospace; font-size:11px; color:rgba(255,255,255,.55); }

  @media (max-width:900px){
    .mcv-abf-herogrid{ grid-template-columns:1fr; }
    .mcv-abf-statbar .inner{ grid-template-columns:repeat(2,1fr); gap:18px 0; }
    .mcv-abf-statbar .stat:nth-child(2){ border-right:none; }
    .mcv-abf-rolegrid{ grid-template-columns:1fr; }
    .mcv-abf-honestgrid{ grid-template-columns:1fr; }
    .mcv-abf-faqgrid{ grid-template-columns:1fr; }
    .mcv-abf-hero h1{ font-size:27px; }
    .mcv-abf-cta .flex{ flex-direction:column; align-items:flex-start; }
    .mcv-abf-cardstack{ height:260px; }
    .mcv-abf-fincard{ width:250px; height:150px; }
  }
  @media (prefers-reduced-motion: reduce){ .mcv-abf *{ animation:none !important; transition:none !important; } }
  /* --- components used by cost / company / business-model --- */
  .mcv-abf-pricecard{ background:linear-gradient(150deg,#3a0a15,#160408 60%,#0a0a0a); border:1px solid rgba(232,52,79,.3); border-radius:22px; padding:34px 32px; box-shadow:0 40px 90px rgba(0,0,0,.55), 0 0 60px -12px rgba(232,52,79,.35); }
  .mcv-abf-pricecard .plan{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#ff8090; margin-bottom:14px; }
  .mcv-abf-pricecard .amt{ font-family:'JetBrains Mono',monospace; font-size:44px; font-weight:700; color:#fff; line-height:1; }
  .mcv-abf-pricecard .per{ font-size:13px; color:rgba(255,255,255,.6); margin-top:8px; }
  .mcv-abf-pricecard ul{ margin:22px 0 0; padding-left:18px; color:rgba(255,255,255,.78); font-size:13.5px; }
  .mcv-abf-pricecard li{ margin-bottom:8px; line-height:1.5; }
  .mcv-abf-drivers{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .mcv-abf-driver{ background:#fff; border:1px solid rgba(11,11,16,0.1); border-radius:18px; padding:26px 24px; box-shadow:0 6px 18px rgba(0,0,0,.05); transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, border-color .3s; }
  .mcv-abf-driver:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.09); border-color:#e8344f; }
  .mcv-abf-driver h3{ font-size:16px; margin-bottom:10px; color:#191419; }
  .mcv-abf-driver p{ font-size:13.5px; color:#6d666d; margin:0; }
  .mcv-abf-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .mcv-abf-step{ background:#fff; border:1px solid rgba(11,11,16,0.1); border-radius:16px; padding:24px 22px; }
  .mcv-abf-step .n{ font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#a70d2a; margin-bottom:8px; }
  .mcv-abf-step h3{ font-size:15.5px; margin-bottom:8px; color:#191419; }
  .mcv-abf-step p{ font-size:13.5px; color:#6d666d; margin:0; }
  .mcv-abf-checkgrid{ display:grid; grid-template-columns:1fr 1fr; gap:16px 28px; }
  .mcv-abf-check{ background:#fff; border:1px solid rgba(11,11,16,0.1); border-radius:14px; padding:20px 22px; }
  .mcv-abf-check h3{ font-size:15px; margin-bottom:8px; color:#191419; }
  .mcv-abf-check p{ font-size:13.5px; color:#6d666d; margin:0; }
  .mcv-abf-flags{ display:grid; grid-template-columns:1fr 1fr; gap:14px 28px; }
  .mcv-abf-flag{ font-size:13.5px; color:#191419; line-height:1.55; padding-left:22px; position:relative; }
  .mcv-abf-flag::before{ content:'\2715'; position:absolute; left:0; top:0; font-family:'JetBrains Mono',monospace; font-weight:700; color:#a70d2a; }
  .mcv-abf-pt{ background:radial-gradient(ellipse 800px 400px at 20% 0%, rgba(232,52,79,.14), transparent), #0a0a0a; color:#fff; padding:92px 0 84px; }
  .mcv-abf-pt .mcv-abf-head h2{ color:#fff; }
  .mcv-abf-pt .mcv-abf-head p{ color:rgba(255,255,255,.68); }
  .mcv-abf-ptgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  .mcv-abf-ptcard{ background:rgba(8,3,8,0.82); border:1px solid rgba(255,255,255,0.12); border-radius:18px; padding:26px 24px; }
  .mcv-abf-ptcard h3{ font-size:15.5px; color:#fff; margin-bottom:10px; }
  .mcv-abf-ptcard p{ font-size:13.5px; color:rgba(255,255,255,.72); margin:0; }
  .mcv-abf-ptcard .tag{ display:inline-block; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:#ff8090; border:1px solid rgba(232,52,79,.35); border-radius:100px; padding:3px 10px; margin-bottom:12px; }
  .mcv-abf-csbox{ background:#fff; border:1px solid rgba(11,11,16,0.1); border-radius:22px; padding:40px 42px; box-shadow:0 12px 34px rgba(0,0,0,.06); }
  .mcv-abf-csmeta{ display:flex; flex-wrap:wrap; gap:26px; margin:22px 0 26px; padding:20px 0; border-top:1px solid rgba(11,11,16,0.1); border-bottom:1px solid rgba(11,11,16,0.1); }
  .mcv-abf-csmeta div{ font-size:13px; color:#6d666d; }
  .mcv-abf-csmeta strong{ display:block; font-family:'JetBrains Mono',monospace; font-size:18px; color:#191419; margin-bottom:2px; }
  .mcv-abf-cscols{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
  .mcv-abf-cscols h4{ font-size:13px; font-family:'JetBrains Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:#a70d2a; margin:0 0 10px; }
  .mcv-abf-cscols ul{ margin:0; padding-left:18px; font-size:13.5px; color:#191419; }
  .mcv-abf-cscols li{ margin-bottom:8px; line-height:1.5; }
  .mcv-abf-quote{ margin-top:28px; padding:24px 26px; background:#faf8f8; border-left:3px solid #e8344f; border-radius:0 12px 12px 0; }
  .mcv-abf-quote p{ font-size:15px; font-style:italic; color:#191419; margin:0 0 10px; }
  .mcv-abf-quote .who{ font-family:'JetBrains Mono',monospace; font-size:12px; color:#6d666d; font-style:normal; }
  .mcv-abf-revgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .mcv-abf-revcard{ background:#fff; border:1px solid rgba(11,11,16,0.1); border-radius:18px; padding:28px 24px; box-shadow:0 6px 18px rgba(0,0,0,.05); transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, border-color .3s; }
  .mcv-abf-revcard:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.09); border-color:#e8344f; }
  .mcv-abf-revcard .n{ font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#a70d2a; margin-bottom:10px; }
  .mcv-abf-revcard h3{ font-size:16.5px; margin-bottom:10px; color:#191419; }
  .mcv-abf-revcard p{ font-size:13.5px; color:#6d666d; margin:0; }
  .mcv-abf-revcard .core{ display:inline-block; margin-top:14px; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:#a70d2a; background:rgba(232,52,79,.08); border:1px solid rgba(232,52,79,.25); border-radius:100px; padding:3px 10px; }
  .mcv-abf-disclose{ background:#faf8f8; border:1px dashed rgba(11,11,16,0.1); border-radius:14px; padding:26px 28px; max-width:860px; margin:0 auto; }
  .mcv-abf-disclose h3{ font-size:16px; margin-bottom:10px; color:#191419; }
  .mcv-abf-disclose p{ font-size:13.5px; color:#6d666d; margin:0 0 10px; }
  .mcv-abf-disclose p:last-child{ margin-bottom:0; }
  .mcv-abf-callout .figs{ display:flex; flex-wrap:wrap; gap:32px; margin-top:22px; padding-top:20px; border-top:1px solid rgba(255,255,255,0.12); }
  .mcv-abf-callout .figs div{ font-size:12.5px; color:rgba(255,255,255,.65); }
  .mcv-abf-callout .figs strong{ display:block; font-family:'JetBrains Mono',monospace; font-size:20px; color:#fff; margin-bottom:3px; }
  @media (max-width:900px){
    .mcv-abf-drivers,.mcv-abf-steps,.mcv-abf-checkgrid,.mcv-abf-flags,.mcv-abf-ptgrid,.mcv-abf-cscols,.mcv-abf-revgrid{ grid-template-columns:1fr; }
    .mcv-abf-csbox{ padding:28px 24px; }
  }
  /* ===== components ported from the shipped reference bundle (instagram-clone) ===== */
  .mcv-abf-aside{ border-left:3px solid #e8344f; background:#faf8f8; border-radius:0 16px 16px 0; padding:32px 36px; }
  .mcv-abf-aside h3{ font-size:17px; margin-bottom:14px; color:#191419; }
  .mcv-abf-aside ul{ margin:0; padding:0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:16px 32px; }
  .mcv-abf-aside li{ padding-left:18px; position:relative; font-size:14px; color:#191419; line-height:1.6; }
  .mcv-abf-aside li::before{ content:''; position:absolute; left:0; top:7px; width:7px; height:7px; background:#e8344f; transform:rotate(45deg); }
  .mcv-abf-aside li span{ color:#6d666d; display:block; font-size:12.5px; margin-top:2px; }
  .mcv-abf-flowrow{ display:grid; grid-template-columns:64px 1fr; gap:22px; padding:28px 0; border-bottom:1px solid rgba(11,11,16,0.1); align-items:start; }
  .mcv-abf-flowrow:last-child{ border-bottom:none; }
  .mcv-abf-flowrow h3{ font-size:18px; margin-bottom:8px; color:#191419; }
  .mcv-abf-flowrow p{ color:#6d666d; font-size:14.5px; margin:0; max-width:760px; }
  .mcv-abf-flownum{ width:56px; height:56px; border-radius:50%; border:1.5px solid rgba(11,11,16,0.1); display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-weight:700; color:#a70d2a; font-size:16px; }
  .mcv-abf-icongrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
  .mcv-abf-iconitem{ background:#fff; border:1px solid rgba(11,11,16,0.1); border-radius:14px; padding:22px 24px; display:flex; gap:14px; align-items:flex-start; box-shadow:0 6px 18px rgba(0,0,0,.05); }
  .mcv-abf-iconitem h3{ font-size:15px; margin-bottom:6px; color:#191419; }
  .mcv-abf-iconitem p{ font-size:13px; color:#6d666d; margin:0; }
  .mcv-abf-icondot{ width:34px; height:34px; border-radius:10px; background:rgba(232,52,79,.12); border:1px solid rgba(232,52,79,.3); flex:none; display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-weight:700; font-size:14px; color:#a70d2a; }
  .mcv-abf-steprow{ display:flex; gap:24px; padding:22px 0; border-bottom:1px solid rgba(11,11,16,0.1); }
  .mcv-abf-steprow:last-child{ border-bottom:none; }
  .mcv-abf-step-num{ font-family:'JetBrains Mono',monospace; font-weight:700; font-size:15px; color:#a70d2a; flex:none; width:90px; padding-top:2px; }
  .mcv-abf-step-body h3{ font-size:17px; color:#191419; margin-bottom:6px; }
  .mcv-abf-step-body p{ font-size:14.5px; color:#6d666d; margin:0; }
  .mcv-abf-trustband{ background:#0a0a0a; color:#fff; padding:96px 0; position:relative; overflow:hidden; }
  .mcv-abf-trustband .ring{ position:absolute; border:1.5px solid rgba(232,52,79,.16); border-radius:50%; width:420px; height:420px; top:-160px; left:-140px; }
  .mcv-abf-trustband .head{ text-align:center; max-width:720px; margin:0 auto 44px; position:relative; z-index:2; }
  .mcv-abf-trustband .head .kicker{ font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#ff8090; margin-bottom:12px; }
  .mcv-abf-trustband .head h2{ color:#fff; font-size:clamp(22px,3vw,34px); }
  .mcv-abf-trustband .head p{ color:rgba(255,255,255,.68); margin-top:14px; }
  .mcv-abf-trustgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; position:relative; z-index:2; }
  .mcv-abf-trustcard{ background:rgba(8,3,8,0.82); border:1px solid rgba(255,255,255,0.12); border-radius:16px; padding:26px 22px; }
  .mcv-abf-trustcard h3{ color:#fff; font-size:15px; margin-bottom:8px; }
  .mcv-abf-trustcard p{ color:rgba(255,255,255,.68); font-size:13px; margin:0; line-height:1.55; }
  .mcv-abf-trusticon{ width:38px; height:38px; border-radius:10px; background:rgba(232,52,79,.16); border:1px solid rgba(232,52,79,.4); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
  .mcv-abf-scorecard{ background:rgba(8,3,8,0.82); border:1px solid rgba(255,255,255,0.12); border-radius:20px; padding:28px 26px; }
  .mcv-abf-scorecard .k{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#ff8090; margin-bottom:16px; }
  .mcv-abf-scorerow{ display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid rgba(255,255,255,0.12); }
  .mcv-abf-scorerow:last-child{ border-bottom:none; }
  .mcv-abf-scorerow .lbl2{ font-size:12.5px; color:rgba(255,255,255,.75); }
  .mcv-abf-scorerow .val{ font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:700; color:#fff; }
  .mcv-abf-scorerow .val.good{ color:#ff8090; }
  .mcv-abf-cs-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:24px; flex-wrap:wrap; margin-bottom:28px; }
  .mcv-abf-cs-top p{ color:#6d666d; font-size:14.5px; max-width:480px; margin:0; }
  .mcv-abf-cs-meta{ text-align:right; font-size:13.5px; }
  .mcv-abf-cs-meta strong{ display:block; color:#191419; font-size:14.5px; }
  .mcv-abf-cs-meta .lbl{ font-family:'JetBrains Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:#6d666d; margin:2px 0 12px; }
  .mcv-abf-cs-stats{ display:grid; grid-template-columns:repeat(3,1fr); border:1px solid rgba(11,11,16,0.1); border-radius:16px; margin-bottom:24px; overflow:hidden; }
  .mcv-abf-cs-stat{ text-align:center; padding:22px 12px; border-right:1px solid rgba(11,11,16,0.1); }
  .mcv-abf-cs-stat:last-child{ border-right:none; }
  .mcv-abf-cs-stat .v{ font-family:'JetBrains Mono',monospace; font-weight:700; font-size:26px; color:#a70d2a; }
  .mcv-abf-cs-stat .l{ font-size:12.5px; color:#6d666d; margin-top:4px; }
  .mcv-abf-cs-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
  .mcv-abf-cs-box{ background:#faf8f8; border-radius:14px; padding:22px 24px; }
  .mcv-abf-cs-box .h{ font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#6d666d; margin-bottom:12px; }
  .mcv-abf-cs-box ul{ margin:0; padding:0; list-style:none; display:grid; gap:8px; }
  .mcv-abf-cs-box li{ padding-left:16px; position:relative; font-size:13.5px; color:#191419; line-height:1.55; }
  .mcv-abf-cs-box li::before{ content:''; position:absolute; left:0; top:7px; width:6px; height:6px; background:#e8344f; transform:rotate(45deg); }
  .mcv-abf-cs-quote{ border-left:3px solid #e8344f; background:#faf8f8; border-radius:0 14px 14px 0; padding:22px 26px; margin-top:16px; display:flex; gap:16px; align-items:flex-start; }
  .mcv-abf-cs-quote p{ font-style:italic; font-size:15px; color:#191419; margin:0 0 10px; }
  .mcv-abf-cs-avatar{ width:38px; height:38px; border-radius:50%; background:#a70d2a; color:#fff; display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-weight:700; font-size:13px; flex:none; }
  .mcv-abf-cs-who strong{ display:block; font-size:13.5px; color:#191419; }
  .mcv-abf-cs-who span{ font-size:12.5px; color:#6d666d; }
  .mcv-abf-cs-foot{ margin-top:20px; padding-top:16px; border-top:1px solid rgba(11,11,16,0.1); font-size:12.5px; color:#6d666d; }
  .mcv-abf-chartcard{ background:rgba(8,3,8,0.82); border:1px solid rgba(255,255,255,0.12); border-radius:20px; padding:28px 26px; position:relative; }
  .mcv-abf-chartcard .k{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#ff8090; margin-bottom:18px; }
  .mcv-abf-chartcard .mcv-abf-barrow{ display:flex; align-items:center; gap:14px; height:auto; margin:0 0 14px; }
  .mcv-abf-chartcard .mcv-abf-barrow .l{ flex:0 0 140px; font-size:12.5px; line-height:1.35; color:rgba(255,255,255,.78); }
  .mcv-abf-chartcard .mcv-abf-barrow>.bar{ flex:1; height:8px; border-radius:999px; background:rgba(255,255,255,.10); overflow:hidden; }
  .mcv-abf-chartcard .mcv-abf-barrow>.bar>.mcv-abf-barcol{ height:8px; border-radius:999px; background:linear-gradient(90deg,#ff8090,#d81b46); }
  .mcv-abf-chartcard .note{ margin-top:18px; padding-top:14px; border-top:1px solid rgba(255,255,255,0.12); font-size:11.5px; line-height:1.5; color:rgba(255,255,255,.62); }
  .mcv-abf-seggrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
  .mcv-abf-segcard{ background:#fff; border:1px solid rgba(11,11,16,0.1); border-radius:16px; padding:26px 22px; box-shadow:0 6px 18px rgba(0,0,0,.05); transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, border-color .3s; }
  .mcv-abf-segcard:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.09); border-color:#e8344f; }
  .mcv-abf-segcard h3{ color:#191419; font-size:15.5px; margin-bottom:8px; }
  .mcv-abf-segcard p{ color:#6d666d; font-size:13px; margin:0; line-height:1.55; }
  .mcv-abf-segicon{ width:38px; height:38px; border-radius:10px; background:rgba(232,52,79,.12); border:1px solid rgba(232,52,79,.3); display:flex; align-items:center; justify-content:center; margin-bottom:14px; font-family:'JetBrains Mono',monospace; font-weight:700; font-size:14px; color:#a70d2a; transition:background .3s; }
  .mcv-abf-modelgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .mcv-abf-modelcard{ position:relative; background:#fff; border:1px solid rgba(11,11,16,0.1); border-radius:18px; padding:26px 24px; box-shadow:0 6px 18px rgba(0,0,0,.05); transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, border-color .3s; overflow:hidden; }
  .mcv-abf-modelcard:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.09); border-color:#e8344f; }
  .mcv-abf-modelcard .ghost{ position:absolute; top:-4px; right:6px; font-family:'JetBrains Mono',monospace; font-weight:700; font-size:64px; color:#000; opacity:.045; line-height:1; }
  .mcv-abf-modelcard:hover .ghost{ color:#e8344f; opacity:.09; }
  .mcv-abf-modelcard .stage{ font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#a70d2a; margin-bottom:10px; position:relative; }
  .mcv-abf-modelcard h3{ font-size:16.5px; margin-bottom:8px; position:relative; color:#191419; }
  .mcv-abf-modelcard p{ font-size:13.5px; color:#6d666d; margin:0; line-height:1.55; position:relative; }
  .mcv-abf-streamlist{ display:flex; flex-direction:column; gap:9px; }
  .mcv-abf-streamrow{ display:flex; align-items:center; gap:12px; padding:9px 12px; border:1px solid rgba(255,255,255,0.12); border-radius:10px; background:rgba(255,255,255,.03); }
  .mcv-abf-streamrow .n{ font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; color:#ff8090; }
  .mcv-abf-streamrow .s{ font-size:13px; color:#fff; font-weight:600; }
  @media (max-width:900px){
    .mcv-abf-aside ul{ grid-template-columns:1fr; }
    .mcv-abf-flowrow{ grid-template-columns:48px 1fr; gap:16px; }
    .mcv-abf-flownum{ width:44px; height:44px; font-size:14px; }
    .mcv-abf-icongrid,.mcv-abf-cs-grid,.mcv-abf-modelgrid{ grid-template-columns:1fr; }
    .mcv-abf-trustgrid,.mcv-abf-seggrid{ grid-template-columns:1fr 1fr; }
    .mcv-abf-cs-stats{ grid-template-columns:1fr; }
    .mcv-abf-cs-stat{ border-right:none; border-bottom:1px solid rgba(11,11,16,0.1); }
    .mcv-abf-cs-stat:last-child{ border-bottom:none; }
    .mcv-abf-cs-top,.mcv-abf-steprow{ flex-direction:column; }
    .mcv-abf-cs-meta{ text-align:left; }
    .mcv-abf-chartcard .mcv-abf-barrow{ gap:10px; }
    .mcv-abf-chartcard .mcv-abf-barrow .l{ flex:0 0 104px; font-size:11.5px; }
  }
.mcv-abf-pt .mcv-abf-head .kicker{ color:#ff8090; }
* + .mcv-abf-callout{ margin-top:22px; }
.mcv-abf-cta .mcv-abf-byline,.mcv-abf-cta .mcv-abf-footerbar{ color:#ffffff; }
.mcv-abf-cta .mcv-abf-byline .dotsep{ opacity:.65; }
.mcv-abf-cta .mcv-abf-footermeta{ color:#ffffff; }
.mcv-abf-trustband .kicker,.mcv-abf-pt .kicker{ color:var(--crimson-light); }
.mcv-abf-cta .kicker{ color:#ffffff; }
@media (max-width:560px){ .mcv-abf-trustgrid,.mcv-abf-seggrid{ grid-template-columns:1fr; } }

    
    
      
        
          
            [Home](/)/[Airbnb Clone](/airbnb-clone/)/Features
          
          Airbnb Clone · Features
          
# 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 →](/airbnb-clone/)[See Pricing](/airbnb-clone/development-cost/)
          
            **7** bookable service types
            **4** surfaces, one API
            **6 days** to deploy
          
        
        
          Availabilitychecked live
          BOOKING TOTALSEASONAL + LOS + COUPON
          COMMISSIONSTORED ON THE BOOKINGnever rewritten
          Payoutnet of fees
        
      
    
  

  
    
      
        7Service Types on One Engine
        40+Database Tables Across All Domains
        20+Operator Admin Modules
        15Languages Pre-Configured
      
    
  

  
    
      
        By Role
        
## Feature 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.

      
      
        
          G
          
### 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

        
        
          H
          
### 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

        
        
          O
          
### 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

        
      
    
  

  
    
      
        Seven Types
        
## 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.

    
  

  
    
      
        End to End
        
## How It Works, End to End

        
Follow one booking from search to host payout - the path where marketplaces actually break.

      
      
        
          01
          
### 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.

        
        
          02
          
### 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.

        
        
          03
          
### 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.

        
        
          04
          
### 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.

        
        
          05
          
### 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.

    
  

  
    
      
        Rationale
        
## 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.

        
          **Laravel 10**PHP 8.1+, modular monolith
          **40+**MySQL tables
          **Flutter**Android and iOS, one codebase
          **Redis**Cache, sessions, queues
        
      
      
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.

    
  

  
    
      
        Honest Readiness
        
## 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

        
          A two-way channel manager for OTAs is an add-on, not base - iCal export ships for one-way calendar sync
          Dynamic pricing is an add-on rather than a shipped feature
          Additional local payment rails beyond the six are a customization
          Custom OTA or PMS integrations are scoped separately
          We do not hold an ISO 27001 certificate and do not claim one
          Each payment gateway needs your own merchant account and its own approval
          Your content, imagery and listing data are yours to supply
          Custom work beyond the base is quoted at 2 to 8 weeks depending on scope
        
      
      
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](/airbnb-clone/development-company/) page.

    
  

  
    
      
        
          Development Company
          
### 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.

        
        [See the comparison →](/airbnb-clone/development-company/)
      
    
  

  
    
      
        FAQ
        
## Frequently Asked Questions

      
      
        
          
            Do I have to use all seven service types?
            No. Every service module can be switched off in the admin, which removes it from search, navigation and the host console. Most operators launch with one or two and enable more once supply exists. Enabling one later needs no rebuild, because they all share the same booking, payment and payout path.
          
          
            How does the platform stop double-booking?
            Availability is validated at request time against the per-service date tables and existing bookings, not read from a cached flag, and room-level synchronization prevents a clash inside a single property. Where you also sell through OTAs, iCal export keeps external calendars in step, and a two-way channel manager is available as an add-on.
          
          
            Can I change the commission rate later?
            Yes, globally or per host, as a percentage or a fixed amount. The rate is written onto each booking at the moment it is made, so changing it affects future bookings only and never rewrites what a host already earned. That is what keeps historical reporting and payout records defensible.
          
        
        
          
            Which payment gateways are included?
            Six ship pre-integrated: Stripe, PayPal, PayStack for African markets, Payrexx for European methods, an offline bank transfer flow with manual admin confirmation, and the platform wallet. Additional local rails are a customization, and because gateways sit behind a common interface, adding one does not disturb the others.
          
          
            Can I run this in more than one language?
            Yes, and at entity level rather than interface strings alone. Each listing, page and category carries its own per-locale content, with fifteen languages pre-configured and right-to-left layout supported for Arabic and Hebrew. Adding a language is an admin action, not a deployment.
          
          
            How do host payouts work?
            Host earnings accumulate net of commission and fees, calculated per booking at the rate stored on that booking. The host requests a payout from their dashboard, you review it in the payout queue and mark it complete once the transfer is made. Bank transfer and PayPal are supported out of the box.
          
        
      
    
  

  
    
    
      
        
## 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.

        [See Pricing](/airbnb-clone/development-cost/)[Full Overview](/airbnb-clone/)
      
    
  

  
    
      
        Explore
        
## Explore the Airbnb Clone

      
      
        [Overview](/airbnb-clone/)
        [Features](/airbnb-clone/features/)
        [Development Cost](/airbnb-clone/development-cost/)
        [Development Company](/airbnb-clone/development-company/)
        [Business Model](/airbnb-clone/business-model/)
      
    
  

  
    
    
      
        
## 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 →](/airbnb-clone/)
      
      
        
          **Written by the Miracuves Product Team**·
          Reviewed for accuracy·
          Last updated **August 14, 2026**
        
        
          Miracuves · Airbnb Clone Solution
          Feature set and readiness caveats cross-verified against the live hub, 2026-08-14
