---
title: Astrotalk Clone Features
description: 
url: https://miracuves.com/astrotalk-clone/features
date_modified: 2026-09-07
author: miracuves
language: en_US
---

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
    
      
        
          
            [Home](/)/[Astrotalk Clone](/astrotalk-clone/)/Features
          
          Astrotalk Clone · Features
          
# Astrotalk Clone Features: The Ledger Is the Hard Part

          
Anyone can generate a birth chart. What separates a spiritual-services business from a content site is whether it can meter a minute, split a commission, withhold tax and reconcile a month that spanned three currencies. Every capability below is built and demonstrable, and where one needs an outside account or ships partially implemented, that is stated against the feature rather than implied away.

          [Request a Live Demo →](https://miracuves.com/schedule-consultation/)[Full Overview](/astrotalk-clone/)
          
            **170** database tables
            **298** system flags
            **6 days** to deploy
          
        
        
          Every minuteMetered before service
          
            What One Wallet Balance Pays For
            
              01Chat, call and live minutes
              02Ten metered AI verticals
              03Paid kundali and match reports
              04Remedies from the AstroMall
              05Puja packages and course seats
              06Gifts sent during a live stream
            
          
        
      
    
  

  
    
      
        170Database Tables
        89Admin Console Pages
        298System Flags
        20Gateway Configurations
      
    
  

  
    
      
        By Role
        
## Feature Set by Role

        
Six people touch this platform. All six read the same 170 table schema.

      
      
        
          01
          
### The Customer

          
Discovery by skill, language, price and rating, then chat, audio or video call, or a live stream, with every minute metered against a prepaid wallet and a mid-session top-up that does not drop the session. Messages are end-to-end encrypted with real-time translation, and the free kundali, guna milan, panchang and muhurta tools sit alongside as the reason to arrive at all.

        
        
          02
          
### The Astrologer

          
KYC gating before the profile goes public, availability windows, a request queue with automatic rejection of stale requests, and paid profile boosting for visibility. Earnings settle through a commission waterfall, and withdrawals run over UPI, bank transfer or PayPal against a configurable minimum with TDS applied and PAN captured at request.

        
        
          03
          
### The Assistant

          
Sub-accounts under a practitioner with their own permission set, so a busy astrologer can have someone else work the queue, answer chats or manage the schedule without handing over the earning account itself. This is the surface that lets a single high-demand practitioner scale past their own hours.

        
        
          04
          
### The Finance Desk

          
A commission waterfall resolving boost override, then the per-astrologer rate, then the system default, with an admin commission ledger written per event. TDS withheld at settlement with reports exporting to CSV and PDF, withdrawal approval queues, wallet bonuses issued singly or in bulk, and a conversion-rate snapshot on every transaction row.

        
        
          05
          
### The Moderator

          
Data monitoring across chats and calls, block-keyword moderation on messages, two-sided review moderation between customer and practitioner, and approval of astrologer-created puja packages before they reach the catalog. On a marketplace selling advice rather than goods, this is the surface that protects the brand.

        
        
          06
          
### The Operator

          
Eighty-nine admin menu pages across 151 Blade views, governed by team roles with per-page grants, sitting on 298 system flags in 47 groups. Section toggles for chat, call, live and AI, feature pricing for every paid surface, commission defaults, promotional offers, referral caps, withdrawal minimums and the TDS percentage are all form fields.

        
      
      
The profession vocabulary is a single token across more than forty routes, so relaunching the same deployment as a tarot, counselling or coaching marketplace is a flag change rather than a fork.

    
  

  
    
      
        Compare
        
## Clone vs Generic Script vs Building From Scratch

        
Most routes to a consultation marketplace hold up until the first payout run.

      
      
        
| What decides it | Miracuves Astrotalk Clone | Generic consultation script |
| --- | --- | --- |
| Time to a working platform | Six working days | Unknown, and largely do it yourself |
| How a minute is billed | Metered against a prepaid wallet before service | Invoiced after the session, and chased |
| Running out mid-session | Top-up inside the session without dropping it | The call ends, and usually so does the sale |
| Practitioner commission | Boost override, then per-astrologer rate, then default | One global percentage, edited in code |
| Tax on payouts | TDS withheld at settlement, CSV and PDF reports | A spreadsheet, reconciled by hand |
| A second country | Twenty gateway configurations, currency per gateway | Reopen the payments layer |
| Overnight demand | Ten wallet-metered AI verticals answer | Nothing answers, and the intent is lost |
| Changing a price | A form field among 298 flags | A release, and a developer |
| Source code | Full ownership, no runtime licence, no per-seat fee | Often limited, sometimes encrypted |

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

    
  

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

        
Every step is enforced server-side rather than in the client, which is what makes the money reconcilable afterwards.

      
      
        Step 1
### A free tool brings them in

Kundali with seven report sections, guna milan matching, panchang with geolocation, a muhurta finder across six purposes, and daily, weekly and yearly horoscopes across a twelve sign catalog. None of it is metered, because its job is to attract intent rather than to earn.

        Step 2
### They find a practitioner

Discovery filters on skill, language, price and rating, against profiles that only appear publicly once KYC has cleared. Availability windows decide who is reachable now, and paid profile boosting decides who surfaces first, which is itself a revenue line rather than an algorithm nobody controls.

        Step 3
### The wallet is recharged

Money enters once, through any of twenty gateway configurations spanning India, the Gulf, Turkey, Africa, Europe, Latin America and the global rails. Each carries its own currency, symbol and test and live key pair, and every transaction stores a conversion-rate snapshot so a multi-currency month reconciles later against the rate that actually applied.

        Step 4
### The session is metered

Chat, audio, video and live stream all bill per minute against that balance, with media carried by Agora, Zego or 100ms behind one provider switch and an Exotel PSTN fallback dialing masked numbers. If the balance runs low the customer tops up inside the session rather than losing it.

        Step 5
### Or the AI answers instead

When no practitioner is online, ten wallet-metered verticals take the session: AI counsellors, a site-wide master bot, tarot on a 78 card deck, numerology, vastu, vision reading, transit analysis, paid ask-a-question, the remedy engine and paid AI remedy reports. Each is priced and toggled independently, and each debits the same wallet.

        Step 6
### The commission resolves

An append-only ledger row lands per consumption event carrying commission and tax context. The waterfall checks for an active boost override, then the per-astrologer rate, then the system default, and live sessions bill per minute against a default seventy percent practitioner share.

        Step 7
### The practitioner is paid

Withholding is applied at settlement with PAN captured at the withdrawal request, TDS reports export as CSV and PDF, and disbursement runs over UPI, bank transfer or PayPal Payouts with bulk support. This is the step homegrown builds usually get wrong, and it is the one practitioners judge you on.

      
      
The same balance also buys remedies from the AstroMall with GST-aware checkout, puja packages delivered over a live broadcast, course seats and gifts sent during a stream, each carrying its own commission treatment.

    
  

  
    
      
        Justified
        
## Every Feature Earns Its Place

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

      
      
        
| Module | Why it is in the base build |
| --- | --- |
| Prepaid wallet, metered before service | Billing after a consultation means chasing payment for advice already given. Metering against a balance that exists first removes the collection problem entirely. |
| Mid-session top-up | A session that dies on an empty balance loses the minute, the sale and usually the customer. Topping up without leaving the session is the difference between a lapse and a renewal. |
| Commission waterfall | A single global percentage cannot express a promotional boost or a star practitioner's negotiated rate. Three resolution levels is the minimum that survives contact with real supply. |
| Conversion-rate snapshot per row | Reconciling a multi-currency month against today's rate produces numbers that do not match what happened. Storing the rate that applied is what makes the ledger auditable. |
| TDS withholding at settlement | Withholding calculated after the fact is a reconciliation project every quarter. Applied at settlement with PAN captured, it is a report rather than an exercise. |
| Ten metered AI verticals | Consultation demand arrives at three in the morning when no practitioner is awake. AI covers those hours at near-zero marginal cost instead of losing the intent. |
| 298 flags across 47 groups | Feature prices, commission defaults, section toggles and referral caps are the numbers your margin depends on. They belong in a form rather than in a deployment. |
| KYC gating before listing | A marketplace selling personal guidance carries reputational risk from its supply side. Verifying before a profile is publicly reachable is cheaper than removing it afterwards. |

      
      
Underneath sit 8 scheduler tasks and 6 queue job classes carrying horoscope generation, appointment and puja reminders, commission settlement and notification dispatch, none of which belongs in a web request.

    
  

  
    
      
        Stack
        
## The Technology Behind the Features

        
Deliberately unexotic, because the operator has to hire for it.

      
      
        **Application core**Laravel 10 on PHP with MySQL 8, Blade templating and a Vite build: 170 database tables with incremental migrations, 179 controllers and 133 models, 8 scheduler tasks and 6 queue job classes, with parameterized bindings across roughly 500 raw query fragments.
        **Surfaces and routing**Roughly 191 customer and astrologer website routes, roughly 363 JSON API routes under a JWT guard serving both Android builds, and roughly 552 admin routes behind session-based role access, rendering 89 admin menu pages across 151 Blade views.
        **Real-time layer**Provider-agnostic voice and video behind a single switch across Agora, Zego and 100ms, live streaming with RTMP fan-out and recording, an Exotel PSTN fallback dialing masked numbers, and Firebase Firestore carrying admin support chat.
        **AI layer**One provider interface with the provider, model and key held as system flags, so all ten verticals inherit a single switch between OpenAI and OpenRouter. Wallet metering is applied before every call, and history persists with PDF export.
        **Money and ledger**A dual-currency wallet operating in amount or coin mode across twenty gateway configurations, an append-only transaction ledger, a conversion-rate snapshot per transaction, the commission waterfall with TDS withholding, and withdrawals over UPI, bank and PayPal Payouts.
        **Configuration and storage**A system flag store of 298 typed flags across 47 groups, a profession vocabulary swap reaching more than forty routes, 143 seeded languages with ten active app-side and five on web, five app design sets with dark mode, and storage selectable per deployment across local, AWS, GCS and DigitalOcean.
      
      
The interesting engineering here is not the framework. It is the flag store and the ledger: typed flags mean pricing and packaging change without a release, and an append-only ledger with rate snapshots means a multi-currency month reconciles against the rate that actually applied.

    
  

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

        
Named here rather than discovered after the invoice.

      
      
        
          01
          
### Payment verification covers three gateways

          
Twenty gateway configurations ship, but server-side payment verification is implemented today on three of them: Tap, Sadad and PhonePe. Those three are the template the rest are built against, and we would rather say that than let twenty configurations imply twenty verified integrations.

        
        
          02
          
### There is no audit trail

          
The security review rates audit logging weak, with no authentication-event log and no admin-action log, so operator actions are not currently reconstructable after the fact. On a platform moving money this is the item we would schedule first, and it is a named pre-launch gap rather than something to find in a review.

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

          
The specification describes twenty-five. 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, pipelines, tasks and campaigns have no tables, models or routes yet.

        
        
          04
          
### Test hooks ship, and are removed

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

        
        
          05
          
### Nine outside accounts are 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 for every gateway you intend to run.

        
        
          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, an append-only wallet ledger with conversion-rate snapshots, role-based access across all 89 admin pages, and both Android builds with their own store listings.

        
      
      
The full pre-launch hardening list, and what each item costs to close, sits on the [Development Company](/astrotalk-clone/development-company/#platform-trust) page.

    
  

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

          
The deployment process, a modelled reference deployment for a metered marketplace, the pre-launch hardening list, and the nine questions worth asking before you hire anyone - on the Development Company page.

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

  
    
      
        FAQ
        
## Frequently Asked Questions

      
      
        
          
            What do the ten AI features actually do?
            AI counsellor personas with admin-authored system prompts, a site-wide master chatbot, tarot on a 78 card deck with single and three card spreads, numerology across Chaldean and Pythagorean systems with gemstones and mantras, a vastu compass evaluating eight directions, vision reading from an uploaded palm or face photo, planetary transit analysis, paid ask-a-question routing between AI and a human astrologer, the remedy engine mapping weak planets and doshas to remedies, and paid downloadable AI remedy reports. Each is priced and toggled independently and each debits the wallet.
          
          
            Does it handle practitioner payouts and tax properly?
            Yes, and this is the part we would point at first, because it is where homegrown builds usually fail. Commission resolves through a waterfall: a boost-active override first, then the per-astrologer rate, then the system default, with an admin commission ledger written per event. Withholding is applied at settlement with PAN captured at the withdrawal request, and TDS reports export as CSV and PDF. Withdrawals run over UPI, bank transfer or PayPal with a configurable minimum, and PayPal Payouts supports bulk disbursement.
          
          
            Can I run this in more than one country?
            That is the design intent. Twenty gateway configurations cover India, the Gulf, Turkey, Africa, Europe, Latin America and the global rails, each carrying its own currency, symbol and test and live key pair. Add 143 seeded languages with ten active on the app side, per-market store listings for both apps, and a conversion-rate snapshot on every transaction, and the second country becomes a configuration exercise. You still need a merchant account per gateway you intend to run.
          
        
        
          
            What can the operator change without a developer?
            Most of it. There are 298 system flags across 47 groups covering section toggles for chat, call, live and AI, feature pricing for every paid surface, commission defaults, promotional offers and first-free-chat, referral rewards and caps, withdrawal minimums and the TDS percentage, currency and language, storage and streaming provider selection, rate limits, and the store links for both apps. The profession vocabulary is a single token, so relaunching as a tarot or counselling marketplace does not need a fork.
          
          
            Is there a CRM, and how complete is it?
            There is, and we will be precise rather than let the word carry more than it should. The specification describes twenty-five modules and five have functional implementations: a Customer 360 view with a unified timeline assembled from registrations, kundalis, sessions, orders, recharges and refunds, nine computed behavioural tags, customer health metrics covering lifetime value, retention and churn scoring, a recommendation engine, and a centralized notification engine. Lead management, sales pipelines, tasks and campaigns do not exist yet.
          
          
            Do I get the source code and both mobile apps?
            Yes to all of it: the Laravel application, the customer web portal, the astrologer portal, the JSON API, the admin back office, the 170 table schema with migrations, and both Android builds, the customer app and the separate astrologer app, each with its own store listing and package name. The documentation suite transfers too, including the schema reference, the entity relationship document, the API collection, the developer and security handbooks and the VAPT posture.
          
        
      
    
  

  
    
    
      
        
## Run the money demo, not the feature reel

Recharge a wallet, start a chat and watch the per-minute deduction land in the ledger, then open the same session in the operator console and see the commission split and the tax withheld against it.

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

  
    
      
        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/)
      
    
  

  
    
    
      
        
## Money enters once. It is consumed many times.

        
A customer portal, an astrologer portal, a JSON API for both Android builds and an 89 page operations back office on one Laravel and MySQL core, with the full source on infrastructure you own.

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