---
title: YachtWorld Clone Development Company
description: 
url: https://miracuves.com/yachtworld-clone/development-company
date_modified: 2026-09-04
author: miracuves
language: en_US
---

.mcv-ywd{
    --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-ywd *{ box-sizing:border-box; }
  .mcv-ywd h1,.mcv-ywd h2,.mcv-ywd h3{ font-family:'Plus Jakarta Sans',Arial,sans-serif; font-weight:800; margin:0; letter-spacing:-0.02em; line-height:1.12; }
  .mcv-ywd p{ margin:0 0 14px; line-height:1.7; color:var(--ink); }
  .mcv-ywd a{ color:var(--crimson-deep); text-decoration:none; }
  .mcv-ywd .mono{ font-family:'JetBrains Mono',monospace; }
  .mcv-ywd-wrap{ max-width:1180px; margin:0 auto; padding:0 24px; position:relative; z-index:2; }
  .mcv-ywd-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-ywd-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-ywd-crumb a{ color:rgba(255,255,255,.62); }
  .mcv-ywd-crumb a:hover{ color:var(--crimson-light); }
  .mcv-ywd-crumb span.sep{ opacity:.5; }
  .mcv-ywd-crumb span.cur{ color:rgba(255,255,255,.75); }

  .mcv-ywd-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-ywd-eyebrow .dot{ width:6px; height:6px; border-radius:50%; background:var(--crimson); }

  .mcv-ywd-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-ywd-hero .ring{ position:absolute; border:2px solid rgba(232,52,79,.18); border-radius:50%; pointer-events:none; }
  .mcv-ywd-hero .ring1{ width:560px; height:560px; top:-260px; right:-200px; }
  .mcv-ywd-hero .ring2{ width:340px; height:340px; bottom:-200px; right:120px; border-color:rgba(232,52,79,.1); }
  .mcv-ywd-herogrid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:center; }
  .mcv-ywd-hero h1{ font-size:clamp(27px,3.9vw,44px); color:#fff; }
  .mcv-ywd-hero h1 em{ font-style:normal; color:#ff8090; }
  .mcv-ywd-hero p.sub{ font-size:16px; color:rgba(255,255,255,.68); max-width:600px; margin:20px 0 30px; }

  .mcv-ywd a.mcv-ywd-btn{ display:inline-flex; align-items:center; gap:8px; border-radius:12px; background:linear-gradient(160deg,#d81b46,#e6223f); 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-ywd a.mcv-ywd-btn:hover{ color:#fff; transform:translateY(-2px); box-shadow:0 14px 36px rgba(232,52,79,.42); text-decoration:none; }
  .mcv-ywd a.mcv-ywd-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-ywd a.mcv-ywd-btn-outline:hover{ background:#fff; color:#191419; text-decoration:none; }

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

  .mcv-ywd-cardstack{ position:relative; height:340px; }
  .mcv-ywd-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-ywd-fincard.c1{ top:0; left:10px; z-index:1; opacity:.5; transform:rotate(-6deg) scale(.92); }
  .mcv-ywd-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-ywd-fincard .brand{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); }
  .mcv-ywd-fincard .chip{ width:34px; height:24px; border-radius:5px; background:linear-gradient(135deg,#ff8090,#e8344f); margin:22px 0 18px; }
  .mcv-ywd-fincard .num{ font-family:'JetBrains Mono',monospace; font-size:15px; color:#fff; letter-spacing:.1em; }
  .mcv-ywd-fincard .curr{ position:absolute; bottom:22px; right:22px; font-family:'JetBrains Mono',monospace; font-size:11px; color:#ff8090; }
  .mcv-ywd-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-ywd-float .k2{ font-family:'JetBrains Mono',monospace; font-size:10px; color:#ff8090; text-transform:uppercase; letter-spacing:.08em; margin-bottom:3px; }
  .mcv-ywd-float .v{ font-family:'JetBrains Mono',monospace; font-size:15px; color:#fff; font-weight:700; }
  .mcv-ywd-float-1{ top:-10px; right:0; }
  .mcv-ywd-float-2{ bottom:10px; left:0; }

  .mcv-ywd-statbar{ margin-top:-72px; position:relative; z-index:3; }
  .mcv-ywd-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-ywd-statbar .stat{ text-align:center; padding:0 12px; border-right:1px solid var(--line-light); }
  .mcv-ywd-statbar .stat:last-child{ border-right:none; }
  .mcv-ywd-statbar .num{ font-family:'JetBrains Mono',monospace; font-weight:700; font-size:22px; color:#ff8090; }
  .mcv-ywd-statbar .lbl{ font-size:11.5px; color:rgba(255,255,255,.62); margin-top:6px; line-height:1.4; }

  .mcv-ywd-section{ padding:100px 0 76px; }
  .mcv-ywd-section.paper{ background:#faf8f8; }
  .mcv-ywd-section.tight{ padding-top:76px; }
  .mcv-ywd-head{ text-align:center; max-width:720px; margin:0 auto 48px; }
  .mcv-ywd-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-ywd-head h2{ font-size:clamp(22px,3vw,34px); color:#191419; }
  .mcv-ywd-head p{ color:#6d666d; margin-top:14px; }

  .mcv-ywd-rolegrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .mcv-ywd-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-ywd-rolecard:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.09); border-color:#e8344f; }
  .mcv-ywd-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-ywd-rolecard h3{ font-size:17px; margin-bottom:12px; color:#191419; }
  .mcv-ywd-rolecard ul{ margin:0; padding-left:18px; font-size:13.5px; color:#191419; }
  .mcv-ywd-rolecard li{ margin-bottom:8px; line-height:1.5; }

  .mcv-ywd-tablewrap{ overflow-x:auto; border-radius:16px; box-shadow:0 12px 34px rgba(0,0,0,.07); border:1px solid var(--line); }
  table.mcv-ywd-table{ border-collapse:collapse; width:100%; min-width:680px; background:#fff; font-size:13.5px; }
  table.mcv-ywd-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-ywd-table td{ padding:14px 16px; border-bottom:1px solid rgba(11,11,16,0.1); vertical-align:top; color:#191419; }
  table.mcv-ywd-table td.hl{ background:rgba(232,52,79,.06); border-top:3px solid #e8344f; font-weight:600; color:#191419; }
  table.mcv-ywd-table th.hl{ background:#e6223f; color:#ffffff; }
  table.mcv-ywd-table tbody tr:hover td{ background:#f4f1f1; color:#191419; }
  table.mcv-ywd-table tbody tr:hover td.hl{ background:rgba(232,52,79,.13); color:#191419; }
  table.mcv-ywd-table tr:last-child td{ border-bottom:none; }
  .mcv-ywd-note{ font-size:12.5px; color:#6d666d; margin-top:12px; }

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

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

  .mcv-ywd-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-ywd-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-ywd-cs-badge .dot{ width:6px; height:6px; border-radius:50%; background:#e8344f; }
  .mcv-ywd-cs-body{ flex:1; min-width:260px; }
  .mcv-ywd-cs-body h3{ font-size:16.5px; margin-bottom:6px; color:#191419; }
  .mcv-ywd-cs-body p{ color:#6d666d; font-size:13.5px; margin:0; max-width:460px; }
  .mcv-ywd a.mcv-ywd-cs-link{ font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; color:#a70d2a; white-space:nowrap; }

  .mcv-ywd-faqgrid{ display:grid; grid-template-columns:1fr 1fr; gap:0 40px; max-width:1000px; margin:0 auto; }
  .mcv-ywd-faq details{ border-bottom:1px solid var(--line); padding:18px 0; }
  .mcv-ywd-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-ywd-faq summary::-webkit-details-marker{ display:none; }
  .mcv-ywd-faq summary::after{ content:'+'; font-family:'JetBrains Mono',monospace; color:#a70d2a; font-size:20px; font-weight:700; flex:none; }
  .mcv-ywd-faq details[open] summary::after{ content:'\2212'; }
  .mcv-ywd-faq .a{ color:#6d666d; font-size:13.5px; margin-top:10px; line-height:1.65; }

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

  .mcv-ywd-explore{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
  .mcv-ywd a.mcv-ywd-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-ywd a.mcv-ywd-pill:hover{ border-color:#e8344f; color:#a70d2a; text-decoration:none; }
  .mcv-ywd a.mcv-ywd-pill.cur{ background:#191419; color:#fff; border-color:#191419; }

  .mcv-ywd-finalcta{ background:#0a0a0a; color:#fff; text-align:center; padding:96px 24px 64px; position:relative; overflow:hidden; }
  .mcv-ywd-finalcta .ring{ position:absolute; border:1.5px solid rgba(232,52,79,.16); border-radius:50%; }
  .mcv-ywd-finalcta .ring1{ width:480px; height:480px; top:-220px; left:-160px; }
  .mcv-ywd-finalcta .ring2{ width:300px; height:300px; bottom:-180px; right:-90px; }
  .mcv-ywd-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-ywd-finalcta h2{ color:#fff; font-size:clamp(24px,3.2vw,34px); max-width:640px; margin:0 auto 14px; }
  .mcv-ywd-finalcta p.sub{ color:rgba(255,255,255,.7); max-width:520px; margin:0 auto 30px; }
  .mcv-ywd-footerbar{ max-width:1180px; margin:56px auto 0; padding-top:28px; border-top:1px solid var(--line-light); position:relative; z-index:2; }
  .mcv-ywd-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-ywd-byline strong{ color:#fff; font-weight:600; }
  .mcv-ywd-byline .dotsep{ opacity:.4; }
  .mcv-ywd-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-ywd-herogrid{ grid-template-columns:1fr; }
    .mcv-ywd-statbar .inner{ grid-template-columns:repeat(2,1fr); gap:18px 0; }
    .mcv-ywd-statbar .stat:nth-child(2){ border-right:none; }
    .mcv-ywd-rolegrid{ grid-template-columns:1fr; }
    .mcv-ywd-honestgrid{ grid-template-columns:1fr; }
    .mcv-ywd-faqgrid{ grid-template-columns:1fr; }
    .mcv-ywd-hero h1{ font-size:27px; }
    .mcv-ywd-cta .flex{ flex-direction:column; align-items:flex-start; }
    .mcv-ywd-cardstack{ height:260px; }
    .mcv-ywd-fincard{ width:250px; height:150px; }
  }
  @media (prefers-reduced-motion: reduce){ .mcv-ywd *{ animation:none !important; transition:none !important; } }
  /* --- components used by cost / company / business-model --- */
  .mcv-ywd-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-ywd-pricecard .plan{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#ff8090; margin-bottom:14px; }
  .mcv-ywd-pricecard .amt{ font-family:'JetBrains Mono',monospace; font-size:44px; font-weight:700; color:#fff; line-height:1; }
  .mcv-ywd-pricecard .per{ font-size:13px; color:rgba(255,255,255,.6); margin-top:8px; }
  .mcv-ywd-pricecard ul{ margin:22px 0 0; padding-left:18px; color:rgba(255,255,255,.78); font-size:13.5px; }
  .mcv-ywd-pricecard li{ margin-bottom:8px; line-height:1.5; }
  .mcv-ywd-drivers{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .mcv-ywd-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-ywd-driver:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.09); border-color:#e8344f; }
  .mcv-ywd-driver h3{ font-size:16px; margin-bottom:10px; color:#191419; }
  .mcv-ywd-driver p{ font-size:13.5px; color:#6d666d; margin:0; }
  .mcv-ywd-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .mcv-ywd-step{ background:#fff; border:1px solid rgba(11,11,16,0.1); border-radius:16px; padding:24px 22px; }
  .mcv-ywd-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-ywd-step h3{ font-size:15.5px; margin-bottom:8px; color:#191419; }
  .mcv-ywd-step p{ font-size:13.5px; color:#6d666d; margin:0; }
  .mcv-ywd-checkgrid{ display:grid; grid-template-columns:1fr 1fr; gap:16px 28px; }
  .mcv-ywd-check{ background:#fff; border:1px solid rgba(11,11,16,0.1); border-radius:14px; padding:20px 22px; }
  .mcv-ywd-check h3{ font-size:15px; margin-bottom:8px; color:#191419; }
  .mcv-ywd-check p{ font-size:13.5px; color:#6d666d; margin:0; }
  .mcv-ywd-flags{ display:grid; grid-template-columns:1fr 1fr; gap:14px 28px; }
  .mcv-ywd-flag{ font-size:13.5px; color:#191419; line-height:1.55; padding-left:22px; position:relative; }
  .mcv-ywd-flag::before{ content:'\2715'; position:absolute; left:0; top:0; font-family:'JetBrains Mono',monospace; font-weight:700; color:#a70d2a; }
  .mcv-ywd-pt{ background:radial-gradient(ellipse 800px 400px at 20% 0%, rgba(232,52,79,.14), transparent), #0a0a0a; color:#fff; padding:92px 0 84px; }
  .mcv-ywd-pt .mcv-ywd-head h2{ color:#fff; }
  .mcv-ywd-pt .mcv-ywd-head p{ color:rgba(255,255,255,.68); }
  .mcv-ywd-pt .mcv-ywd-head .kicker{ color:#ff8090; }
  .mcv-ywd-ptgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  .mcv-ywd-ptcard{ background:rgba(8,3,8,0.82); border:1px solid rgba(255,255,255,0.12); border-radius:18px; padding:26px 24px; }
  .mcv-ywd-ptcard h3{ font-size:15.5px; color:#fff; margin-bottom:10px; }
  .mcv-ywd-ptcard p{ font-size:13.5px; color:rgba(255,255,255,.72); margin:0; }
  .mcv-ywd-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-ywd-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-ywd-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-ywd-csmeta div{ font-size:13px; color:#6d666d; }
  .mcv-ywd-csmeta strong{ display:block; font-family:'JetBrains Mono',monospace; font-size:18px; color:#191419; margin-bottom:2px; }
  .mcv-ywd-cscols{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
  .mcv-ywd-cscols h4{ font-size:13px; font-family:'JetBrains Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:#a70d2a; margin:0 0 10px; }
  .mcv-ywd-cscols ul{ margin:0; padding-left:18px; font-size:13.5px; color:#191419; }
  .mcv-ywd-cscols li{ margin-bottom:8px; line-height:1.5; }
  .mcv-ywd-quote{ margin-top:28px; padding:24px 26px; background:#faf8f8; border-left:3px solid #e8344f; border-radius:0 12px 12px 0; }
  .mcv-ywd-quote p{ font-size:15px; font-style:italic; color:#191419; margin:0 0 10px; }
  .mcv-ywd-quote .who{ font-family:'JetBrains Mono',monospace; font-size:12px; color:#6d666d; font-style:normal; }
  .mcv-ywd-revgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .mcv-ywd-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-ywd-revcard:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.09); border-color:#e8344f; }
  .mcv-ywd-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-ywd-revcard h3{ font-size:16.5px; margin-bottom:10px; color:#191419; }
  .mcv-ywd-revcard p{ font-size:13.5px; color:#6d666d; margin:0; }
  .mcv-ywd-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-ywd-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-ywd-disclose h3{ font-size:16px; margin-bottom:10px; color:#191419; }
  .mcv-ywd-disclose p{ font-size:13.5px; color:#6d666d; margin:0 0 10px; }
  .mcv-ywd-disclose p:last-child{ margin-bottom:0; }
  .mcv-ywd-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-ywd-callout .figs div{ font-size:12.5px; color:rgba(255,255,255,.65); }
  .mcv-ywd-callout .figs strong{ display:block; font-family:'JetBrains Mono',monospace; font-size:20px; color:#fff; margin-bottom:3px; }
  @media (max-width:900px){
    .mcv-ywd-drivers,.mcv-ywd-steps,.mcv-ywd-checkgrid,.mcv-ywd-flags,.mcv-ywd-ptgrid,.mcv-ywd-cscols,.mcv-ywd-revgrid{ grid-template-columns:1fr; }
    .mcv-ywd-csbox{ padding:28px 24px; }
  }
  /* ===== components ported from the shipped reference bundle (instagram-clone) ===== */
  .mcv-ywd-aside{ border-left:3px solid #e8344f; background:#faf8f8; border-radius:0 16px 16px 0; padding:32px 36px; }
  .mcv-ywd-aside h3{ font-size:17px; margin-bottom:14px; color:#191419; }
  .mcv-ywd-aside ul{ margin:0; padding:0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:16px 32px; }
  .mcv-ywd-aside li{ padding-left:18px; position:relative; font-size:14px; color:#191419; line-height:1.6; }
  .mcv-ywd-aside li::before{ content:''; position:absolute; left:0; top:7px; width:7px; height:7px; background:#e8344f; transform:rotate(45deg); }
  .mcv-ywd-aside li span{ color:#6d666d; display:block; font-size:12.5px; margin-top:2px; }
  .mcv-ywd-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-ywd-flowrow:last-child{ border-bottom:none; }
  .mcv-ywd-flowrow h3{ font-size:18px; margin-bottom:8px; color:#191419; }
  .mcv-ywd-flowrow p{ color:#6d666d; font-size:14.5px; margin:0; max-width:760px; }
  .mcv-ywd-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-ywd-icongrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
  .mcv-ywd-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-ywd-iconitem h3{ font-size:15px; margin-bottom:6px; color:#191419; }
  .mcv-ywd-iconitem p{ font-size:13px; color:#6d666d; margin:0; }
  .mcv-ywd-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-ywd-steprow{ display:flex; gap:24px; padding:22px 0; border-bottom:1px solid rgba(11,11,16,0.1); }
  .mcv-ywd-steprow:last-child{ border-bottom:none; }
  .mcv-ywd-step-num{ font-family:'JetBrains Mono',monospace; font-weight:700; font-size:15px; color:#a70d2a; flex:none; width:90px; padding-top:2px; }
  .mcv-ywd-step-body h3{ font-size:17px; color:#191419; margin-bottom:6px; }
  .mcv-ywd-step-body p{ font-size:14.5px; color:#6d666d; margin:0; }
  .mcv-ywd-trustband{ background:#0a0a0a; color:#fff; padding:96px 0; position:relative; overflow:hidden; }
  .mcv-ywd-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-ywd-trustband .head{ text-align:center; max-width:720px; margin:0 auto 44px; position:relative; z-index:2; }
  .mcv-ywd-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-ywd-trustband .head h2{ color:#fff; font-size:clamp(22px,3vw,34px); }
  .mcv-ywd-trustband .head p{ color:rgba(255,255,255,.68); margin-top:14px; }
  /* the band markup uses the prefixed head class, so scope the light colours to it explicitly -
     without this the h2 falls through to .mcv-ywd-head h2 (#191419) and vanishes on the black band */
  .mcv-ywd-trustband .mcv-ywd-head h2{ color:#ffffff; font-size:clamp(22px,3vw,34px); }
  .mcv-ywd-trustband .mcv-ywd-head p{ color:rgba(255,255,255,0.68); }
  .mcv-ywd-trustband .mcv-ywd-head .kicker{ color:#ff8090; }
.mcv-ywd-trustband .mcv-ywd-note{ color:rgba(255,255,255,0.68); }
.mcv-ywd-pt .mcv-ywd-note{ color:rgba(255,255,255,0.68); }
  .mcv-ywd-trustgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; position:relative; z-index:2; }
  .mcv-ywd-trustcard{ background:rgba(8,3,8,0.82); border:1px solid rgba(255,255,255,0.12); border-radius:16px; padding:26px 22px; }
  .mcv-ywd-trustcard h3{ color:#fff; font-size:15px; margin-bottom:8px; }
  .mcv-ywd-trustcard p{ color:rgba(255,255,255,.68); font-size:13px; margin:0; line-height:1.55; }
  .mcv-ywd-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-ywd-scorecard{ background:rgba(8,3,8,0.82); border:1px solid rgba(255,255,255,0.12); border-radius:20px; padding:28px 26px; }
  .mcv-ywd-scorecard .k{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#ff8090; margin-bottom:16px; }
  .mcv-ywd-scorerow{ display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid rgba(255,255,255,0.12); }
  .mcv-ywd-scorerow:last-child{ border-bottom:none; }
  .mcv-ywd-scorerow .lbl2{ font-size:12.5px; color:rgba(255,255,255,.75); }
  .mcv-ywd-scorerow .val{ font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:700; color:#fff; }
  .mcv-ywd-scorerow .val.good{ color:#ff8090; }
  /* scorecard is a DARK card sitting in a light section. Rows authored as
     **label**text inherit var(--ink) and vanish (1.13:1).
     Give them light ink and stack them; .lbl2/.val two-column rows are untouched. */
  .mcv-ywd-scorerow{ flex-wrap:wrap; }
  .mcv-ywd-scorecard > .mcv-ywd-scorerow > strong{ flex:1 0 100%; color:#ffffff; font-size:14.5px; margin-bottom:4px; }
  .mcv-ywd-scorecard > .mcv-ywd-scorerow > span{ flex:1 0 100%; color:rgba(255,255,255,0.78); font-size:13px; line-height:1.62; }
  .mcv-ywd-cs-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:24px; flex-wrap:wrap; margin-bottom:28px; }
  .mcv-ywd-cs-top p{ color:#6d666d; font-size:14.5px; max-width:480px; margin:0; }
  .mcv-ywd-cs-meta{ text-align:right; font-size:13.5px; }
  .mcv-ywd-cs-meta strong{ display:block; color:#191419; font-size:14.5px; }
  .mcv-ywd-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-ywd-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-ywd-cs-stat{ text-align:center; padding:22px 12px; border-right:1px solid rgba(11,11,16,0.1); }
  .mcv-ywd-cs-stat:last-child{ border-right:none; }
  .mcv-ywd-cs-stat .v{ font-family:'JetBrains Mono',monospace; font-weight:700; font-size:26px; color:#a70d2a; }
  .mcv-ywd-cs-stat .l{ font-size:12.5px; color:#6d666d; margin-top:4px; }
  .mcv-ywd-cs-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
  .mcv-ywd-cs-box{ background:#faf8f8; border-radius:14px; padding:22px 24px; }
  .mcv-ywd-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-ywd-cs-box ul{ margin:0; padding:0; list-style:none; display:grid; gap:8px; }
  .mcv-ywd-cs-box li{ padding-left:16px; position:relative; font-size:13.5px; color:#191419; line-height:1.55; }
  .mcv-ywd-cs-box li::before{ content:''; position:absolute; left:0; top:7px; width:6px; height:6px; background:#e8344f; transform:rotate(45deg); }
  .mcv-ywd-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-ywd-cs-quote p{ font-style:italic; font-size:15px; color:#191419; margin:0 0 10px; }
  .mcv-ywd-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-ywd-cs-who strong{ display:block; font-size:13.5px; color:#191419; }
  .mcv-ywd-cs-who span{ font-size:12.5px; color:#6d666d; }
  .mcv-ywd-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-ywd-mockwrap{ position:relative; }
  .mcv-ywd-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-ywd-chartcard .k{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#ff8090; margin-bottom:18px; }
  .mcv-ywd-chartcard .mcv-ywd-barrow{ display:flex; align-items:center; gap:14px; height:auto; margin:0 0 14px; }
  .mcv-ywd-chartcard .mcv-ywd-barrow .l{ flex:0 0 140px; font-size:12.5px; line-height:1.35; color:rgba(255,255,255,.78); }
  .mcv-ywd-chartcard .mcv-ywd-barrow>.bar{ flex:1; height:8px; border-radius:999px; background:rgba(255,255,255,.10); overflow:hidden; }
  .mcv-ywd-chartcard .mcv-ywd-barrow>.bar>.mcv-ywd-barcol{ height:8px; border-radius:999px; background:linear-gradient(90deg,#ff8090,#d81b46); }
  .mcv-ywd-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-ywd-seggrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
  .mcv-ywd-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-ywd-segcard:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.09); border-color:#e8344f; }
  .mcv-ywd-segcard h3{ color:#191419; font-size:15.5px; margin-bottom:8px; }
  .mcv-ywd-segcard p{ color:#6d666d; font-size:13px; margin:0; line-height:1.55; }
  .mcv-ywd-segcard ul{ margin:12px 0 0; padding-left:17px; }
  .mcv-ywd-segcard li{ color:#6d666d; font-size:12.5px; line-height:1.5; margin-bottom:6px; }
  .mcv-ywd-segcard li:last-child{ margin-bottom:0; }
  .mcv-ywd-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-ywd-modelgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .mcv-ywd-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-ywd-modelcard:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.09); border-color:#e8344f; }
  .mcv-ywd-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-ywd-modelcard:hover .ghost{ color:#e8344f; opacity:.09; }
  .mcv-ywd-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-ywd-modelcard h3{ font-size:16.5px; margin-bottom:8px; position:relative; color:#191419; }
  .mcv-ywd-modelcard p{ font-size:13.5px; color:#6d666d; margin:0; line-height:1.55; position:relative; }
  .mcv-ywd-streamlist{ display:flex; flex-direction:column; gap:9px; }
  .mcv-ywd-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-ywd-streamrow .n{ font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; color:#ff8090; }
  .mcv-ywd-streamrow .s{ font-size:13px; color:#fff; font-weight:600; }
  @media (max-width:900px){
    .mcv-ywd-aside ul{ grid-template-columns:1fr; }
    .mcv-ywd-flowrow{ grid-template-columns:48px 1fr; gap:16px; }
    .mcv-ywd-flownum{ width:44px; height:44px; font-size:14px; }
    .mcv-ywd-icongrid,.mcv-ywd-cs-grid,.mcv-ywd-modelgrid{ grid-template-columns:1fr; }
    .mcv-ywd-trustgrid,.mcv-ywd-seggrid{ grid-template-columns:1fr 1fr; }
    .mcv-ywd-cs-stats{ grid-template-columns:1fr; }
    .mcv-ywd-cs-stat{ border-right:none; border-bottom:1px solid rgba(11,11,16,0.1); }
    .mcv-ywd-cs-stat:last-child{ border-bottom:none; }
    .mcv-ywd-cs-top,.mcv-ywd-steprow{ flex-direction:column; }
    .mcv-ywd-cs-meta{ text-align:left; }
    .mcv-ywd-chartcard .mcv-ywd-barrow{ gap:10px; }
    .mcv-ywd-chartcard .mcv-ywd-barrow .l{ flex:0 0 104px; font-size:11.5px; }
  }
* + .mcv-ywd-callout{ margin-top:22px; }
.mcv-ywd-cta .mcv-ywd-byline,.mcv-ywd-cta .mcv-ywd-footerbar{ color:#ffffff; }
.mcv-ywd-cta .mcv-ywd-byline .dotsep{ opacity:.65; }
.mcv-ywd-trustband .kicker,.mcv-ywd-pt .kicker{ color:var(--crimson-light); }
.mcv-ywd-cta .kicker{ color:#ffffff; }
.mcv-ywd-cta .mcv-ywd-footermeta{ color:#ffffff; }
@media (max-width:560px){ .mcv-ywd-trustgrid,.mcv-ywd-seggrid{ grid-template-columns:1fr; } }

.mcv-ywd-trustgrid{ grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){ .mcv-ywd-trustgrid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .mcv-ywd-trustgrid{ grid-template-columns:1fr; } }
.mcv-ywd-cs-grid{ grid-template-columns:1fr; }

    
    
      
        
          
            [Home](/)/[YachtWorld Clone](/yachtworld-clone/)/Development Company
          
          YachtWorld Clone · Development Company
          
# YachtWorld Clone Development Company: What to Check Before You Hire

          
A brokerage receives few leads and each one is worth a great deal, which changes what "good enough" means. A platform that drops one inquiry a month is not slightly worse than one that does not, it is a different business. Below is how we work, the release gates we publish rather than hide, and the nine questions we would want answered if we were the ones buying.

          [Talk to Our Team →](https://miracuves.com/schedule-consultation/)[See Pricing](/yachtworld-clone/development-cost/)
          
            **Since 2010** building platforms
            **Full source** every time
            **6 days** to deploy
          
        
        
          Release gatesPublished, not buried
          
            What Handover Actually Means
            
              01Monorepo in your own repository
              0240-table schema and the ERD
              03OpenAPI contract plus codegen
              04Developer and security handbook
              05VAPT posture document
              06The hardening list, in writing
            
          
        
      
    
  

  
    
      
        2010Building Platforms Since
        9,000+Projects Delivered
        6 daysDeployment Window
        100%Source Code Transferred
      
    
  

  
    
      
        Compare
        
## Agency vs Freelancer vs Miracuves

        
Three routes to the same platform, and where each tends to fail once real inventory and real brokers are on it.

      
      
        
| What matters | Freelance team | Miracuves ready-made |
| --- | --- | --- |
| Time to live | Six to twelve months, if the scope holds | Six working days |
| The listing schema | Title, price, photos, then fields bolted on later | 40+ vessel fields designed in from the start |
| What an inquiry becomes | An email, and a promise to build a CRM in phase two | A lead object with stage, notes and a response timer |
| Operator console | Descoped first, and rarely finished | Moderation, plans, taxonomy, disputes and eight queues |
| Search | Keyword and filters; radius arrives late and slowly | Technical ranges and geospatial radius in one query path |
| Two clients in step | Web first, mobile diverges within a quarter | One OpenAPI contract generating both clients |
| Stated limitations | Rarely offered at all | Published before purchase, release gates included |
| Price behaviour | Hourly, and it moves | $4,299 fixed, quoted before work starts |

      
      
Good agencies exist and will build you a competent platform. What the table measures is elapsed months, price certainty and whether the qualification and governance layer is designed in or promised for a later phase that often never arrives.

    
  

  
    
      
        Due Diligence
        
## Questions Worth Asking Any Provider

        
Put all nine to us and to whoever else is bidding. What a provider says about the lead object tells you more than any portfolio.

      
      
        01
### What happens to an inquiry after it arrives?

If the answer is a notification email, there is no lead lifecycle. Ask to see status, stage, private notes, a reply field and a response timestamp on the same record.

        02
### How many specification fields does a listing carry?

Draft, beam, displacement, engine hours, hull material, keel and rig are not optional extras on a vessel. A schema that treats them as custom fields will not filter on them properly.

        03
### Can search combine a numeric range with a radius?

Ask them to filter length and engine hours while also limiting to 200 miles of a port. That single query shape is what decides whether the marketplace feels fast at two hundred thousand listings.

        04
### Is response time measured?

When the same vessel sits on four portals, replying first with context is the whole differentiator. Ask whether it is a number on a dashboard or something a manager has to guess at.

        05
### How are dealer routes enforced?

In a multi-office group, one dealer must not read another's clients. Ask whether that is middleware on the server or a filter in the interface, because only one of those is a control.

        06
### Which admin controls actually persist?

Half-built consoles are the norm in this category. Ask them to change a setting, reload, and show you it stuck. Ours is honest about this and the answer is below.

        07
### Is payment processing live or mocked?

Plans and checkout flows can exist without a provider behind them. Ask directly which part is implemented and which part is configuration, and get it in writing.

        08
### What is the realtime guarantee?

"Realtime messaging" covers everything from a durable queue to an in-process event map. Ask what happens to delivery when you run a second instance.

        09
### What is on the pre-launch hardening list?

Any provider whose list is empty either has not looked or is not telling you. Ours runs to six named gates and sits further down this page.

      
      
All nine get answered on the first call, uncomfortable ones included. The Platform Trust section below puts the same answers in writing.

    
  

  
    
      
        Process
        
## The Six-Step Development Process

        
What we do, in the order we do it.

      
      
        Step 1 · Day 0
### Scope, taxonomy and commercial model

We confirm your markets, your boat-type and category taxonomy, which of the eight service modules you are enabling, and the plan tiers with their listing and featured limits. On a marketplace those settings are the product rather than configuration, so they are the first conversation.

        Step 2 · Days 1 - 2
### Branding and locales

Name, logo, colour scheme and splash across the web application, the operator console and the Expo build, with the locales and display currencies you are actually opening in configured rather than all of them, against the exchange-rate provider you supply.

        Step 3 · Days 3 - 4
### Deploy and connect your accounts

The application and its PostgreSQL go onto infrastructure you control through the included Docker Compose behind Nginx, or PM2 if you prefer a process manager. Your SMTP, VAPID keys, exchange-rate provider and object storage are connected with credentials you hold.

        Step 4 · Day 5
### Inventory, dealers and qualification

First listings published with specifications, media and status, dealer records created with branding, geography and specializations, dealer association wired so leads route to the right desk, and the LeadSmart intent threshold set per dealer so qualification means something on day one.

        Step 5 · Day 6
### Operator walkthrough and handover

We run one lead end to end in front of your team: search, inquiry, LeadSmart answers, kanban staging, a threaded reply, a curated shortlist on the client record, then the response-time view and the service queues. The repository, schema, OpenAPI contract and documentation set transfer.

        Step 6 · Post-launch
### The support window

Sixty days of launch guidance, six months of priority bug fixes and twelve months of updates. Security hardening, payment-provider integration and inventory migration usually run inside this window on their own scoped schedule.

      
      
Day zero deserves more attention than most operators give it. Plan limits and taxonomy decided casually are the two things you cannot quietly change once dealers have signed up against them.

    
  

  
    
      
        Warning Signs
        
## Red Flags That Mean Walk Away

      
      
        
### Five answers that should end the conversation

        
**"Inquiries go straight to the broker's email."** Then there is no pipeline, no response measurement and no record of what was offered instead. On a handful of high-value leads a month, that is the entire commercial risk of the platform.

        
**"We can add the extra vessel fields later."** Specification fields drive the range filters. Retrofitting them means re-indexing, re-entering inventory and rebuilding search, which costs more than designing them in did.

        
**"Realtime messaging is fully scalable."** Ask what happens on a second instance. If the answer is vague, delivery is in-process and they have not thought about it. Ours is in-process too, and we say so.

        
**"The admin panel is complete."** Almost none are. Ask them to change a setting and reload. A provider who has audited their own console will tell you which controls persist without being asked twice.

        
**An estimate with no named exclusions.** Software has edges. A number presented without them was either never costed properly or is counting on you not to ask.

      
      
We are on the uncomfortable side of two of our own five: our realtime delivery is process-local and a small number of admin controls are presentation only. Both are named below rather than left for you to find.

    
  

  
    
      
        Domain
        
## What a Marine Marketplace Has to Get Right

        
The parts that are unglamorous, mandatory and slow to build properly.

      
      
        **A schema rich enough for the asset**Over forty vessel fields covering length, beam, draft and displacement, condition, boat type, category, fuel and hull material, engine description, count, hours and horsepower, cabins, berths, bathrooms, speeds, capacities, keel and rig, and location down to latitude and longitude. A buyer spending seven figures filters on all of it.
        **Search that combines shapes**Keyword matching, taxonomy filters, numeric ranges and geospatial radius resolved in a single query path, with distinct facet APIs for make, type and location so the filter UI does not force a full result recount on every interaction, and stable pagination for deep browsing.
        **A lead that survives being handed on**Rate-limited capture with guest contact context, subject, message, source and intent, then status, stage, notes, a reply field and a response timestamp. In brokerage a lead passes between people, and anything that lives in one person's inbox does not survive that.
        **Qualification before the call**A public LeadSmart questionnaire with authenticated response submission, an inquiry-linked review for the broker and a dealer-configurable intent threshold. With few leads and long decision cycles, knowing which conversation to have first is worth more than having more of them.
        **Evidence for the next valuation**Append-only price-history events with price-drop badges, sold price and date on closed listings, and market evaluation and insights endpoints working from those sold comparables, surfaced as public market reports and broker report screens.
        **A console a non-engineer can run**Users and dealers, listing moderation, plan CRUD with subscriber counts, taxonomy for boat types, categories, conditions and features, settings, articles and FAQs, support tickets and disputes with assignment and resolution, and all eight service queues. This is the surface most marketplace builds defer and then never finish.
      
      
All six ship in the base build. Ask on the call and we will open each one in the live demo with data behind it.

    
  

  
    
    
      
        Platform Trust
        
## What We Have Not Done Yet

        
Six items, stated before a purchase rather than after one.

      
      
        
          01
          
### Six named release gates

          
The handbook publishes them rather than waiting for a tester: eliminating the fallback JWT secret, completing object-level ownership checks on every identifier-bearing route, encrypting TOTP secrets, hashing reset tokens, private scanned uploads, and a full privacy review across all forty tables. We would rather hand you that list.

        
        
          02
          
### No marine brokerage deployment to cite

          
Miracuves has shipped marketplace, rental and listing platforms and those engagements are published in the portfolio with their own figures. There is no YachtWorld-class marine brokerage deployment among them yet, so rather than dress this platform in borrowed proof, everything claimed here is a property of the build and demonstrable in the demo.

        
        
          03
          
### Live card processing is configuration

          
Plan selection, billing-cycle records, checkout and cancellation are implemented, and invoice history is a generated six-entry mock. Connecting Stripe, Adyen or a regional provider is a standard configuration step quoted with your deployment, but it is not live in the base build and we will not imply that it is.

        
        
          04
          
### Parts of the console are presentation only

          
Only platform-settings round-trips are confirmed persistent. A small number of decorative admin controls are presentation only, and the six-month subscription amount trend is a modelled monthly-equivalent series rather than settled cash. The handbook names each one individually.

        
        
          05
          
### Realtime and rate limiting are in-process

          
Server-sent events carry typed events with a thirty-second heartbeat and disconnect cleanup, but delivery is process-local rather than a durable queue, and rate limiting is in-process at launch. Both need a shared store or shared pub/sub before you run a second instance, and the documentation says so.

        
        
          06
          
### What is built is real

          
203 handlers across 35 modules, 40 relational tables, 46 web routes, over forty vessel fields, eight service modules with their own queues and reference codes, six currencies, five locales, TOTP two-factor, a GDPR export that strips password and reset fields, password-confirmed deletion, append-only price history and the full Docker, Nginx, PM2 and EAS asset set.

        
      
      
The service modules facilitate leads. They do not bind insurance, approve credit, guarantee transport or certify surveys, and no certification or vulnerability-free claim is made anywhere in the documentation.

    
  

  
    
      
        Modelled
        
## Modelled Reference Deployment

        
An authored scenario showing how the shipped platform is configured for a brokerage group. It is not a client engagement, and the figures are properties of the platform rather than results reported by a customer.

      
      
        
          
            Illustrative Scenario
            
### Brokerage Marketplace and Dealer Network

            
How this platform is configured for a brokerage group whose leads currently arrive by email and WhatsApp, and where inventory, inquiry pipeline, broker CRM and adjacent marine services need to sit in one system rather than five.

          
          
            Illustrative scenarioNot a client engagementMarine marketplace, market modelled
          
          
            **203**API handlers in the base build
            **40**Relational tables shipped
            **6 days**Deployment window
          
          
            
**What the situation makes hard:** leads arriving by email and WhatsApp, then getting lost, duplicated or left unanswered; no single view of inventory, clients or broker performance across offices; and adjacent services like insurance, transport and finance captured on paper with no queue behind them.

            
**What the configuration addresses:** one system holding listings, inquiry pipeline, messaging and broker CRM together; response-time measurement that makes broker accountability visible rather than assumed; and eight marine service modules turning adjacent demand into a second revenue line.

            
**What ships in the base build:** specification-rich listings with over forty vessel fields, media, video and price history; configurable dealer plans with listing limits, featured slots and spotlight upgrades; six display currencies and five UI locales for international buyers; favourites, side-by-side compare, saved searches and cadence-based email alerts; and Docker, Nginx and PM2 deployment assets with a documented horizontal-scale path.

          
        
      
      
Named client deployments are published separately. See the Miracuves portfolio for real engagements with their own reported figures, and hold this page to what it says it is.

    
  

  
    
      
        FAQ
        
## Frequently Asked Questions

      
      
        
          
            Why publish your own release gates?
            Because an independent tester will find them, and finding them after payment is worse for both of us. It also means the platform you plan against is the real one rather than the marketing one. The six gates are ordinary engineering rather than a redesign, and they are cheaper to close before you hold real client records than after.
          
          
            Have you deployed this platform for a marine client?
            Not yet, and we will not imply otherwise. Miracuves has shipped marketplace, rental and listing platforms since 2010 with over nine thousand projects delivered, and those engagements sit in the portfolio with their own figures. The reference deployment on this page is labelled modelled because it is authored rather than reported, and every number in it describes the build.
          
          
            What exactly do I own at the end?
            The monorepo, with full ownership: the React and Vite web application across 46 routes, the Expo mobile app, the Express 5 API with 203 handlers across 35 modules, the Drizzle schema of 40 tables across 30 schema modules, the OpenAPI contract with its generated clients, the search-alert job, and the Docker, Nginx, PM2 and EAS assets. No runtime licence, no per-seat fee, no revenue share.
          
        
        
          
            Can it run as a multi-dealer network from day one?
            Yes. Dealer association sits on both users and listings and is enforced by middleware on every dealer route, dashboards are role-aware, and admin moderation spans the whole network. That combination is what a multi-office brokerage group needs immediately rather than in a second phase.
          
          
            Will you close the security gates for us?
            Yes, as scoped work quoted before it starts, and we recommend booking it before you have live client records. The gates are named because they are known, not because they are hard: the fallback JWT secret, object-level ownership checks on identifier-bearing routes, TOTP secret encryption, reset-token hashing, private scanned uploads and the privacy review across all forty tables.
          
          
            What if we need something that is not in the platform?
            Tell us. The base build is a foundation rather than a ceiling. Data migration from your current inventory system, feed syndication to third-party portals, partner fulfilment workflows, a dedicated search engine, enterprise SSO and object storage are all things we have scoped before. Some are included in the deployment and others are quoted, but the conversation starts with what your brokerage actually needs.
          
        
      
    
  

  
    
    
      
        
## Ask us the hard questions first

Come with the nine questions above. You will get straight answers, the release gates included, well before a contract enters the conversation.

        [Talk to Our Team](https://miracuves.com/schedule-consultation/)[See Pricing](/yachtworld-clone/development-cost/)
      
    
  

  
    
      
        Explore
        
## Explore the YachtWorld Clone

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

  
    
    
      
        
## Hire on the answers, not the deck

        
Six working days to a branded marine brokerage marketplace on your own infrastructure, the monorepo in your repository, and a hardening list you read before signing rather than after.

        [Talk to Us →](https://miracuves.com/schedule-consultation/)
      
      
        
          **Written by the Miracuves Product Team**·
          Reviewed for accuracy·
          Last updated **September 3, 2026**
        
        
          Miracuves · YachtWorld Clone Solution
          Release gates and the modelled deployment transcribed from the hub, 2026-09-03
