---
title: ChillChat Clone Features
description: 
url: https://miracuves.com/chillchat-clone/features
date_modified: 2026-09-01
author: miracuves
language: en_US
---

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
    
      
        
          
            [Home](/)/[ChillChat Clone](/chillchat-clone/)/Features
          
          ChillChat Clone · Features
          
# ChillChat Clone Features: The Room Comes First

          
Most social apps add audio to a feed. This one starts from the room: drop-in voice with host, speaker and listener roles, hand-raise promotion and live presence, and then builds streaming, gifting, missions and games around it. Eighteen feature areas ship on twenty-eight entities, and the room is the surface that makes every other engine worth building. Here is what ships, grouped by who touches it.

          [Request a Live Demo →](https://miracuves.com/schedule-consultation/)[See Pricing](/chillchat-clone/development-cost/)
          
            **18** feature areas
            **3** surfaces, one API
            **6 days** to deploy
          
        
        
          Game stateServer-side
          
            What One Room Session Touches
            
              01Listener joins, presence broadcasts
              02Hand raised, promoted to speaker
              03Gift sent, coins leave the wallet
              04Diamonds land on the creator
              05XP awarded, mission progresses
              06Leaderboard and streak update
            
          
        
      
    
  

  
    
      
        28Entities Behind 18 Feature Areas
        190API Route Patterns
        47XP Level Thresholds
        71WebSocket Events, In and Out
      
    
  

  
    
      
        By Role
        
## Feature Set by Role

        
Three surfaces run from one platform: a 42-route web app, a 46-screen Flutter build and an 18-section operator console, all against the same API.

      
      
        
          01
          
### The Listener

          
Drops into live or scheduled rooms with a free-form topic, sees presence and mute state move in real time for everyone in the room, raises a hand to be promoted to speaker, and reads persisted chat. Private rooms enforce their password on the server rather than by hiding the entry field, and capacity is configurable per room.

        
        
          02
          
### The Host

          
Creates live or scheduled rooms, manages the three-tier role system across host, speaker and listener, promotes from the hand-raise queue and mutes per participant. The role model is what keeps a room usable as it grows, because an audio room with no moderation of the microphone is unlistenable at scale.

        
        
          03
          
### The Broadcaster

          
Goes live with server-side Agora RTC token generation, sees real-time viewer counts broadcast to all clients, and challenges another broadcaster to a PK battle with challenge, accept and live viewer voting. Active stream and active battle discovery feeds surface what is happening right now.

        
        
          04
          
### The Creator

          
Receives gifts across ten tiers, from a one-coin heart to a five-thousand-coin castle. Coins are bought, diamonds are earned, and diamonds withdraw for real money at a configurable platform fee. That loop is the whole creator proposition, and it is why the gift tiers are modelled rather than being a single amount field.

        
        
          05
          
### The Regular

          
Earns XP across forty-seven level thresholds, completes daily and weekly missions, keeps a streak, collects badges with rarity tiers and appears on leaderboards by week, month and room. Posts to a social feed across four content types with For You and Following tabs, stories, likes, comments, saves and shares.

        
        
          06
          
### The Operator

          
Eighteen admin sections covering user and room management, the report and moderation queue, analytics with daily active users and retention cohorts, revenue with runtime platform-fee control, avatar and game catalogs, and broadcast notifications. Real-time text moderation runs against five AI providers underneath.

        
      
      
Direct and group messaging with read receipts, an AI companion, video calls, avatar cosmetics and in-room games ship alongside these as part of the same eighteen areas.

    
  

  
    
      
        Compare
        
## ChillChat vs Miracuves Clone vs Building From Scratch

        
What each route gives you on the parts that decide whether a social audio app holds a community together.

      
      
        
| What decides it | Miracuves ChillChat Clone | Building from scratch |
| --- | --- | --- |
| Time to a working app | Six working days | A multi-year programme with a senior team |
| Room roles | Host, speaker and listener with hand-raise promotion | Usually everyone-can-talk, which fails past a dozen people |
| Presence | Live over Socket.IO, 71 events in and out | Polling, until somebody rewrites it |
| Gifting | Ten tiers, coins to diamonds to withdrawal | A tip button with no earnings path behind it |
| Retention | 47 XP thresholds, missions, streaks, badges, leaderboards | A bolted-on loyalty tool that cannot see your events |
| Games | Sessions inside the room with server-side state | Client-side, which means a closed tab ends the game |
| Moderation | Real-time text moderation across five AI providers | Reactive, and usually after the incident |
| Source code | Full source across web, Flutter and admin, yours | Yours, at the cost of building all of it |

      
      
ChillChat itself is the reference for what this category looks like; it is not a product you can buy or self-host. The comparison that matters commercially is the second column against the third.

    
  

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

        
One member, traced from joining a room to withdrawing earnings, with every event and every balance change written down.

      
      
        01
### A room opens with a topic

Live and scheduled rooms carry a free-form topic, a capacity the host configures, and an optional password enforced on the server. Scheduled rooms sit in the same list as live ones, so a community can plan a session rather than only stumbling into whatever happens to be open.

        02
### Roles keep the room listenable

Host, speaker and listener are three distinct tiers rather than a permission flag. A listener raises a hand, the host promotes them, and per-participant mute is available throughout. Presence and mute state broadcast live over Socket.IO to everyone in the room, so the interface reflects the conversation rather than lagging behind it.

        03
### Streaming adds a competitive hook

Any member can broadcast with an Agora RTC token generated server-side, with real-time viewer counts pushed to all clients. PK battles put two broadcasters head to head for viewer votes through a challenge, accept and live voting flow. Competition is what turns passive viewing into participation.

        04
### Coins enter, diamonds come out

Coin packages are bought through Stripe on the web and RevenueCat-verified in-app purchase on mobile. A gift is sent from one of ten tiers, coins leave the sender's wallet, and diamonds land on the creator. Coins convert to diamonds at one hundred to one and reverse at a ten percent fee, so the conversion path carries its own margin.

        05
### The action earns progress, not just points

The same gift awards XP against forty-seven level thresholds, advances daily and weekly missions, extends a streak, can unlock a badge with its own rarity tier, and moves the member on leaderboards scoped by week, month and room. Retention is engineered into the same event rather than bolted on beside it.

        06
### Games fill the room, not a separate tab

Trivia, charades and party games run as sessions inside an audio room with participant readiness, scoring and state held server-side. Holding state on the server rather than in the client is what stops a closed tab from ending a game for everyone else in the room.

        07
### The operator sees the same activity

Eighteen admin sections cover users and rooms, the report and moderation queue, analytics with daily active users and retention cohorts, revenue with a platform fee adjustable at runtime, the avatar and game catalogs, and broadcast notifications, with real-time text moderation running against five AI providers underneath.

      
    
  

  
    
      
        Deliberate
        
## Every Feature Earns Its Place

        
Each module below exists because a social audio platform stops working without it, not because a competitor lists it.

      
      
        
| Module | Why it is in the base build |
| --- | --- |
| Three-tier room roles | An audio room where everyone can talk is unlistenable past a dozen people. The hand-raise queue is what lets a room grow without becoming noise. |
| Live presence over sockets | In audio, a stale participant list breaks the social contract. People need to know who is actually in the room and who is speaking. |
| Server-enforced private rooms | A password checked in the client is not a password. Private communities are a primary use case, so entry is enforced server-side. |
| Ten gift tiers | A single tip amount cannot express the difference between acknowledgement and celebration, and that spread is where gifting revenue actually comes from. |
| Diamonds that withdraw | Without a real earnings path, creators treat the platform as a hobby and leave for one that pays. |
| 47 XP thresholds | Progression has to stay meaningful for months, not weeks. Too few levels and everyone maxes out and stops caring. |
| Server-side game state | If the game lives in the client, one person closing a tab ends it for everyone. Sessions with readiness and scoring belong on the server. |
| Real-time text moderation | In a live social product, moderating after the fact means the harm already happened in front of the room. |
| Runtime platform-fee control | Creator economics need tuning as the community grows, and a fee that requires a deployment to change will stay wrong for months. |

      
      
The AI companion, video calls, avatar cosmetics across five categories and four rarity tiers, and event tracking across twelve event types ship alongside these.

    
  

  
    
      
        Stack
        
## The Technology Behind the Features

        
What the platform is actually built on, and what that means for the team who inherits it.

      
      
        **Backend**Twenty-four NestJS modules exposing roughly 190 API route patterns from 248 controller methods, with twenty-eight entities behind eighteen feature areas.
        **Real time**Socket.IO carrying thirty-five inbound and thirty-six outbound event types, which is what makes presence, mute state, hand-raise promotion and live voting reflect the room rather than trail it.
        **Streaming**Agora RTC with server-side token generation for both audio rooms and video broadcasting, so the publish path is authenticated rather than open to anyone who reads the client.
        **Web**A 42-route web application carrying voice rooms, live streams, the social feed with stories, direct and group messaging, the wallet, missions and badges, the avatar shop and the AI companion.
        **Mobile**A 46-screen Flutter application against the same API, with RevenueCat-verified in-app purchase for coin packages so the mobile purchase path is validated rather than trusted.
        **Authentication**Email and password registration with verification, JWT access tokens with refresh token rotation, refresh tokens persisted per session and revocable, and a four-role model across user, VIP, moderator and admin.
      
      
        
### Why the real-time layer is the number that matters

        
A room list and a gift button can be built in weeks. What takes years is everything that has to stay in sync: presence and mute state for every participant, a hand-raise queue that promotes without a refresh, live PK voting that both broadcasters and every viewer see identically, and game sessions whose state survives a client disconnecting. Seventy-one socket event types is not a boast, it is the consequence of making a room feel live rather than merely look live.

        
          **28**Entities
          **248**Controller methods
          **71**Socket event types
          **$3,399**One-time, fixed
        
      
      
The stack is NestJS and Flutter on standard infrastructure, which matters when you hire against it and when a technical buyer runs due diligence on what you own.

    
  

  
    
      
        Honest Readiness
        
## What Is Not Included in the Base Package

        
Named here rather than discovered after the invoice.

      
      
        
### What needs your account, and what is scoped work

        
**Agora capacity is yours to plan.** Token generation and the join flow are built. What scales with your audience is the RTC minute plan and the region configuration, and on a platform designed to keep rooms open that is the largest recurring cost rather than a setup step.

        
**AI moderation covers text, not media.** Real-time text moderation is built against five AI providers. Extending it to image and audio uploads at scale is the step once user-generated media volume justifies it, and it is scoped separately.

        
**Audit logging is visible, not immutable.** Operator actions appear in the console today. Shipping an append-only audit trail to immutable storage for a compliance review is scoped as pre-launch hardening rather than something already in place.

        
**Enterprise single sign-on is an integration.** The role model is enum-based so operator roles are configuration, but connecting an enterprise identity provider is an integration step for a regulated deployment.

        
**Payment rails are Stripe and RevenueCat.** Both are built. A market-specific rail plugs into the same payment abstraction, and analytics streaming into a warehouse for business intelligence is a later step once a growth team needs it.

      
      
Every external provider runs on credentials you hold. A security and VAPT document is available before purchase rather than during a procurement review.

    
  

  
    
      
        
          Development Company
          
### See how Miracuves compares to agencies and freelancers

          
The deployment process, a modelled reference deployment, and what to check on the real-time layer and the earnings path before you hire anyone - on the Development Company page.

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

  
    
      
        FAQ
        
## Frequently Asked Questions

      
      
        
          
            Why do room roles matter so much?
            Because an audio room where everyone can speak stops working somewhere around a dozen people. The three-tier model of host, speaker and listener with hand-raise promotion and per-participant mute is what lets a room grow past that without becoming noise. It is the difference between a group call and a venue, and it is the reason the room is the foundation rather than a feature.
          
          
            Can creators actually withdraw what they earn?
            Yes. Coins are bought, gifts convert them into diamonds on the creator side, and diamonds withdraw for real money with an admin-configurable platform fee taken before payout. Coins convert to diamonds at one hundred to one and reverse at a ten percent fee. Without a real earnings path creators treat a platform as a hobby, which is why this loop is modelled rather than approximated with a tip button.
          
          
            What makes the games different from a mini-game tab?
            They run as sessions inside an audio room, with participant readiness, scoring and state held server-side. That matters because in a client-side game one person closing a tab ends it for everyone else. Trivia, charades and party games are built to be played by the room that is already talking rather than being a separate destination.
          
        
        
          
            How is moderation handled in a live room?
            Real-time text moderation runs against five AI providers, with a report and moderation queue in the operator console behind it. Media moderation for image and audio uploads at scale is a scoped addition rather than part of the base build, and we name that rather than implying the coverage is total.
          
          
            Is the mobile app at parity with the web app?
            The Flutter build covers 46 screens against the same API, with RevenueCat-verified in-app purchase for coin packages. It is a real application rather than a stub, though the 42-route web app remains the fuller surface. If mobile is your primary channel, we will walk you through exactly which flows exist on each before you buy.
          
          
            Can I change the platform fee without a deployment?
            Yes, and that is deliberate. The platform fee on creator earnings is admin-configurable and adjustable at runtime. Creator economics need tuning as a community grows, and a fee that requires a release to change will stay wrong for months, which is long enough for creators to leave.
          
        
      
    
  

  
    
    
      
        
## See a hand raised and a gift land, live

Ask for the demo and we will join a room as a listener, raise a hand, get promoted to speaker, send a gift and follow the diamonds through to the operator console.

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

  
    
      
        Explore
        
## Explore the ChillChat Clone

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

  
    
    
      
        
## Ready to run a social audio platform you actually own?

        
Deploy in six working days with voice rooms, Agora streaming, the gift economy, missions and in-room games included, your platform fee and catalogs configured with you, and full source on infrastructure you own.

        [Talk to Us →](https://miracuves.com/schedule-consultation/)
      
      
        
          **Written by the Miracuves Product Team**·
          Reviewed for accuracy·
          Last updated **September 1, 2026**
        
        
          Miracuves · ChillChat Clone Solution
          Feature set, stack and readiness caveats cross-verified against the hub, 2026-09-01
        
      
    
  

				
				
				
				
						
					
			
						
				
					
  /* 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 **ChillChat**.

        
          
            Why this name
            
“**ChillChat** Clone” is used descriptively. It is how the software industry refers to building a platform with functionality similar to ChillChat, 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 ChillChat website or applications.

          
          
            Trademarks
            
**ChillChat** 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/)
