<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: abhishek gupta</title>
    <description>The latest articles on DEV Community by abhishek gupta (@abhishek_gupta_cc27e9b33a).</description>
    <link>https://dev.to/abhishek_gupta_cc27e9b33a</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3934842%2F8ca98bac-7271-4bd8-a91d-df9b337e3a51.jpg</url>
      <title>DEV Community: abhishek gupta</title>
      <link>https://dev.to/abhishek_gupta_cc27e9b33a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhishek_gupta_cc27e9b33a"/>
    <language>en</language>
    <item>
      <title>Building an AI Vedic Astrology App in 25 Days — What Actually Worked (and What Didn't)</title>
      <dc:creator>abhishek gupta</dc:creator>
      <pubDate>Sat, 23 May 2026 17:37:38 +0000</pubDate>
      <link>https://dev.to/abhishek_gupta_cc27e9b33a/building-an-ai-vedic-astrology-app-in-25-days-what-actually-worked-and-what-didnt-2257</link>
      <guid>https://dev.to/abhishek_gupta_cc27e9b33a/building-an-ai-vedic-astrology-app-in-25-days-what-actually-worked-and-what-didnt-2257</guid>
      <description>&lt;p&gt;25 days ago I had an idea. Today KundliAI is live, indexed by Google, and getting organic traffic.&lt;/p&gt;

&lt;p&gt;Here's the honest story — no fluff.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Idea
&lt;/h2&gt;

&lt;p&gt;India has 1.4 billion people. A massive percentage consult astrology regularly — for marriage, career decisions, naming babies, starting businesses.&lt;/p&gt;

&lt;p&gt;But the existing platforms are either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Outdated UI from 2005&lt;/li&gt;
&lt;li&gt;English-heavy (most users are Hindi speakers)&lt;/li&gt;
&lt;li&gt;Expensive (₹500-2000 per consultation)&lt;/li&gt;
&lt;li&gt;Generic (same horoscope for everyone born in the same month)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I thought — what if I built something that gives genuinely personalized Vedic astrology in Hindi, free, in 30 seconds?&lt;/p&gt;

&lt;p&gt;That became KundliAI.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend: Next.js 14 (App Router)
Styling: Tailwind CSS
AI: Groq API (Meta's Llama — fast and cheap)
Astrology calculations: AstrologyAPI.com (Swiss Ephemeris)
Payments: Razorpay
Hosting: Vercel
Domain: kundliai.in
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Why Groq over OpenAI? Speed. Groq is 10x faster for inference. For a tool where users expect results in 30 seconds — latency matters a lot.&lt;/p&gt;

&lt;p&gt;Why AstrologyAPI over doing calculations myself? Swiss Ephemeris is complex. AstrologyAPI wraps it cleanly and gives me planetary positions, Kundli Matching (36 Guna Milan), Mahadasha calculations — all via REST API. Cost is minimal for the accuracy you get.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built — Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Free Kundli Generator&lt;/strong&gt;&lt;br&gt;
User enters name, date of birth, time, place. We call AstrologyAPI for planetary positions, then Groq generates a complete personalized reading in Hindi. Takes about 25-30 seconds end to end.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Daily Rashifal (Horoscope)&lt;/strong&gt;&lt;br&gt;
Not generic — based on actual planetary transits for the day combined with user's Moon sign. Different from every other rashifal site that gives the same text to all Aries users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kundli Matching&lt;/strong&gt;&lt;br&gt;
36 Guna Milan — the traditional Indian marriage compatibility system. Enter two birth charts, get compatibility score with explanation in Hindi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Numerology&lt;/strong&gt;&lt;br&gt;
Name + date of birth → Life Path Number, Destiny Number, Soul Urge Number. Hindi interpretation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Love Compatibility by Name&lt;/strong&gt;&lt;br&gt;
Chaldean numerology — enter two names, get compatibility score. Simple but surprisingly popular.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Pandit Chat&lt;/strong&gt;&lt;br&gt;
24/7 chat with an AI that knows Vedic astrology. Ask anything — career, marriage, health, planetary positions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Panchang&lt;/strong&gt;&lt;br&gt;
Daily Panchang for 12 Indian cities — Tithi, Nakshatra, Yoga, Rahu Kaal, Abhijit Muhurat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paid Reports (₹99)&lt;/strong&gt;&lt;br&gt;
Detailed 10-page PDF report. One-time payment via Razorpay. First payment came on Day 20.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technical Challenges
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Challenge 1 — Prompt Engineering for Hindi
&lt;/h3&gt;

&lt;p&gt;Getting Groq/Llama to generate genuinely good Hindi astrology content was harder than expected.&lt;/p&gt;

&lt;p&gt;The model kept mixing Hindi and English awkwardly. It would use Sanskrit terms without explaining them. The tone was sometimes too formal, sometimes too casual.&lt;/p&gt;

&lt;p&gt;After about 40 iterations of the system prompt, I landed on something that works. Key insights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give the model a persona ("You are an experienced Vedic astrologer who explains things in simple Hindi")&lt;/li&gt;
&lt;li&gt;Specify the audience ("The user is a regular Indian, not an astrology expert")&lt;/li&gt;
&lt;li&gt;Give explicit formatting instructions&lt;/li&gt;
&lt;li&gt;Include examples of good vs bad responses in the prompt&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Challenge 2 — Vercel Serverless File Size Limits
&lt;/h3&gt;

&lt;p&gt;My blogs.ts file grew to 500KB+ with 32 blog posts. Vercel's serverless functions have memory limits and the file was causing cold start issues — only 3 blogs were loading.&lt;/p&gt;

&lt;p&gt;Solution: Split into blogs.ts (9 blogs) and blogs2.ts (23 blogs), import both in the page component.&lt;/p&gt;

&lt;p&gt;Lesson: Watch your serverless function bundle size. It bites you in production, not in development.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge 3 — SSR vs Client Rendering for SEO
&lt;/h3&gt;

&lt;p&gt;Initially blog pages were client-rendered. Google was seeing empty pages — terrible for SEO.&lt;/p&gt;

&lt;p&gt;Migrated to Server Components with &lt;code&gt;force-dynamic&lt;/code&gt;. Now Google gets fully rendered HTML with all content. Indexed 2 new blogs in under 10 minutes after this fix.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge 4 — AstrologyAPI Rate Limits
&lt;/h3&gt;

&lt;p&gt;During testing I burned through API credits quickly. Built a simple caching layer — same birth data within 24 hours returns cached results instead of hitting the API again.&lt;/p&gt;

&lt;p&gt;Cost dropped significantly. API cost is now ₹8-17 per day even with decent traffic.&lt;/p&gt;

&lt;h2&gt;
  
  
  The SEO Strategy — What's Working
&lt;/h2&gt;

&lt;p&gt;I'm not an SEO expert. But here's what I did:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blog content in Hindi + English&lt;/strong&gt;&lt;br&gt;
Most astrology content online is either pure English or poor Hindi. I write detailed bilingual blogs — "Makar Rashi 2026 rashifal" with proper Hindi content. Google seems to like this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Long-tail keywords&lt;/strong&gt;&lt;br&gt;
Not "horoscope" (impossible to rank). Instead "makar rashi sade sati 2026 upay" — specific, lower competition, high intent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FAQ sections on every blog&lt;/strong&gt;&lt;br&gt;
Google's featured snippets love FAQ format. I include 10-14 FAQ questions per blog with direct answers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Schema markup&lt;/strong&gt;&lt;br&gt;
FAQ schema, Breadcrumb schema, Review schema — all implemented server-side. Google Search Console shows all valid. Rich results in search = higher CTR.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Results after 25 days:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;0 to 1,390 impressions&lt;/li&gt;
&lt;li&gt;67 clicks&lt;/li&gt;
&lt;li&gt;4.8% CTR (industry average is 2-3%)&lt;/li&gt;
&lt;li&gt;Position 7.6 average&lt;/li&gt;
&lt;li&gt;First paid customer on Day 20&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Distribution Strategy
&lt;/h2&gt;

&lt;p&gt;SEO takes time. Meanwhile:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quora&lt;/strong&gt; — answering astrology questions with genuine helpful content. 51 answers so far. 166 content views this month. Referral traffic is steady.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Featured.com&lt;/strong&gt; — expert Q&amp;amp;A platform. Submitted 3 answers. One selected by BoostmyDomain for publication. Two in review with Brodox and VisRank. High-DR backlinks incoming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IndieHackers&lt;/strong&gt; — sharing the journey. Good for backlinks and community feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  Revenue — Honest Numbers
&lt;/h2&gt;

&lt;p&gt;Day 20: First payment — ₹99&lt;br&gt;
Day 25: Total revenue — ₹99-200&lt;/p&gt;

&lt;p&gt;Not impressive yet. But the paid report feature works, Razorpay integration is solid, and the funnel is there. It's a traffic problem right now, not a conversion problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd Do Differently
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Start SEO content on Day 1&lt;/strong&gt;&lt;br&gt;
I built features for the first 2 weeks before writing any blogs. Those 2 weeks of content compound over time — I wish I'd started earlier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pick a narrower niche first&lt;/strong&gt;&lt;br&gt;
"AI Vedic astrology" is broad. Starting with "Sade Sati calculator" or "Kundli Matching tool" and dominating that before expanding would have been smarter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build in public from Day 1&lt;/strong&gt;&lt;br&gt;
I started sharing on Day 20. Earlier sharing = earlier feedback = earlier course corrections.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Complete all 12 rashi blogs (4 remaining)&lt;/li&gt;
&lt;li&gt;Reddit community building&lt;/li&gt;
&lt;li&gt;YouTube Shorts — 30 second rashifal videos&lt;/li&gt;
&lt;li&gt;WhatsApp channel&lt;/li&gt;
&lt;li&gt;Month 2 target: ₹5,000 revenue&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Code
&lt;/h2&gt;

&lt;p&gt;Not open source yet — but happy to answer specific technical questions in the comments.&lt;/p&gt;

&lt;p&gt;Live at: &lt;a href="https://kundliai.in" rel="noopener noreferrer"&gt;kundliai.in&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built by one person in 25 days. Zero paid marketing. Everything organic.&lt;/p&gt;

&lt;p&gt;If you're building something for the Indian market — Hindi-first is a massive opportunity. The content gap is real.&lt;/p&gt;

&lt;p&gt;Happy to answer any questions about the stack, the prompts, or the SEO approach.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>startup</category>
      <category>nextjs</category>
      <category>seo</category>
    </item>
    <item>
      <title>I Built India's First AI Vedic Astrology Platform in 17 Days — Here's Everything I Did</title>
      <dc:creator>abhishek gupta</dc:creator>
      <pubDate>Sat, 16 May 2026 13:05:14 +0000</pubDate>
      <link>https://dev.to/abhishek_gupta_cc27e9b33a/i-built-indias-first-ai-vedic-astrology-platform-in-17-days-heres-everything-i-did-3al4</link>
      <guid>https://dev.to/abhishek_gupta_cc27e9b33a/i-built-indias-first-ai-vedic-astrology-platform-in-17-days-heres-everything-i-did-3al4</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu7gzxrtbye2wwvzo5qhd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu7gzxrtbye2wwvzo5qhd.png" alt=" " width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From zero to Page 1 on Google, 500+ users, and a trademark filed — as a solo founder.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Idea
&lt;/h2&gt;

&lt;p&gt;India has a ₹40,000 crore astrology market. AstroTalk makes ₹600 crore/year. AstroSage has been around for 20 years.&lt;/p&gt;

&lt;p&gt;But nobody had built an &lt;strong&gt;AI-powered, free, Hindi-first&lt;/strong&gt; Vedic astrology platform.&lt;/p&gt;

&lt;p&gt;So I built one.&lt;/p&gt;

&lt;p&gt;In 17 days.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework:&lt;/strong&gt; Next.js 14 (App Router)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling:&lt;/strong&gt; Tailwind CSS + inline styles&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; Groq API (llama-3.3-70b-versatile) — for kundli reading generation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Astrology Calculations:&lt;/strong&gt; AstrologyAPI.com (Swiss Ephemeris under the hood)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Vercel&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email:&lt;/strong&gt; Nodemailer + Zoho SMTP&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain:&lt;/strong&gt; kundliai.in&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Total infra cost per month: &lt;strong&gt;under ₹500&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Built in 17 Days
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Free Kundli Generator&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kundli Matching (36 Guna Milan)&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aaj Ka Rashifal (Daily Horoscope)&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marriage Muhurat Finder&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Life Timeline&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Pandit Chat (24/7)&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Panchang (Daily)&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Numerology Calculator&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Love Compatibility&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Email Kundli to Yourself&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pricing Page&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20 SEO Blogs&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  The Technical Challenges
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Challenge 1: Groq Rate Limits
&lt;/h3&gt;

&lt;p&gt;The biggest headache. Groq's free tier has strict rate limits and when traffic spikes, &lt;code&gt;llama-3.3-70b-versatile&lt;/code&gt; hits the ceiling fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My fix — model fallback chain:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;models&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;llama-3.3-70b-versatile&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;llama-3.1-8b-instant&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;gemma2-9b-it&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;models&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;groqRes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://api.groq.com/openai/v1/chat/completions&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Authorization&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Bearer &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;GROQ_API_KEY&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;max_tokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt; &lt;span class="p"&gt;}),&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;groqRes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;reading&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Promise&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;continue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If all models fail, show a graceful fallback with the chart data instead of a broken error.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge 2: AstrologyAPI Field Names
&lt;/h3&gt;

&lt;p&gt;AstrologyAPI.com has some quirks. The nakshatra field is literally spelled &lt;code&gt;Naksahtra&lt;/code&gt; (typo in their API that they never fixed):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nakshatra&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;lagnaData&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;Naksahtra&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;lagnaData&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;nakshatra&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;—&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Took me an embarrassing amount of time to figure that out.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge 3: Hindi AI Reading
&lt;/h3&gt;

&lt;p&gt;Getting Groq to respond in proper Devanagari Hindi consistently required very specific prompting:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;langInstruction&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;lang&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;hi&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Respond entirely in Hindi (Devanagari script). Do not use any English words.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Respond in English with occasional Sanskrit terms for authenticity.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Challenge 4: Windows Double Extension Bug
&lt;/h3&gt;

&lt;p&gt;Every file I downloaded got saved as &lt;code&gt;page.tsx.tsx&lt;/code&gt;. Had to add this to my workflow permanently:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mv&lt;/span&gt; &lt;span class="s2"&gt;"page.tsx.tsx"&lt;/span&gt; &lt;span class="s2"&gt;"page.tsx"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  SEO Strategy — From 0 to Page 1 in 17 Days
&lt;/h2&gt;

&lt;p&gt;This is what I'm most proud of.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Day 1-17 content output:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;20 blogs on the website (Hindi + English mix)&lt;/li&gt;
&lt;li&gt;16 posts on Medium&lt;/li&gt;
&lt;li&gt;45 Quora answers&lt;/li&gt;
&lt;li&gt;Crunchbase, LinkedIn, Wellfound, SlideShare profiles&lt;/li&gt;
&lt;li&gt;Trademark filed on Day 14&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Result after 17 days:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Average position: &lt;strong&gt;7.6&lt;/strong&gt; (Page 1)&lt;/li&gt;
&lt;li&gt;Monthly impressions: &lt;strong&gt;531&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;CTR: &lt;strong&gt;6%&lt;/strong&gt; (industry average is 2-3%)&lt;/li&gt;
&lt;li&gt;Users: &lt;strong&gt;500+&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key insight: &lt;strong&gt;Hindi content has 10x less competition&lt;/strong&gt; than English for the same keywords.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;aaj ka rashifal&lt;/code&gt; — 823K monthly searches, difficulty 42&lt;br&gt;
&lt;code&gt;kundali&lt;/code&gt; — 450K monthly searches, difficulty 64&lt;br&gt;
&lt;code&gt;rahu kaal today&lt;/code&gt; — 201K monthly searches, difficulty 42&lt;/p&gt;

&lt;p&gt;Most competitors only target English. I went Hindi-first from Day 1.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Prompt Engineering
&lt;/h2&gt;

&lt;p&gt;The core of KundliAI is the kundli reading prompt. Here's the architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Calculate real planetary positions via AstrologyAPI (Swiss Ephemeris)
2. Build structured astrology context string
3. Feed to Groq with persona prompt
4. Return personalized 400-500 word reading
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The persona matters enormously:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You are Pandit JyotishAI, a master Vedic astrologer 
with 30 years of experience. Use the EXACT planetary 
positions given. Mention their actual Lagna, Moon sign, 
Nakshatra by name. Be warm, wise and make them feel 
truly seen by the cosmos.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Generic AI responses feel cold. Adding the persona + real chart data = responses that feel genuinely personal.&lt;/p&gt;




&lt;h2&gt;
  
  
  Revenue Plan
&lt;/h2&gt;

&lt;p&gt;Currently at ₹0 — Razorpay integration coming this week.&lt;/p&gt;

&lt;p&gt;Planned monetization:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kundli PDF Report — ₹99&lt;/li&gt;
&lt;li&gt;Kundli Matching Report — ₹149&lt;/li&gt;
&lt;li&gt;Numerology Report — ₹99&lt;/li&gt;
&lt;li&gt;Love Compatibility Report — ₹99&lt;/li&gt;
&lt;li&gt;Life Timeline Report — ₹199&lt;/li&gt;
&lt;li&gt;Premium Subscription — ₹199/month&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Target: ₹1L/month by Month 6.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Razorpay payment integration&lt;/li&gt;
&lt;li&gt;Google Sheets email list capture&lt;/li&gt;
&lt;li&gt;City landing pages (Delhi, Mumbai, Bangalore)&lt;/li&gt;
&lt;li&gt;SEObot for automated blog generation&lt;/li&gt;
&lt;li&gt;Predis.ai for Instagram automation&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Lessons for Solo Founders
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Ship on Day 1, improve forever&lt;/strong&gt;&lt;br&gt;
I launched with basic features and added 11 more over 17 days. Waiting for perfection = waiting forever.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Vernacular is an unfair advantage&lt;/strong&gt;&lt;br&gt;
Hindi content = less competition, more trust, better CTR. Most devs ignore this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Free tools can power a real product&lt;/strong&gt;&lt;br&gt;
Groq free tier + AstrologyAPI + Vercel hobby = production-ready platform at ₹0.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. SEO compounds&lt;/strong&gt;&lt;br&gt;
Every blog, every Quora answer, every backlink compounds. Start Day 1, not Month 3.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Trademark early&lt;/strong&gt;&lt;br&gt;
Filed on Day 14. Costs ₹4,500 in India. Worth every rupee.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://kundliai.in" rel="noopener noreferrer"&gt;kundliai.in&lt;/a&gt;&lt;/strong&gt; — Free AI Vedic Astrology in Hindi &amp;amp; English&lt;/p&gt;

&lt;p&gt;Generate your complete Vedic birth chart in 30 seconds — Lagna, Moon sign, Nakshatra, Mahadasha, planetary positions — all free.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Building in public. Follow along for weekly updates on traffic, revenue and product.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you're building something in the Indian market — especially targeting Hindi users — happy to share more about the SEO strategy that got us to Page 1 in 17 days.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>startup</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
