Inspiration
A birth chart is not a curse. It is a timestamp — an astronomical snapshot of the sky at the exact time and place someone was born. With the right coordinates, that moment can be reconstructed with real physics.
That part is astronomy. What that position means for a person's life is a completely different question — and that's exactly where most astrology apps stop being honest.
That is not what most people are told, though.
Since childhood, I have seen how deeply superstition still shapes real decisions — and how easily it turns into exploitation. Someone finds a "dosha" in their chart, and suddenly a stranger is selling them a ritual, a gemstone, or a puja to "fix" it. I have watched this move from street-corner astrologers to apps and websites doing the exact same thing, just with a chatbot instead of a person — a modern-day fraudster with a better UI.
I could not go from house to house explaining what astrology actually is. But I also did not want to just tell people to stop believing in it, because the people who dismiss it outright have usually never learned its actual history either. Before it became a fear-selling industry, astrology was tied to real mathematical and astronomical knowledge. That history deserves respect, even while the exploitation happening in its name needs to stop.
So I decided to make a small attempt: build one app, inside a market of thousands of astrology apps, that tries to clean up some of that noise instead of adding to it.
That attempt became Enuma Sky.
Hi, I'm Deepak — a second-year Data Science student at IIT Madras, and I built it solo.
What it does
Enuma Sky turns astrology from a fear-based industry into a science-grounded self-reflection tool.
Here's the problem it's solving: India's multi-billion dollar astrology industry runs on telling people their birth charts are "cursed." People pay for remedies — gemstones, rituals, pujas — to fix fabricated flaws like Manglik Dosh (Mars's placement blamed for marital conflict), Kaal Sarp Dosh (all planets trapped between two lunar nodes, blamed for prolonged misfortune), Pitra Dosh (ancestors blamed for your problems), or Vastu Dosh (your home's architecture blamed for your problems). Marriages get delayed, careers get abandoned, anxiety spirals — and this isn't hypothetical: in one documented case, a fake astrologer extorted ₹13 lakh from a techie by promising rituals to fix his marital and financial problems.
No birth chart is broken. Ever.
The app computes a complete birth chart — Lagna (Ascendant), 9 planetary bodies, 27 Nakshatras, Vimshottari Dashas, and daily Panchang — using real NASA JPL DE440s ephemeris data (the same data NASA uses to navigate spacecraft), accurate to within 1.7 arcseconds across 150 years.
The AI never predicts the future. It acts purely as an empathetic translator, treating the chart as a framework for introspection — closer to journaling than fortune-telling — explaining what it reflects about psychology, strengths, and growth areas. Every claim it makes is checked against the computed chart before it reaches the user.
The feature I'm proudest of isn't astrology at all — it's the Crisis Safety Net. If a user expresses self-harm, hopelessness, or despair, astrology stops immediately. No horoscope, no prediction — instead, the app surfaces real, verified helplines: Tele-MANAS (14416), AASRA, Women Helpline (181), Emergency (112). No chart reading is worth more than a human life.
Beyond readings, Enuma Sky teaches: a 38-chapter interactive course explains authentic astrological principles using the user's own chart as the textbook, not generic sun-sign articles. A deterministic 78-card Tarot system uses cryptographic seeds — fully reproducible, zero invented mysticism — reframed as Situation → Obstacle → Advice, where even reversed cards carry constructive meaning. Ashtakoot Kundli Matching computes the traditional 36-point compatibility score without ever labeling a match "bad" or "doomed."
Monetization is powered by RevenueCat and kept deliberately clean: all calculations, Panchang, the course, and tarot are free forever. Enuma Sky Pro (Weekly / Monthly / Yearly) unlocks unlimited AI conversations, validated server-side so entitlements can't be gamed.
In short: Enuma Sky treats astrology as a mirror, not a verdict — backed by NASA-grade math, ethically bounded AI, and a safety net that puts human life above horoscopes.
How we built it
The core architecture rests on one rule: math and language must never mix.
The backend is a Python FastAPI service on Render. Every astronomical calculation — planetary positions, Lagna, Nakshatras, Dashas, Panchang, sunrise/sunset — is computed deterministically from NASA JPL DE440s ephemeris kernels via the Skyfield library. No AI touches any calculation; the math is physics, not prediction.
I chose NASA JPL over the more common Swiss Ephemeris purely for licensing: Swiss Ephemeris is AGPL-3.0, which would have forced my entire backend open-source. NASA JPL kernels are public domain and Skyfield is MIT-licensed — no traps, and the accuracy trade-off is practically zero (within 1.7 arcseconds across 150 years of benchmarks).
The AI enters only after the math is done. It receives a pre-computed fact brief — exact degrees, houses, nakshatras, dashas — and its only job is to translate that into warm, non-fatalistic language. A custom Grounding Engine then inspects every response, matching planetary claims (in English, Hindi, and Sanskrit) against the computed chart; if even one claim is hallucinated, the response is flagged grounded: false.
Crisis intervention runs before any AI processing at all. If a message shows signals of self-harm or despair, the entire astrology pipeline halts, and the AI is instructed to respond only with empathy and verified helpline numbers.
The mobile app is React Native with Expo (SDK 57), using Expo Router with a glassmorphic dark-mode UI — deliberately calm, no ads, no pop-ups, no red-and-gold chaos. The birth chart renders as a pure SVG North Indian diamond Kundli, so there are no heavy image downloads. Supabase handles optional auth and Postgres with row-level security for chart sync — every core feature works without an account. RevenueCat powers the subscription layer end to end, with entitlements checked server-side against a 60-second cache and instant refresh after purchase.
I built the whole thing solo — every line of code, every design decision, every ethical guardrail — over about three weeks (August 18 – September 8).
Challenges we ran into
Racing the clock — building solo while exams loomed. I built the entire architecture — frontend, FastAPI backend, Supabase integration, the AI Grounding Engine — completely solo in three weeks (August 18 – September 8), with IIT Madras exams starting September 13th. The hardest part wasn't a bug, it was endurance: coding late into the night, studying during the day, with no team to share the load.
AI cannot do math — and most astrology apps pretend it can. Language models can't reliably do spherical trigonometry or calculate planetary degrees. Most AI astrology apps let the LLM do everything — generate charts, compute positions, interpret results — which produces confident-sounding but astronomically wrong readings. I had to fully separate the calculation layer (deterministic NASA JPL math) from the interpretation layer; the AI never sees a calculator, only pre-verified numbers.
Stopping hallucinations across three languages. Even with pre-computed data, the AI sometimes invents planetary placements that aren't in the chart. Catching these hallucinations meant pattern-matching across English ("Jupiter in the 7th house"), Hindi ("सातवें भाव में गुरु"), and Sanskrit terminology simultaneously — one missed variant, and a user gets false information wearing a confidence badge.
Making the crisis safety net impossible to bypass. When someone tells an astrology app "I don't want to live anymore," the worst possible response is a horoscope. No prompt injection, conversation history, or edge case could be allowed to trick the system into resuming astrology mid-crisis. The detector runs before any AI processing, and once triggered, the AI's entire system prompt is overridden to respond only with empathy and real helpline numbers — tested across English, Hindi, and Hinglish phrasing.
Licensing traps in open-source astronomy. I initially used Swiss Ephemeris, the industry standard, only to discover its AGPL-3.0 license would have forced me to publish the server's full source code under the same license. Migrating to NASA JPL DE440s + Skyfield took weeks of rewriting and re-benchmarking every calculation—the result: identical accuracy, zero licensing risk.
Building a subscription system that can't be cheated. An early client-side credit ledger was trivially exploitable via request replay. I scrapped it and rebuilt entitlements on RevenueCat's server-side verification — every AI request checks against RevenueCat's REST API before processing, with no local trust and no stored tokens.
Beating the Google Play clock, solo. Because I'm publishing under a personal Google Play account, Google's 14-day closed-testing rule required 12+ opted-in testers before the app could go live. With the hackathon deadline approaching, I gathered 15 testers and got the app into Closed Testing by September 11th — timed so the mandatory 14 days would finish right before submission.
Accomplishments that we're proud of
240+ automated tests passing. The pytest suite covers ephemeris accuracy against known historical charts, grounding logic across three scripts, entitlement gate enforcement, crisis detection across English/Hindi/Hinglish, and reproducible tarot shuffles.
The Grounded badge is visible to users. Most AI apps hide their verification step. Enuma Sky shows a ✅ Grounded badge on every verified reading, and flags it when verification fails — users see the math behind the reading, not just a claim.
Crisis intervention actually works, and is tested. The crisis path has been tested against real-world phrasing in three languages so it never fails silently. When it triggers, astrology stops completely and verified helpline numbers appear immediately.
14 seconds → 75 milliseconds. A dual-layer cache (in-memory + disk) cut AI response latency from 14 seconds to 75ms for repeat queries — faster for users, and cheaper on API costs.
Zero ads. Zero dark patterns. Zero fear. No pop-ups, no fake urgency timers, no fear-driven upsells. The core astronomical features are genuinely free forever, not free-trial-then-locked. RevenueCat's native paywall keeps the upgrade experience calm and honest.
Live in production on Google Play — solo, as a second-year student. A Python backend, a NASA-grade astronomy engine, an AI grounding system, and full RevenueCat subscription infrastructure, built entirely alone.
What we learned
LLMs should interpret, never compute. The moment a language model does the math, accuracy drops and hallucinations rise. The cleanest architecture is: deterministic code computes, AI translates — not just good engineering, but the only way to build trust in a domain where wrong numbers can shape someone's real decisions.
Ethical software is a competitive advantage. Every astrology app in the market uses fear to drive engagement. Refusing to do that — no doshas, no doom, no fake remedies — doesn't just feel different, it is different, and users notice when an app respects them instead of manipulating them.
Monetization doesn't have to be manipulative. RevenueCat made it possible to keep the free tier genuinely generous (all math, all courses, all tarot) and the paid tier genuinely valuable (unlimited AI conversations) — no countdown timers, no "your trial expires in 2 hours" pressure.
You don't need years of experience to ship something real. I started this as a second-year Data Science student. Tools like Expo, Supabase, RevenueCat, the AI API, and Skyfield make it possible for a solo builder to ship something that would have needed a full team just a few years ago.
What's next for Enuma sky
iOS launch is the immediate next step. Enuma Sky is built with Expo + EAS, which fully supports both iOS and Android from the same codebase — no rewrite needed. The iOS build has been tested and the pipeline is ready. Once Apple Developer Program enrollment is complete, Enuma Sky ships to iOS.
Going global — worldwide city coverage. The app currently supports roughly 3,000 Indian cities for birth location (entered manually, since a chart depends on where someone was born, not where they are now). The next step is expanding that gazetteer worldwide.
Western Astrology (Tropical Zodiac): Adding support for Western charts to cater to a global audience. Since our underlying astronomy engine (Skyfield) already performs high-precision planetary calculations, integrating the Tropical Zodiac system will be a seamless update that significantly expands our user base in the West. Deepening the 38-chapter course. The plan is to make it richer — more chapters, deeper explanations, and stronger personalized "In Your Chart" examples that make every lesson feel written for the reader.
Multi-language expansion. The app currently supports English, Hindi, and conversational Hinglish. Adding regional Indian languages — Tamil, Telugu, Bengali, Marathi — would reach more of the people most vulnerable to fear-based exploitation in their own language.
Real-time voice conversation with AI. Integrating a multimodal live API for real-time voice would replace the exploitative pay-per-minute human astrologer call model with a calm, ethical, and infinitely scalable AI voice companion.
Built With
- expo.io
- fastapi
- gemini
- nasa-jpl
- postgresql
- python
- react-native
- render
- revenuecat
- skyfield
- supabase
- typescript
- vscode
Log in or sign up for Devpost to join the conversation.