---
title: WhatsApp Clone Development Company
description: 
url: https://miracuves.com/whatsapp-clone/development-company
date_modified: 2026-09-11
author: miracuves
language: en_US
---

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

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

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

  .mcv-wad a.mcv-wad-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-wad a.mcv-wad-btn:hover{ color:#fff; transform:translateY(-2px); box-shadow:0 14px 36px rgba(232,52,79,.42); text-decoration:none; }
  .mcv-wad a.mcv-wad-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-wad a.mcv-wad-btn-outline:hover{ background:#fff; color:#191419; text-decoration:none; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          
Every provider can show you two phones and a message arriving. The differences show up on the day somebody has to be removed, on the month the calling invoice arrives, and on the afternoon you want a second language. Ask what a report actually does. Ask who is billed per minute. Ask what changing wording requires. Below is how we work, the list we publish rather than bury, and the nine questions we would want answered.

          [Talk to Our Team →](https://miracuves.com/schedule-consultation/)[See Pricing](/whatsapp-clone/development-cost/)
          
            **Since 2010** building platforms
            **Full source** no licence conditions
            **6 days** to deploy
          
        
        
          EncryptionDelivered, not upsold
          
            What Handover Actually Means
            
              01The Node.js API in full
              02The Flutter mobile codebase
              03Browser client and console
              04Real-time and calling layers
              05Schema, API and security docs
              06The limitation 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 on day ninety rather than on the demo.

      
      
        
| What matters | Freelance team | Miracuves ready-made |
| --- | --- | --- |
| Time to live | Four to nine months, if the scope holds | Six working days |
| What a report does | Sends somebody an email | Enters a queue with a reason you wrote |
| How calling is built | Wired to a vendor, billed per minute | Device to device, with a relay fallback |
| End-to-end encryption | The upgrade that makes the quote real | Delivered as part of the platform |
| Surfaces you get | A phone app, and plans for the rest | iPhone, Android, browser and a console |
| Adding a language | A release, and a store resubmission | A console task, no resubmission |
| Changing the brand | A developer and a deployment | Console forms, in an afternoon |
| Price behaviour | Hourly, and it moves | $3,399 fixed, quoted before work starts |

      
      
Good agencies exist and will build you a competent chat app. What the table measures is elapsed months, price certainty, and whether the parts that only matter after launch were built before it.

    
  

  
    
      
        Due Diligence
        
## Questions Worth Asking Any Provider

        
Put all nine to us and to whoever else is bidding. Most of them are about the second year rather than the first week.

      
      
        01
### Who pays for the calls?

Ask whether voice and video route through a third-party vendor. If they do, your bill grows with your success, and no amount of good design later undoes that decision.

        02
### Is encryption included or extra?

Ask for the price with and without it. A cheap headline figure that becomes expensive once you say the word encryption tells you what the real number was all along.

        03
### What happens when I report someone?

Ask them to file a report and then show you where it lands. If the answer is an email to an inbox, you do not have moderation, you have a notification.

        04
### Who writes the report reasons?

A fixed list somebody else chose will not match what goes wrong on your platform. Being able to write your own, separately for users and groups, is what makes the queue useful.

        05
### Can I be signed in on two devices?

Ask them to open the same account on a phone and a browser and send it a message. Watch whether both receive, and whether reading it on one clears it on the other.

        06
### What does adding a language require?

A console form or a release. If wording lives in the app bundle, every copy change waits on store review, and a second market becomes a project rather than an afternoon.

        07
### Where does presence live?

In the database or in one server's memory. This is the question that decides whether growing onto a second server is an adapter and a load balancer, or a redesign.

        08
### Can a non-developer rebrand it?

Ask somebody from operations to change the app name and a colour while you watch. If it needs an engineer, the platform is reusable but it is not resellable.

        09
### What is on your list of what is missing?

Any provider whose list is empty either has not looked or is not telling you. Ours names key recovery, payments, enterprise sign-on and five others, further down this page.

      
      
All nine get answered on the first call, the 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
### Decide how people get in

Phone number and one-time code, email, or social sign-in. It reads as administrative and it is not: SMS costs money per signup in most markets, email costs nothing, and in plenty of places the phone number is the identity people expect of each other. This hour shapes your acquisition cost.

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

App and website name, colours, light and dark logos, favicon, banner, copyright, store and policy links, plus which of the sixteen languages you enable and which one new users get. All from console forms, and all changeable afterwards by somebody on your own team rather than by us.

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

The Node.js application goes onto your infrastructure with MySQL as the system of record and media storage configured, encryption set up, and your own SMS, push, maps and email credentials entered once and held server-side where the console shows them masked.

        Step 4 · Day 5
### Write your rules

Your report reasons, separately for users and for groups. Your group size limit. Your wallpapers, avatars and alert sounds. Operator accounts created on their own credentials and their own privilege tier, separate from any messaging account on the platform.

        Step 5 · Day 6
### Walkthrough and handover

Two accounts, two devices, one conversation: message, photo, voice note, a group with a second admin, a video call, a story. Then somebody files a report and we work it through the queue and block the account, because the moderation path is the half nobody volunteers to demonstrate.

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

A post-launch window with a named engineer through handover. We also size the initial deployment with you and document which measurement should trigger which scaling step, so the plan for growing lives with your team rather than in our heads.

      
      
Day zero matters more here than the branding days. Sign-in method is the decision that quietly sets your cost per user, and it is much easier to choose deliberately than to change once a community has registered one way.

    
  

  
    
      
        Warning Signs
        
## Red Flags That Mean Walk Away

      
      
        
### Five answers that should end the conversation

        
**"Calling is handled by a provider."** Then every minute your users talk is a line on your bill, growing exactly as the product succeeds. This is the single most expensive architectural decision in the category and it is made before you ever see a demo.

        
**"Encryption is available as an add-on."** Ask what the quote becomes with it. A headline price that only holds while the conversations are readable is not a price, it is an opening position.

        
**"Reports go to an admin email."** An inbox is not a queue. Without a reason taxonomy, a review state and the ability to block a group rather than chase its members, you will be moderating from a mail client on the worst day of your platform's year.

        
**"You can change the branding, we'll do it for you."** That sentence means it is code. A platform a non-technical operator can rebrand from a console is resellable; one where every brand is a ticket to the vendor is a dependency you pay for repeatedly.

        
**An estimate with no named exclusions.** Messaging has real edges: key recovery, backups across a device change, enterprise sign-on, multi-server delivery. A number presented without any of them was never costed properly.

      
      
The first is the one to press hardest, because it is invisible at purchase and permanent afterwards. Ask specifically whether call media travels through their servers or between the two devices.

    
  

  
    
      
        Domain
        
## What a Messaging Platform Has to Get Right

        
The parts that do not demo, and that decide whether the platform still works a year in.

      
      
        **Calling that does not meter**Voice and video connecting directly between devices over WebRTC, with a relay server carrying only the minority of calls a restrictive network blocks. It is the difference between conversation volume being free and conversation volume being an invoice that grows with your success.
        **Moderation as a workflow**Report reasons you write yourself, separate queues for users and groups, each report carrying who filed it and the conversation it came from, the ability to block either an account or a whole group, and a review state so two moderators never work the same case.
        **One API behind four clients**A single Node.js application owning every rule, with the iPhone app, Android app, browser client and operator console as presentation layers over it. One deploy, one schema, one set of rules, which is what stops four surfaces disagreeing about what a message is.
        **Presence that survives growth**Live connections and typing state written to the database rather than held in one server's memory. It looks like an implementation detail and it is the decision that makes a second application server an adapter and a load balancer instead of a rewrite.
        **Configuration instead of code**Branding, languages, report reasons, group size limits and integration keys all held as operator data. That is what makes the same build serve a different brand in a different market on the same afternoon, and it is what separates resellable from merely reusable.
        **Identity taken from the session**Who you are comes from a signed session token rather than from a field in the request, the API is split into public, signed-in and operator tiers, and conversation access is checked against membership. Those three together are what stop one account acting as another.
      
      
All six ship in the base build. Ask on the call and we will open each one in the demo, starting with filing a report and working it through the queue.

    
  

  
    
    
      
        Platform Trust
        
## What We Have Not Done Yet

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

      
      
        
          01
          
### We have not built a pure messaging platform for a client

          
Miracuves has shipped marketplaces, social platforms and consultation products where messaging was one component, and those engagements are in the portfolio with their own figures. None of them is a messenger, so rather than dress this build in proof borrowed from a different kind of project, we say so.

        
        
          02
          
### Encryption ships, key recovery does not

          
End-to-end encrypted messaging is delivered. The operational layer around the keys is separate: encrypted chat backup and restore when somebody changes phone, and a recovery path for a user who loses theirs. Both are scoped work, and both matter more the more your community relies on the platform.

        
        
          03
          
### No payments or subscription billing

          
A messenger does not need one, and the right provider depends entirely on your market. If access to your community is the thing you intend to charge for, that integration is quoted against your market rather than implied to be sitting in the console somewhere.

        
        
          04
          
### No enterprise sign-on

          
Phone, email and social sign-in ship. Corporate single sign-on, directory synchronization and automated provisioning and deprovisioning are what an internal rollout at a large organization needs on top, and they are scoped against the identity provider you already run.

        
        
          05
          
### Four things you grow into

          
A real-time adapter across several application servers, media moved onto object storage with signed URLs and a CDN, append-only audit logging forwarded into a SIEM, and outbound webhooks for bots and integrations. The groundwork for the first two is deliberately already in the build.

        
        
          06
          
### What is built is real

          
Four surfaces over one API, end-to-end encrypted messaging, WebRTC calling with relay fallback, twelve message types, stories with genuine hourly expiry, moderation queues for users and groups, sixteen translated languages with right-to-left, fifteen dashboard metrics, and a documented security posture with a VAPT compliance reference.

        
      
      
Clone names the functional target rather than the provenance of the code: this is an original implementation on Node.js, Flutter and React, with no affiliation to WhatsApp or Meta.

    
  

  
    
      
        Modelled
        
## Modelled Reference Deployment

        
An illustrative configuration rather than a client engagement, showing how the platform is set up for an organization bringing its community in-house. Every figure in it is a property of the build rather than a reported result.

      
      
        
          
            Illustrative Scenario
            
### The Branded Community Messenger

            
An association with an active membership moving its conversation off a consumer app: its own name, its own group size limit, its own report reasons behind the moderation queue, and a dashboard showing who is actually there.

          
          
            Illustrative scenarioNot a client engagementMembership organization
          
          
            **4**Surfaces deployed
            **15**Dashboard metrics
            **6 days**Deployment window
          
          
            
**What the situation makes hard:** a membership living inside an unmanaged group chat, where nobody can see who is active, a removed member rejoins from a second number, the group size is capped by somebody else, and none of it carries the organization's name.

            
**What the configuration addresses:** phone-number signup so members join with the identity they already use, groups with a size limit the organization sets, report reasons written to match its own code of conduct, and a dashboard covering signups, active users, groups formed and call volume.

            
**What ships in the base build:** the four surfaces, end-to-end encrypted messaging, device-to-device voice and video, twelve message types, stories with genuine expiry, both moderation queues, sixteen translated languages, and console branding a non-technical operator can change.

          
        
      
      
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: an illustration of a configuration, not evidence of a result.

    
  

  
    
      
        FAQ
        
## Frequently Asked Questions

      
      
        
          
            Have you built a messaging platform for a client before?
            Not a pure messaging platform, and we would rather say that than borrow proof from a different kind of project. Miracuves has been building platforms since 2010 with over nine thousand projects delivered, including marketplaces, social platforms and consultation products where messaging was one component, and those engagements are published in the portfolio with their own figures. What backs this page instead is the build itself: two live demo accounts you can message between right now, and a limitation list we publish before you buy rather than after.
          
          
            What exactly do I own at handover?
            The Node.js API, the Flutter codebase that produces both mobile apps, the browser client and the React operator console, with no licence conditions, no revenue share and no dependency on us afterwards. It is built on Node and Flutter specifically so any competent team can take it forward. You also get the documentation set written for your engineers: product requirements, the data model, an API reference, a developer and security handbook and a VAPT compliance reference.
          
          
            Can we resell this to our own clients?
            Yes, and it is one of the cases the platform was shaped around. Because branding, languages, group limits and integration keys are all configuration rather than code, one build serves many clients without a fork per customer. An agency stands the platform up separately for each client, rebrands it from the console in an afternoon, and bills the relationship itself. Every client gets all four surfaces under their own name, and there are no licence conditions on doing any of that.
          
        
        
          
            Should we do the hardening pass before launch?
            Yes, and on a platform holding identities, conversations and media the reason is straightforward. The pass covers TLS termination, global rate limiting, upload size and type restrictions, secret vaulting, security headers, restricting who can reach the operator console, and a backup restore that has actually been tested rather than assumed to work. It is scoped work we complete with you before the platform faces the public, and it is quoted before it starts.
          
          
            Can it be self-hosted entirely?
            Yes, and for some buyers that is the whole reason to be here. The entire stack runs on your servers, your database, your storage and your jurisdiction, behind whatever network controls you already operate. Calls run device to device, so conversation content does not route through a third party either. Public bodies, regulated industries and large enterprises increasingly cannot put internal communication on a foreign consumer platform, and for them self-hosting is a procurement requirement rather than a preference.
          
          
            What if I need something the base build does not do?
            We scope and quote it in writing before it starts, and we will tell you if the honest answer is that the ready-made route is wrong for you. Larger custom work runs two to eight weeks depending on scope. The requests that come up most on messaging builds are key recovery and encrypted backup, enterprise single sign-on, and payment integration for paid access, and all three are on the published list above rather than discovered after you have committed.
          
        
      
    
  

  
    
    
      
        
## Ask us the hard questions first

Bring the nine questions from this page. Start with the one about who pays for the calls, because it is the answer that is hardest to change later.

        [Talk to Our Team](https://miracuves.com/schedule-consultation/)[Full Overview](/whatsapp-clone/)
      
    
  

  
    
      
        Explore
        
## Explore the WhatsApp Clone

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

  
    
    
      
        
## Hire on the answers, not the deck

        
Message between the two live accounts, then ask us to file a report and work it through the queue. The first proves the product; the second proves the platform.

        [Talk to Us →](https://miracuves.com/schedule-consultation/)
      
      
        
          **Written by the Miracuves Product Team**·
          Reviewed for accuracy·
          Last updated **September 10, 2026**
        
        
          Miracuves · WhatsApp Clone Solution
          Process, scope boundary and stated limitations cross-verified against the hub, 2026-09-10
        
      
    
  

				
				
				
				
						
					
			
						
				
					
  /* MIRACUVES - TRADEMARK / NON-AFFILIATION NOTICE (v3).
     Scoped under .mcv-tmn so it cannot collide with the hub connector (mcv-hubx-, mcv-hubxa-)
     or any block above it. Always the last block on the page, immediately before the footer.
     Structure is deliberate: one plain-language lead people actually read, then the three
     supporting positions split out so each is scannable rather than buried in a paragraph.
     Fonts are declared but not loaded: pages carrying the connector already have them, and the
     fallbacks are deliberate so this block never adds a render-blocking request. */
  .mcv-tmn{ font-family:'Plus Jakarta Sans',Arial,sans-serif; color:#191419; margin:0; padding:0; }
  .mcv-tmn *{ box-sizing:border-box; }
  .mcv-tmn-band{ background:#ffffff; padding:8px 0 76px; }
  .mcv-tmn-wrap{ max-width:1180px; margin:0 auto; padding:0 24px; }
  .mcv-tmn-box{ background:#faf8f8; border:1px solid rgba(11,11,16,0.13); border-left:4px solid #a70d2a; border-radius:12px; padding:34px 38px; box-shadow:0 1px 2px rgba(25,20,25,0.04), 0 10px 30px rgba(25,20,25,0.05); }
  .mcv-tmn-head{ display:flex; align-items:center; gap:11px; margin:0 0 18px; }
  .mcv-tmn-dot{ width:8px; height:8px; background:#a70d2a; transform:rotate(45deg); flex:0 0 auto; }
  .mcv-tmn .mcv-tmn-head span.mcv-tmn-kicker{ font-family:'JetBrains Mono',ui-monospace,monospace; font-size:13px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:#a70d2a; }
  .mcv-tmn .mcv-tmn-box p.mcv-tmn-lead{ margin:0 0 24px; font-size:20px; line-height:1.5; font-weight:600; color:#191419; max-width:56ch; letter-spacing:-.01em; }
  .mcv-tmn .mcv-tmn-box b.mcv-tmn-brand{ color:#a70d2a; font-weight:700; }
  .mcv-tmn-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px 36px; padding-top:24px; border-top:1px solid rgba(11,11,16,0.11); }
  .mcv-tmn .mcv-tmn-col span.mcv-tmn-lbl{ display:block; font-family:'JetBrains Mono',ui-monospace,monospace; font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8a8085; margin:0 0 8px; }
  .mcv-tmn .mcv-tmn-col p{ margin:0; font-size:14px; line-height:1.7; color:#453d42; }
  .mcv-tmn-foot{ margin-top:26px; padding-top:18px; border-top:1px solid rgba(11,11,16,0.11); }
  .mcv-tmn .mcv-tmn-foot a{ font-family:'JetBrains Mono',ui-monospace,monospace; font-size:12px; font-weight:600; letter-spacing:.04em; color:#a70d2a; text-decoration:none; border-bottom:1px solid rgba(167,13,42,0.32); }
  .mcv-tmn .mcv-tmn-foot a:hover{ border-bottom-color:#a70d2a; }
  @media (max-width:900px){
    .mcv-tmn-cols{ grid-template-columns:1fr; gap:22px; }
    .mcv-tmn .mcv-tmn-box p.mcv-tmn-lead{ font-size:18px; }
  }
  @media (max-width:600px){
    .mcv-tmn-band{ padding:4px 0 48px; }
    .mcv-tmn-box{ padding:26px 22px; border-radius:10px; border-left-width:3px; }
    .mcv-tmn .mcv-tmn-box p.mcv-tmn-lead{ font-size:17px; line-height:1.45; margin-bottom:20px; }
    .mcv-tmn .mcv-tmn-head span.mcv-tmn-kicker{ font-size:12px; letter-spacing:.16em; }
  }

  
    
      
        Disclaimer
        
Miracuves is an independent software development company. We are not affiliated with, connected to, sponsored by, or endorsed by **WhatsApp**.

        
          
            Why this name
            
“**WhatsApp** Clone” is used descriptively. It is how the software industry refers to building a platform with functionality similar to WhatsApp, and how clients search for it.

          
          
            Who built this
            
The entire design and codebase is built by our own team. The product contains no code, design, graphics, or content originating from the WhatsApp website or applications.

          
          
            Trademarks
            
**WhatsApp** and all other third-party names and marks are the property of their respective owners, referenced here solely to describe the category of software offered.

          
        
        [Read our full Legal Notice & Disclaimer →](/disclaimer/)
