---
title: ChowNow Clone Features
description: 
url: https://miracuves.com/chownow-clone/features
date_modified: 2026-09-10
author: miracuves
language: en_US
---

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
    
      
        
          
            [Home](/)/[ChowNow Clone](/chownow-clone/)/Features
          
          ChowNow Clone · Features
          
# ChowNow Clone Features: The Restaurant Keeps the Customer

          
A commission-free platform sells a restaurant two things: a cost it can forecast, and a customer record that stays where the orders were placed. Both are structural rather than marketing. The plan is an object you build and price, billing runs on a schedule with locks so it cannot double-charge, and the restaurant panel is a real application at 503 files across 29 modules rather than a read-only view of your console.

          [Request a Live Demo →](https://miracuves.com/schedule-consultation/)[Full Overview](/chownow-clone/)
          
            **2** ways to charge, or both
            **503** files in the store app
            **6 days** to deploy
          
        
        
          A planAn object, not a hack
          
            What a Restaurant Actually Gets
            
              01An ordering site in its name
              02Its own menu, its own hours
              03A till for counter and phone
              04Its diners, in your database
              05A statement it can read
              06A bill that does not move
            
          
        
      
    
  

  
    
      
        2Ways to Charge, or Both
        503Store App Source Files
        29Store Feature Modules
        1Account, Many Outlets
      
    
  

  
    
      
        By Role
        
## Feature Set by Role

        
Five surfaces over one Laravel backend, arranged around the restaurant rather than around the marketplace.

      
      
        
          01
          
### The Restaurant Owner

          
The side that decides whether they renew. A real application at 503 files across 29 modules: menus with variations and add-ons, photos, hours and holidays, items marked sold out in one tap, staff logins beneath the owner, expenses, and a statement showing exactly what was charged and when.

        
        
          02
          
### The Diner

          
They land on an ordering surface carrying the restaurant's own name and look rather than yours, build a cart with sizes, extras and allergen notes, order for now or a slot later, and set a standing weekly order if they want one. Points, rewards and wallet balance follow them across every restaurant on the platform.

        
        
          03
          
### The Counter

          
A built-in till inside the restaurant panel for walk-in and phone orders, so nothing the restaurant sells happens outside your books or theirs. For a commission-free operator this matters twice over, because a plan priced against total volume needs to see total volume.

        
        
          04
          
### The Multi-Outlet Brand

          
One account with per-outlet menus, hours and reporting under a single brand. This is the first thing a franchise group asks for and the thing most platforms retrofit badly, because it has to sit in the data model rather than in the interface.

        
        
          05
          
### The Billing Desk

          
Build packages, set prices and billing cycles, decide what each unlocks, and let recurring billing run on cron-expression gates reading live settings, with overlap locks so a slow cycle never charges twice. Plan revenue appears in the reports beside commission and payouts.

        
        
          06
          
### The Onboarding Team

          
Applications, document checks, approval and plan assignment as a recorded workflow, so who approved a restaurant and on which package is a query rather than a memory. On subscription economics this record is what a renewal conversation is built on a year later.

        
      
      
Console and panel roles are scoped so a support user can help a restaurant without reaching billing, and a restaurant can reach its own outlets and nothing else.

    
  

  
    
      
        Compare
        
## Clone vs Generic Script vs an Aggregator Listing

        
Most routes to commission-free ordering hold up until the first renewal.

      
      
        
| What decides it | Miracuves ChowNow Clone | Listing on an aggregator |
| --- | --- | --- |
| What a restaurant pays | A monthly fee it can forecast | A percentage that rises with success |
| Who holds the diner record | The platform the restaurant is on | The aggregator, permanently |
| Whose name is on the ordering site | The restaurant's own | The aggregator's, with a logo |
| Walk-in and phone orders | A built-in till, in the same books | Outside the platform entirely |
| A brand with six outlets | One account, per-outlet reporting | Six listings and six sets of numbers |
| Changing the charging model | A stored setting, both can run | Not a conversation you are invited to |
| What last month's bill says next year | Exactly what it said, frozen at settlement | Whatever today's rate card recalculates |
| Source code | Yours outright, no per-order royalty | None, and no export worth having |

      
      
ChowNow itself is the reference for what commission-free ordering looks like; it is not a product you can buy or self-host. The useful comparison is the second column against the third, and against a custom build, which is covered on the [Development Cost](/chownow-clone/development-cost/) page.

    
  

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

        
Seven stages, running from signing a restaurant to billing it again next month.

      
      
        Step 1
### A restaurant is signed and approved

Application, document checks, approval and plan assignment run as a recorded workflow with the operator and timestamp attached, so the terms a restaurant was signed on are a query rather than an email somebody has to find a year later.

        Step 2
### It gets a surface in its own name

Each restaurant gets an ordering site carrying its own name and look, so the diner experience reads as the restaurant rather than as your marketplace. Alongside it sits an indexable ordering website of 33 routed pages with policies, registration funnels and tracking.

        Step 3
### The restaurant builds its own menu

Sizes, crusts, toppings, extras and allergen notes modelled as variations rather than separate products, with availability, daily stock counters and one-tap sold-out. You keep visibility over category structure and pricing changes without having to make them.

        Step 4
### Diners order, from anywhere

Now, at a slot later, or on a standing weekly repeat, paying through thirteen gateways plus wallet, cash and operator-defined offline methods. Points, rewards and coupons sit underneath, with a discount funded by you or by the restaurant and the split recorded either way.

        Step 5
### Counter trade lands in the same place

Walk-in and phone orders go through the built-in till into the same pipeline, and dine-in runs the same order with the delivery steps skipped. Delivery itself is a choice per restaurant: your riders, their own staff, or collection only.

        Step 6
### The restaurant is billed and paid

Recurring billing runs on cron-expression gates reading live settings with overlap locks so a slow cycle never charges twice, and scheduled disbursement settles what the restaurant is owed from what was actually charged, with a statement it can read itself.

        Step 7
### Next month says the same thing

Plan price, commission percentage where used, and discount split are all frozen onto the transaction at settlement. Raise a plan price next month and last month's statement still says what it said, which is the whole reason a restaurant trusts a bill it did not calculate.

      
      
Billing runs, disbursement, notification fan-out and export pipelines all run off the request path with a scheduler behind them, so a billing cycle never competes with a dinner rush.

    
  

  
    
      
        Justified
        
## Every Feature Earns Its Place

        
Each row is here because subscription economics stop working without it, not because a competitor lists it.

      
      
        
| Module | Why it is in the base build |
| --- | --- |
| Plans as objects you build | A subscription business whose packages are hardcoded can only sell what somebody chose at build time. Naming, pricing and deciding what each plan unlocks is the product design of this model, so it has to be operator work. |
| Billing with overlap locks | Recurring billing that runs twice charges every restaurant twice, and on plan economics that is the fastest way to lose a cohort. Cron-expression gates reading live settings, with locks, is what makes the cycle safe to automate. |
| A real restaurant panel | On subscription economics the second year of a restaurant is worth more than the first, so retention is the metric. The panel is what they use every day, and 503 files across 29 modules is the difference between a tool and a portal. |
| The built-in till | A commission-free operator still needs to see total volume, because that is what justifies a plan price at renewal. Counter and phone orders outside the platform make both the restaurant's numbers and yours wrong. |
| Multi-outlet as a data shape | A brand with six outlets under one account with per-outlet menus, hours and reporting is what franchise groups ask for first. Retrofitted into the interface it produces six accounts and a spreadsheet. |
| Commission kept available | A restaurant with no volume cannot justify a fixed fee, and refusing them means refusing the newest half of your market. Both models in one billing spine widens the funnel without forking the product. |
| Discount funding recorded | A promotion paid for by you and one paid for by the restaurant produce different statements. Recording the split at settlement is what stops the payout conversation becoming an argument nobody can settle. |
| Delivery as a choice | Some restaurants want your riders, some deliver with their own staff, and some only do collection. Making fulfilment a per-restaurant setting is what lets one platform serve all three rather than only the first. |

      
      
Rewards, points and wallet balances sit at the diner level rather than the restaurant level, which is the machinery that makes a second order from the same person likely.

    
  

  
    
      
        Stack
        
## The Technology Behind the Features

        
Built so that both economics live in one billing spine rather than as two subsystems bolted together.

      
      
        **The restaurant application**503 Dart files across 29 feature modules on Flutter and GetX, in source and with its own release path, covering orders, menu management with photos and stock, the till, staff logins, expenses and payout history. It is the surface a partner judges the platform on daily, so it is a real application rather than a wrapped view.
        **Plans and billing**Subscription packages as objects with names, prices, billing cycles and entitlements, gating 258 store panel routes, with recurring billing running on cron-expression gates that read live settings and carry overlap locks so a slow cycle cannot double-charge. Plan price is frozen onto the transaction at settlement.
        **Application core**Laravel 12 on PHP 8.2 and above with MySQL and Passport: roughly 300 tables under 378 migrations in strict date order, 136 Eloquent models across eleven domains, and 62 admin, 55 API and 29 vendor-web controllers, with commission and subscription sharing one billing model rather than two.
        **The ordering website**Thirty-three server-rendered routes on Next.js 15 and React 18 with MUI and Redux Toolkit, including policies, registration funnels and tracking, so a restaurant on your platform can be found through search rather than only through a link it sends out itself.
        **The other applications**The diner app at 727 Dart files across 36 modules and the delivery partner app at 234 across 17, each with its own permissions and release path, plus a 764 route operator console behind role and module gates, all reading one versioned API.
        **Money and queues**Thirteen gateways plus wallet, cash and offline rails, scheduled disbursement computed from what was actually charged with overlap locks and statements, per-order tax computation with exports, and billing, payouts, notifications and exports all running off the request path.
      
      
One Laravel monolith owns every business rule and roughly 120 named settings keys are read at request time, so moving a restaurant between charging models is operator data rather than a deployment.

    
  

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

        
A fixed price only means something if the boundary around it is stated, and on subscription economics the first item is the one to read carefully.

      
      
        
          01
          
### Billing is recurring, not sophisticated

          
Plans, cycles, entitlements and scheduled charging all ship, with locks that stop a slow cycle charging twice. Proration when somebody changes plan mid-cycle, trial periods, dunning and retry ladders on failed charges are not built, and on a plan-led business those are worth scoping early rather than late.

        
        
          02
          
### No POS hardware integration

          
The built-in till captures counter and phone orders in software. Receipt printers, cash drawers and terminal integrations beyond it vary enough by market and by hardware that they are scoped separately rather than promised generically.

        
        
          03
          
### Riders are yours, or an integration

          
Delivery is a choice per restaurant: your fleet, their own staff, or collection only. Connecting a third-party courier company for operators who run no fleet at all is scoped separately and depends on the API that company publishes.

        
        
          04
          
### The platform ships in test mode

          
One-time passcodes are exposed for testing, cross-origin rules are permissive and transport and frame headers are not emitted, all named in the documentation rather than found later. No second factor sits in front of console or panel sign-in, on a console that can change what a restaurant is billed.

        
        
          05
          
### Three things are scoped separately

          
Signing and releasing the iOS builds, bringing staff sign-in under your identity provider with a second factor, and shaping the reports and exports into a feed for a warehouse your own analysts run. Each is quoted before it starts.

        
        
          06
          
### What is built is real

          
Plans as priced objects gating 258 panel routes, recurring billing with overlap locks, a 503 file restaurant application in source, the built-in till, multi-outlet under one account, per-restaurant fulfilment, discount funding recorded at settlement, and a control map published against OWASP categories rather than asserted.

        
      
      
What no codebase supplies is restaurants. On plan economics that gap is felt differently than on commission: you need a partner to believe a fixed monthly cost is worth paying before they have seen a single order, which is a sales problem rather than a software one.

    
  

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

          
The deployment process, the nine questions worth asking anyone bidding on a billing-led build, the red flags, and the Flyereats engagement we delivered in 2025 - on the Development Company page.

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

  
    
      
        FAQ
        
## Frequently Asked Questions

      
      
        
          
            What does commission-free actually mean here?
            That a restaurant can be charged a flat monthly fee instead of a percentage of what it sells, and that this is a first-class model rather than a discount you apply to a commission platform. Subscription packages are objects you build: you name them, price them, decide what each unlocks, and recurring billing runs on a schedule. Commission stays available for the restaurants that prefer it, usually the new ones with no volume yet, and both models run in the same billing spine rather than as two bolted-together subsystems.
          
          
            Why does a restaurant care about a flat fee?
            Because it is the same in a busy month as a quiet one, which means it can be forecast. A percentage rises exactly when a restaurant is doing well, and that is the part owners resent rather than the absolute amount. Predictability is the product you are actually selling on this model, and it is why a restaurant will move to a plan and stay on it. The second half of the argument is the customer record: orders, addresses and repeat behaviour live in the platform they are on rather than in an aggregator's database.
          
          
            Can one brand run several outlets?
            Yes, under one account with per-outlet menus, hours and reporting. This is the first thing a franchise group asks about and it has to live in the data model rather than the interface, because retrofitting it produces six separate accounts and a spreadsheet to add them up. Here the brand is the account, the outlets sit beneath it, and reporting can be read either per outlet or across the group.
          
        
        
          
            What stops the billing run charging twice?
            Overlap locks, and it is worth understanding why they matter more here than almost anywhere else. Recurring billing runs on cron-expression gates that read live settings, so a change to a cycle takes effect without a deployment. If a run is slow and the next one starts, the lock refuses it rather than letting both proceed. On plan economics a duplicate charge across your restaurant base is not an inconvenience, it is the fastest way to lose a cohort you spent months signing.
          
          
            Does the restaurant have to use my delivery riders?
            No, and making that a per-restaurant choice is deliberate. Some restaurants want your fleet, some prefer to deliver with their own staff, and some only do collection. All three run through the same order pipeline with the rider steps present or skipped, which means one platform can serve a mixed roster rather than only the restaurants that fit one fulfilment model. Where you do carry, the delivery fee margin is yours and set per zone.
          
          
            What happens to old bills when I raise a plan price?
            They stay exactly as they were. Plan price, commission percentage where used, and the discount split are all frozen onto the transaction at settlement, and disbursement reads those snapshots rather than recomputing from today's rates. So raising a package price next month leaves every previous month's statement saying what it said, which is what makes a bill a restaurant did not calculate itself something they are willing to trust.
          
        
      
    
  

  
    
    
      
        
## Build a plan, then bill against it

On the demo, create a package, price it, decide what it unlocks, assign a restaurant to it, and then read the statement the restaurant sees at the end of the cycle.

        [Request a Live Demo](https://miracuves.com/schedule-consultation/)[Full Overview](/chownow-clone/)
      
    
  

  
    
      
        Explore
        
## Explore the ChowNow Clone

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

  
    
    
      
        
## Predictable for them. Predictable for you.

        
A restaurant paying a flat fee can forecast its software cost, and an operator billing flat fees can forecast next month's revenue. Both halves of that run on a platform you own outright.

        [Talk to Us →](https://miracuves.com/schedule-consultation/)
      
      
        
          **Written by the Miracuves Product Team**·
          Reviewed for accuracy·
          Last updated **September 10, 2026**
        
        
          Miracuves · ChowNow Clone Solution
          Feature set, stack 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 **ChowNow**.

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

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