---
title: Astrotalk Clone Development Company
description: 
url: https://miracuves.com/astrotalk-clone/development-company
date_modified: 2026-09-07
author: miracuves
language: en_US
---

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          
On a metered marketplace the questions that matter are about money rather than features. How a minute is billed, how a commission resolves, what happens when the balance runs out mid-call, and whether anyone can reconstruct an operator action afterwards. Below is how we work, the pre-launch list we publish rather than bury, and the nine questions we would want answered if we were the ones buying.

          [Talk to Our Team →](https://miracuves.com/schedule-consultation/)[See Pricing](/astrotalk-clone/development-cost/)
          
            **Since 2010** building platforms
            **Full source** every time
            **6 days** to deploy
          
        
        
          The gap listPublished, not buried
          
            What Handover Actually Means
            
              01Laravel source in your repository
              02170 table schema and the ERD
              03Both Android builds and listings
              04VAPT posture, OWASP mapped
              05Eleven documentation files
              06The hardening list, in writing
            
          
        
      
    
  

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

  
    
      
        Compare
        
## Agency vs Freelancer vs Miracuves

        
Three routes to the same platform, and where each tends to fail once real money moves through it.

      
      
        
| What matters | Freelance team | Miracuves ready-made |
| --- | --- | --- |
| Time to live | Four to nine months, if the scope holds | Six working days |
| The wallet | A balance column, incremented | Dual-currency, append-only ledger, rate snapshot per row |
| Commission | One percentage, edited in code | Boost override, then per-astrologer rate, then default |
| Tax on payouts | Worked out in a spreadsheet each quarter | Withheld at settlement, PAN captured, CSV and PDF |
| Changing a price | A release, and a developer | One of 298 typed flags in 47 groups |
| Overnight demand | Nothing answers | Ten wallet-metered AI verticals |
| A second market | Reopen the payments layer | Twenty gateway configurations, currency per gateway |
| Stated limitations | Rarely offered at all | Published before purchase, the awkward ones included |
| Price behaviour | Hourly, and it moves | $2,499 fixed, quoted before work starts |

      
      
Good agencies exist and will build you a competent platform. What the table measures is elapsed months, price certainty, and whether the billing layer was designed in from the start or added after the first payout run went wrong.

    
  

  
    
      
        Due Diligence
        
## Questions Worth Asking Any Provider

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

      
      
        01
### When exactly is a minute billed?

Before the service or after it. Billing after means chasing payment for advice already delivered, and that single design decision decides whether you have a collections problem forever.

        02
### What happens when the balance runs out mid-call?

Ask them to demonstrate it. If the session simply ends, you lose the minute, the sale and usually the customer. Topping up inside the session is the difference between a lapse and a renewal.

        03
### How many levels does commission resolve through?

One global percentage cannot express a promotional boost or a star practitioner's negotiated rate. Ask what happens when you want to pay one astrologer differently for one week.

        04
### Is the exchange rate stored on the transaction?

If a multi-currency month is reconciled against today's rate, the numbers will not match what happened. Ask to see a rate snapshot on a ledger row rather than a currency code.

        05
### Where is withholding applied?

At settlement, or in a spreadsheet afterwards. Ask whether PAN is captured at the withdrawal request and whether the tax report exports without somebody assembling it.

        06
### Which payment gateways are actually verified server-side?

A list of supported gateways and a list of gateways with server-side verification are different lists. Ask for the second one specifically, and ask which are the template for the rest.

        07
### Can you reconstruct an operator action?

Ask who changed the commission rate last month and expect them to show you. Ours cannot answer that today, which is why it is the first item on our own list.

        08
### How much can you change without a developer?

Feature prices, commission defaults, section toggles and referral caps are the numbers your margin depends on. If any of them needs a release, your pricing will effectively never change.

        09
### What is on your pre-launch list?

Any provider whose list is empty either has not looked or is not telling you. Ours names the absent audit trail and the test hooks in the audited codebase, and it sits further down this page.

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

    
  

  
    
      
        Process
        
## The Six-Step Development Process

        
What we do, in the order we do it.

      
      
        Step 1 · Day 0
### Set the commercial numbers

Commission default, per-minute rates, the feature price for each AI vertical, the referral reward and cap, the withdrawal minimum and the tax percentage. On a metered marketplace those flags are the business model rather than settings around it, so they come before anything visual.

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

Name, logo and colour scheme across both portals, the back office and both Android builds, one of the five app design sets chosen with dark mode configured, the profession vocabulary token set if you are launching as something other than astrology, and your language packs activated from the 143 seeded.

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

The application and its MySQL go onto infrastructure you control. Gateway keys, MSG91 for OTP, your RTC provider for calls and live, the AI provider key, Exotel if you want the PSTN fallback, Firebase for push and admin support chat, and your storage provider are connected with credentials you hold.

        Step 4 · Day 5
### Hardening and the supply side

The pre-production security pass runs against the named list: test OTP bypass and test contact hooks removed, live keys moved out of the audited configuration, and the rest closed. Alongside it, operator accounts are created against team roles and the astrologer KYC queue is configured with its gating rules.

        Step 5 · Day 6
### Walkthrough and handover

We run the money loop end to end in front of your team: recharge a wallet through your live gateway, run a metered chat and watch the deduction land in the ledger, open the session in the console to see the commission split and the tax withheld, then approve a withdrawal. Source, schema and documentation transfer.

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

Sixty days of launch guidance, six months of priority bug fixes and twelve months of updates. Additional verified gateways, the audit-logging build and store publishing for both apps usually run inside this window on their own scoped schedule.

      
      
Day zero carries more weight here than on most products. A commission default or a per-minute rate set casually is awkward to revisit once practitioners have signed up against it and customers have recharged behind it.

    
  

  
    
      
        Warning Signs
        
## Red Flags That Mean Walk Away

      
      
        
### Five answers that should end the conversation

        
**"We bill after the session."** Then you have built a collections business rather than a marketplace. Advice already delivered is the hardest thing in the world to invoice for, and the customer has no reason left to pay.

        
**"The wallet is a balance on the user."** A number that gets incremented and decremented cannot tell you where value came from, cannot support a refund cleanly, and cannot reconcile a month. You need rows, not a field.

        
**"Commission is a setting in the config file."** That is one rate for everyone forever, or a deployment every time you negotiate with a practitioner. Neither survives a real supply side.

        
**"We support twenty payment gateways."** Ask how many are verified server-side. Supported and verified are different claims, and the gap between them is where fraudulent recharges live. Ours is three of twenty and we say so.

        
**An estimate with no named exclusions.** Software has edges, and marketplace software has provider accounts on top of them. A number presented without either was never costed properly.

      
      
We are on the uncomfortable side of our own fourth flag, which is exactly why it is written here in the same words we would use on a call rather than left for you to discover in the codebase.

    
  

  
    
      
        Domain
        
## What a Metered Marketplace Has to Get Right

        
The parts that are cheap to design in and expensive to retrofit.

      
      
        **Metering before service**A prepaid wallet debited per minute across chat, call and live, with the balance checked before the session starts rather than invoiced after it ends. This single decision is what removes collections from the business model entirely, and it cannot be added later without changing everything downstream of it.
        **An append-only ledger**A row per consumption event carrying commission context, tax context, offer and free-minute usage, and a conversion-rate snapshot. On a metered marketplace the ledger is the fastest growing table in the schema, and it is the only artifact that can explain a disputed month.
        **Commission that resolves in layers**A boost-active override first, then the per-astrologer rate, then the system default, with an admin commission ledger written per event. Real supply sides need promotional rates and negotiated rates simultaneously, and one global percentage cannot express either.
        **Withholding at settlement**Tax applied when the payout is computed rather than reconstructed quarterly, with PAN captured at the withdrawal request and reports exporting to CSV and PDF. Practitioners judge a platform on payout cleanliness more than on any feature, and this is where homegrown builds usually fail.
        **A control plane, not a codebase**298 typed flags across 47 groups covering section toggles, feature pricing, commission defaults, offers, referral caps, withdrawal minimums and provider selection. If changing a price needs a release, your pricing will effectively never change, and pricing is the lever you most need to move.
        **Something that answers at 3 a.m.**Ten wallet-metered AI verticals covering the hours when no practitioner is online, each priced and toggled independently behind one provider switch. Consultation intent does not keep business hours, and unanswered intent is not deferred demand, it is lost demand.
      
      
All six ship in the base build. Ask on the call and we will open each one in the demo with data behind it, including running a metered session and reading the resulting ledger row.

    
  

  
    
    
      
        Platform Trust
        
## What We Have Not Done Yet

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

      
      
        
          01
          
### There is no audit trail

          
The security review rates audit logging weak: no authentication-event log and no admin-action log, so operator actions are not reconstructable after the fact. On a platform where an operator can change a commission rate or issue a wallet bonus, this is the item we would schedule first, and it leads this list for that reason.

        
        
          02
          
### Three of twenty gateways are verified

          
Twenty gateway configurations ship, and server-side payment verification is implemented today on Tap, Sadad and PhonePe. Those three are the template the rest are built against. We would rather write that plainly than let a count of configurations imply the same count of verified integrations.

        
        
          03
          
### Test hooks ship in the audited code

          
The codebase as audited carries a test OTP bypass and test contact hooks. They are removed during the pre-production hardening pass we run with you before your domain is exposed, but they are in the code you would be reading, so you should hear it from us rather than find it.

        
        
          04
          
### The CRM is five of twenty-five modules

          
Five have functional implementations: a Customer 360 timeline, nine computed behavioural tags, health metrics covering lifetime value, retention and churn, a recommendation engine and a centralized notification engine. Lead management, sales pipelines, tasks and campaigns have no tables, models or routes yet.

        
        
          05
          
### Every provider account is yours

          
MSG91 for OTP, Agora, Zego or 100ms for real-time media, OpenAI or OpenRouter for the AI layer, Exotel for PSTN fallback, FCM and OneSignal for push, Firebase for admin support chat, Google Maps for geocoding, an astrology chart API, and a merchant account per gateway. The switches are built; the relationships are yours.

        
        
          06
          
### What is built is real

          
End-to-end encrypted chat with participant authorization and key versioning, which the security review calls the strongest control in the stack, parameterized bindings across roughly 500 raw query fragments giving near-zero classic injection surface, an append-only wallet ledger with conversion-rate snapshots, and role-based access across all 89 admin pages.

        
      
      
The VAPT posture document frames its findings as a pre-production gate rather than a clean bill of health. Every item on the hardening list is a configuration change or a code removal measured in developer-hours rather than an architectural rework, and we complete that pass with you.

    
  

  
    
      
        Modelled
        
## Modelled Reference Deployment

        
An authored scenario showing how the shipped platform is configured for an operator converting free-tool traffic into prepaid balance. It is not a client engagement, and every figure in it is a property of the platform rather than a reported outcome.

      
      
        
          
            Illustrative Scenario
            
### Metered Astrology Consultation Marketplace

            
How the shipped platform is configured for an operator converting free-tool traffic into prepaid wallet balance, then metering it across consultations, AI verticals, remedies and rituals.

          
          
            Illustrative scenarioNot a client engagementIndia, market modelled
          
          
            **170**Database tables
            **298**System flags
            **6 days**Deployment window
          
          
            
**What the situation makes hard:** free astrology tools drawing traffic that never converts into a paid session; practitioner payouts reconciled by hand against commission, tax and refunds; and consultation demand arriving at three in the morning with no human supply available to answer it.

            
**What the configuration addresses:** metering every minute against a prepaid wallet rather than billing after the fact; settling practitioner earnings through one commission waterfall with withholding applied at settlement; and covering the overnight hours with wallet-metered AI instead of idle capacity.

            
**What ships in the base build:** per-minute metering across chat, call and live with mid-session top-up; a commission waterfall of boost override, then per-astrologer rate, then system default; twenty gateway configurations with a conversion-rate snapshot per transaction; and ten wallet-metered AI verticals answering when no practitioner is online.

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

    
  

  
    
      
        FAQ
        
## Frequently Asked Questions

      
      
        
          
            Is the platform secure, and what needs doing before launch?
            We would rather answer this plainly than reassuringly. The genuine strengths are real: end-to-end encrypted chat with participant authorization and key versioning, which the security review calls the strongest control in the stack, parameterized bindings across roughly 500 raw query fragments giving near-zero classic injection surface, an append-only wallet ledger with conversion-rate snapshots, and role-based access across all 89 admin pages. The pre-launch list is equally real and short: the audited codebase ships with a test OTP bypass and test contact hooks that are removed before deployment, live keys move out of the audited configuration, and audit logging needs building.
          
          
            Why publish your own gaps?
            Because a security reviewer will find them, and finding them after payment is worse for both of us. It also means the platform you plan around is the real one rather than the marketing one. The VAPT posture document frames itself as a pre-production gate rather than a clean bill of health, which is the honest framing for any codebase of this size.
          
          
            What exactly do I own at the end?
            The Laravel application, the customer web portal, the astrologer portal, the JSON API, the admin back office, the 170 table schema with its migrations, and both Android builds with their own store listings and package names. The documentation suite transfers too: the schema reference, the entity relationship document, the API collection, the developer and security handbooks and the VAPT posture. No runtime licence, nothing per seat, no revenue share.
          
        
        
          
            Will you build the audit logging for us?
            Yes, as scoped work quoted before it starts, and we would schedule it early rather than late. It is ordinary engineering rather than a rearchitecture: authentication events and admin actions written to their own tables with the actor, the target and the before and after values. On a platform where an operator can change a commission rate or issue a wallet bonus, being able to answer who did what is worth having before you need it rather than after.
          
          
            Have you deployed this for a live operator?
            Miracuves has been building platforms since 2010 with over nine thousand projects delivered, and engagements are published in the portfolio with their own figures. The reference deployment on this page is labelled modelled because it is authored rather than reported, and its numbers describe the build. Where clients ask not to be named we leave them unnamed rather than implying more than we can evidence.
          
          
            Can we relaunch this as something other than astrology?
            Yes, and it is a deliberate design choice rather than a happy accident. The profession vocabulary is a single token reaching more than forty routes, so the same deployment can present as a tarot, counselling or coaching marketplace without a fork. The metering, wallet, commission and payout engine underneath does not care what the practitioner is called, which is the whole point of building the billing layer properly.
          
        
      
    
  

  
    
    
      
        
## Ask us the hard questions first

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

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

  
    
      
        Explore
        
## Explore the Astrotalk Clone

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

  
    
    
      
        
## Hire on the answers, not the deck

        
Six working days to a branded metered consultation marketplace on your own infrastructure, the Laravel source in your repository, and a pre-launch list you read before signing rather than after.

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

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

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

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