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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
    
      
        
          
            [Home](/)/[Goldbelly Clone](/goldbelly-clone/)/Features
          
          Goldbelly Clone · Features
          
# Goldbelly Clone Features: A Vendor Spine, and Local Fulfilment

          
A marketplace of independent makers lives or dies on two things: whether a vendor can run their own storefront without calling you, and whether they are paid correctly on a schedule. Both are built here. One thing is not, and it is stated before anything else: fulfilment is local delivery by riders you or your vendors run. Carrier shipping is not in this build.

          [Request a Live Demo →](https://miracuves.com/schedule-consultation/)[Full Overview](/goldbelly-clone/)
          
            **Per vendor** terms and payouts
            **Local** delivery, not carrier
            **6 days** to deploy
          
        
        
          A maker's weekSigned, selling, settled
          
            What the Vendor Spine Holds
            
              01An application and its checks
              02Approval, with who and when
              03Their own terms, per vendor
              04A storefront in their name
              05Their catalogue, their prices
              06A payout they can check
            
          
        
      
    
  

  
    
      
        12Verticals Served
        136Data Models
        378Migrations
        13Payment Gateways
      
    
  

  
    
      
        By Role
        
## Feature Set by Role

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

      
      
        
          01
          
### The Maker

          
A small producer running their own shop: their catalogue with variations, add-ons and allergen notes, their own photographs, their own hours and holidays, items marked sold out in one tap, and a payout statement they can read themselves. 503 files across 29 modules, because a maker with two staff cannot phone you every time a batch runs out.

        
        
          02
          
### The Buyer

          
They browse vendors, categories and products with filters and a home feed you curate, open a maker's storefront, build a basket and check out. Thirteen gateways plus wallet credit, cash and offline methods, with split tender reconciled against the order rather than blended into one figure.

        
        
          03
          
### The Gift Sender

          
Buying for somebody else, with recipient details and the delivery slot carried on the order record itself rather than bolted alongside it in a notes field. That is what makes a gift a first-class order the platform can schedule, track and report on rather than a special case somebody handles manually.

        
        
          04
          
### The Vendor Manager

          
Applications, document checks, approval and go-live as a recorded workflow with the operator and timestamp attached. Commission set per maker, or a monthly plan instead, so the terms a vendor was signed on are a query rather than an email somebody has to find a year later.

        
        
          05
          
### The Merchandiser

          
The category structure buyers browse, the home feed, and featured positions sold to vendors competing for attention, scheduled and reported so placement revenue is measurable rather than anecdotal. On a marketplace of makers, what appears first is a commercial decision.

        
        
          06
          
### The Finance Desk

          
One scheduled disbursement job settling every approved vendor from what was actually charged, with statements, exports and overlap locks. Vendors forgive most things and never forgive being paid wrong, which is why this is the job the whole platform is arranged around.

        
      
      
Vendors cannot read each other: catalogue, order and payout data resolve against the vendor that owns them, so a maker signed into their own panel sees their own business and nothing else.

    
  

  
    
      
        Compare
        
## Clone vs Generic Script vs a Shop-per-Vendor Plugin

        
Most routes to a multi-vendor marketplace hold up until the first payout run.

      
      
        
| What decides it | Miracuves Goldbelly Clone | A multi-vendor storefront plugin |
| --- | --- | --- |
| Signing a vendor | A recorded workflow with checks and approval | An account somebody created manually |
| Terms per maker | Commission or a plan, set per vendor | One global rate for everybody |
| Paying vendors | One scheduled run, with overlap locks | A spreadsheet and a bank transfer |
| What a vendor can check | Their own statement, whenever they like | Whatever you email them |
| Changing a vendor's rate | Old settlements unaffected, frozen at the time | Last quarter recalculates itself |
| Gifting | Recipient and slot on the order record | A note in a comments field |
| The vendor's own tools | 503 files across 29 modules, in source | A cut-down view of your admin |
| Source code | Yours outright, no per-order royalty | Plugin licences, renewed annually |

      
      
Goldbelly itself is the reference for what a speciality food marketplace looks like; it is not a product you can buy or self-host, and its nationwide shipping model is specifically what this build does not do. The comparison worth making is the second column against the third, and against a custom build, which is on the [Development Cost](/goldbelly-clone/development-cost/) page.

    
  

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

        
Seven stages, running from a maker applying to a maker being paid.

      
      
        Step 1
### A maker applies and is approved

Application, document checks, approval and go-live run as a recorded workflow with the operator and timestamp attached, so who approved a vendor and on what terms is a query rather than a memory. It is the first thing an acquirer or a dispute asks about.

        Step 2
### Their terms are set individually

Commission per vendor, or a monthly plan instead of it, rather than one rate across the roster. On a marketplace of independents the ability to sign a sought-after maker on different terms from everybody else is frequently what gets them signed at all.

        Step 3
### They build their own storefront

A surface carrying their own name and catalogue, with sizes, options, extras and allergen notes modelled as variations rather than separate products. You keep visibility over category structure, availability and pricing changes without having to make them.

        Step 4
### A buyer browses and orders

By vendor, category or product, with filters and a home feed you curate, showing only the makers who can actually fulfil to that address. Thirteen gateways plus wallet credit, cash and offline methods, with split tender reconciled against the order.

        Step 5
### Gifting and scheduling share one spine

Ordering for somebody else, choosing a slot for later, or setting a standing weekly order all run on the same order system, with recipient details and the chosen slot carried on the order record rather than as three separate mechanisms nobody can report across.

        Step 6
### It is fulfilled locally

Riders you run, vendors delivering with their own staff, or collection in person. Coverage is drawn as delivery zones with their own charges and rules, and a buyer outside a maker's zone cannot order from them. This is the boundary of the build and it is stated plainly.

        Step 7
### Every vendor settles from one run

A single scheduled disbursement pays every approved maker from what was actually charged, with statements, exports and overlap locks so a retry settles the same cycle to the same figures. Change a vendor's rate next month and their last statement still says what it said.

      
      
Offers, first-order discounts, free delivery thresholds and loyalty points run alongside, with each campaign funded by you or by an individual vendor and the split recorded either way.

    
  

  
    
      
        Justified
        
## Every Feature Earns Its Place

        
Each row is here because a multi-vendor marketplace stops working without it, not because a competitor lists it.

      
      
        
| Module | Why it is in the base build |
| --- | --- |
| The vendor as a first-class record | Terms, permissions, catalogue ownership and payout history hang off the vendor rather than being inferred from an order. Everything else about running a marketplace of independents follows from that record existing properly. |
| Per-vendor terms | One rate across a roster means the maker you most want cannot be signed on the terms it takes to get them. Setting commission or a plan per vendor is what turns a rate card into a negotiation you can actually win. |
| Idempotent payout runs | The disbursement job touches every vendor at once, and a repeat is far worse than a delay. Computing from snapshots with overlap locks means a retried run settles the same cycle to the same figures rather than paying your entire roster twice. |
| A statement a vendor can read | Makers forgive most things and never forgive being paid wrong. Letting them check their own numbers instead of asking you converts your most common support conversation into a page they open themselves. |
| Gifting on the order record | Recipient details and a chosen slot held on the order rather than in a note is what lets gifting be scheduled, tracked, reported and refunded like any other order. In a comments field it is a manual process pretending to be a feature. |
| Vendor isolation | Catalogue, order and payout data resolving against the owning vendor is not a nicety on a marketplace of competitors. A maker who can see another maker's numbers is a platform nobody will join twice. |
| Charges frozen at settlement | Commission is written onto the transaction and disbursement reads that snapshot, so neither a settings change nor a retried run alters what a vendor was owed. It is the property that makes a statement worth trusting. |
| Storage selectable at runtime | A marketplace of makers is mostly photographs, and they accumulate without shrinking. Local disk or S3-compatible storage with a primary and a fallback is what stops media growth becoming a migration. |

      
      
A built-in till captures counter and phone orders in the same system, so a maker with a physical shop reports through one platform rather than reconciling two.

    
  

  
    
      
        Stack
        
## The Technology Behind the Features

        
Conventional and easy to hire for, with the vendor and payout spine as the part that was designed rather than assembled.

      
      
        **The vendor and payout spine**Onboarding as a recorded workflow, per-vendor commission or subscription with a guard against disabling both, catalogue ownership resolved against the vendor, and one scheduled disbursement computing from snapshots with overlap locks. This is the machinery a multi-vendor marketplace is, and it transfers with everything else.
        **Application core**Laravel 12 on PHP 8.2 and above with MySQL and Passport: roughly 300 tables under 378 migrations in strict date order and 136 Eloquent models across eleven domains, with 62 admin, 55 API and 29 vendor-web controllers, and gifting and scheduling carried on the order record itself.
        **The vendor application**503 Dart files across 29 feature modules on Flutter and GetX, in source with its own release path, covering catalogue, orders, hours, the till, staff and payouts. It exists so a small producer can run their own shop rather than filing requests with your support desk.
        **Storefront and consoles**Thirty-three server-rendered routes on Next.js 15 and React 18 with MUI and Redux Toolkit, a 764 route operator console behind role and module gates, and a 258 route vendor panel under plan entitlements, each surface behind its own middleware so buyer, vendor and delivery tokens never cross.
        **Money and tax**Thirteen gateways plus wallet credit, cash and operator-defined offline methods, split tender reconciled against the order, commission frozen at settlement, per-order tax computation with exports, and sales, commission, plan, payout and tax reports that each show what was charged at the time.
        **Media and configuration**Local disk or S3-compatible object storage selectable at runtime with a primary and a fallback, because the catalogue is mostly photographs, plus roughly 120 named settings keys read at request time so behaviour changes are operator data rather than deployments.
      
      
One Laravel monolith owns every business rule and the five surfaces sit over one versioned API, so a vendor approved in the console is live in the storefront, both apps and their own panel within the same request.

    
  

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

        
The first two items decide whether this platform is right for you at all, so they are stated before anything else rather than in an appendix.

      
      
        
          01
          
### Fulfilment is local, not carrier

          
Coverage is drawn as delivery zones and orders are carried by riders you or your vendors run, or collected in person. Connecting a parcel carrier so makers can post orders nationwide, with rate lookup, labels and tracking, is not built. If nationwide shipping is your proposition, that is a scoped integration rather than a configuration.

        
        
          02
          
### No cold chain handling

          
Packaging rules, temperature constraints, ship-by windows and the day-of-week logic that perishable goods need are not in the build. For a speciality food marketplace this is a real limitation rather than a technicality, and it belongs in the first conversation if your catalogue is chilled or frozen.

        
        
          03
          
### 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 staff, on a console that can change what a vendor is paid.

        
        
          04
          
### Vendor accounting is an integration

          
Per-vendor statements and exports ship. Pushing them into an accounting system, or generating vendor-side invoices in a particular jurisdiction's format, is scoped separately, and it is asked for early on marketplaces where makers are registered businesses rather than sole traders.

        
        
          05
          
### Three things are scoped separately

          
Signing and releasing the iOS builds, bringing console access under your identity provider with a second factor, and pushing vendor, order and payout rows into an analytics stack your team already runs. Each is quoted before it starts rather than assumed into the price.

        
        
          06
          
### What is built is real

          
Vendor onboarding as a recorded workflow, per-vendor terms with a guard, catalogue ownership resolved per vendor, a 503 file vendor application in source, gifting and scheduling on the order record, idempotent payouts with statements, the built-in till, and a control map published against OWASP categories.

        
      
      
What no codebase supplies is the roster. A curated list of makers who cannot easily be signed elsewhere is worth more than any feature here, and assembling it is your work rather than software's.

    
  

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

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

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

  
    
      
        FAQ
        
## Frequently Asked Questions

      
      
        
          
            Can makers ship orders nationwide?
            Not in this build, and it is the most important thing on the page. Fulfilment is local: coverage is drawn as delivery zones, and orders are carried by riders you run, by the vendor's own staff, or collected in person. Connecting a parcel carrier so a maker can post an order across the country, with rate lookup, label generation and tracking, is a scoped integration rather than a setting. If nationwide shipping is central to your proposition, tell us on the first call, because it changes what you should be buying.
          
          
            How are vendors onboarded and approved?
            As a recorded workflow rather than an account somebody creates by hand. An application arrives, documents are checked, a decision is made and the vendor goes live, with the operator and the timestamp attached at each step, and their commercial terms set at approval. That record is what a dispute, a renewal conversation or an acquirer's due diligence all read from a year later, and it is the difference between a roster and a list of logins.
          
          
            Can different vendors be on different terms?
            Yes, and on a marketplace of independents it is often what gets a maker signed at all. Commission is set per vendor rather than platform-wide, and a monthly subscription plan can replace it for the makers who prefer predictability. Both live in the same billing spine, with a guard that refuses to disable commission and subscription at once so a vendor's economics can never become undefined. Whatever a vendor is charged is frozen onto each transaction at settlement.
          
        
        
          
            How does gifting work?
            As a first-class order rather than a special case. Recipient details and the chosen delivery slot are carried on the order record itself rather than in a notes field, which is what lets a gift be scheduled, tracked, reported on and refunded like any other order. The same spine carries scheduled orders and standing weekly repeats, so all three behave consistently instead of being three mechanisms nobody can report across.
          
          
            What stops a payout run paying twice?
            Overlap locks, and idempotent design behind them. The disbursement job is the critical one on a marketplace of makers because it touches every vendor at once, and a repeat is far worse than a delay. It computes from the snapshots frozen at settlement rather than recalculating from current rates, and carries locks so a retried run settles the same cycle to the same figures. Vendors forgive a late payout and do not forgive a wrong one.
          
          
            Does it work for things other than food?
            Yes, and the same catalogue and payout model carries them. Flowers, drinks, pet supplies, catering and general speciality retail all reuse variations, add-on groups, attributes, tags and stock counters, and the vendor spine does not care what a maker sells. Widening the market is a settings and taxonomy pass rather than a second platform, which is the same property that makes adding a category cheap.
          
        
      
    
  

  
    
    
      
        
## Onboard a vendor, then pay them

On the demo, approve a maker, set their terms, take an order against their catalogue, then run the disbursement and read the statement they see.

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

  
    
      
        Explore
        
## Explore the Goldbelly Clone

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

  
    
    
      
        
## The roster is the asset. The payout run is the retention.

        
A curated list of makers who cannot easily be signed elsewhere is worth more than any feature, and a maker paid correctly on schedule does not shop around. Both 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 · Goldbelly 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 **Goldbelly**.

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

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