Case Study

AstroDeep

The first astrology app built to prove itself wrong. A citizen science platform with 55+ statistical engines, a falsification report, and the intellectual honesty to show you what the data actually says.

Status In Development
Role Solo Developer
Background Senior-Year Psychology Major
Stack React Native · Expo · Supabase
Engines 129 Service Modules

What if you actually tested it?

Astrology has 4,000 years of tradition and zero controlled trials. Its critics dismiss it without testing it. Its believers accept it without questioning it. Both sides are intellectually lazy.

I wanted to build the instrument that could actually answer the question: do astrological models predict personality and mood better than chance? Not with opinion. With data. With blind tests. With pre-registered predictions and falsification reports that explicitly show you where the theory breaks down.

And if the traditional model fails — maybe the mechanism isn't archetypal. Maybe it's closer to influence. Photoperiod imprinting. Geomagnetic modulation. Circadian calibration. Physical mechanisms that happen to align with the same celestial calendar astrologers have been watching for millennia.

Even if the system can't build a new model of astrology, the features are fascinating enough to stand on their own. Theories that can't be wrong can't be right.

56

Statistical Engines

44

Astro Services

12

Bio Layers

36

Specification Variants

3

Competing Models

0

External ML Libraries

Three layers of decreasing certainty

Instead of treating astrology as one monolithic claim, I decomposed it into three testable layers — each with a different evidence grade and a different physical mechanism. The app pits them against each other and lets the data decide.

Established — Strong Evidence

Layer 1: Photoperiod Imprinting

Birth season's day length permanently calibrates the suprachiasmatic nucleus — imprinting dopamine, serotonin, and melatonin systems. Predicts chronotype, seasonal sensitivity, and mood patterns. Replicated in Nature Neuroscience (Ciarleglio et al., 2011). This is real biology that happens to align with the tropical zodiac calendar.

Emerging — Physically Grounded

Layer 2: Cosmic Ray Flux

Different ecliptic sectors face different galactic radiation levels. Sidereal position indicates which sector at birth. Could influence radiation exposure and immune programming. No direct evidence yet, but the mechanism is testable and physically real.

Correlational — Weaker Evidence

Layer 3: Geomagnetic Modulation

Planetary magnetic fields modulate solar wind and geomagnetic activity. Current transits could influence biological rhythms through magnetosphere interactions. Measurable but correlational. This is where traditional transit astrology lives.

Every analysis in the app is tagged with its evidence grade. The user always knows what's established science, what's plausible speculation, and what's pure tradition.

What made this difficult

  • Client-side ML with no libraries PCA, k-means clustering, decision trees, Bayesian updating — all implemented in pure TypeScript. No scikit-learn, no TensorFlow. Everything runs on-device for privacy and offline capability. Finding out what writing a PCA decomposition entails is humbling, and teaches you how much linear algebra you've... let's say, "forgotten."
  • Multiple testing correction at scale Each user can generate 60+ statistical tests (12 signs × 5 personality traits). Without correction, you'd expect ~3 false positives by chance alone. Benjamini-Hochberg FDR control across all categories prevents the app from lying to users with noise dressed up as signal.
  • Timezone and DST precision Off by one hour changes house cusps, which can flip an entire chart interpretation. Standard UTC offsets don't account for DST. Integrated Google Timezone API for DST-aware calculations with IANA database fallback. Birth time accuracy is everything in natal astrology.
  • Small-N time series analysis Users have 20–100 daily mood ratings, not thousands. Granger causality testing needs careful lag selection with limited data. Solution: multiple lag windows, Mann-Whitney U when normality fails, explicit uncertainty reporting. The app never overstates what small samples can support.
  • Confirmation bias by design Users know their chart before rating their mood. You can't fully blind them to the product they're using. Mitigation: blind validation tests (real chart vs randomized shadow chart), retrodiction (predict past moods before seeing data), and a specification curve that tests 36 analytical variants to show which findings survive scrutiny.

The falsification report

This is the feature I'm most proud of and the one no astrology company would ever ship. The falsification engine reads every testable prediction the app has made for you, checks what your actual data contradicts, and presents severity-graded disconfirmations.

Strong disconfirmation: effect size |d| ≥ 0.5. Mild: 0.2–0.5. None: below 0.2. Categories span personality predictions, bio-layer effects, transit forecasts, and blind test accuracy. All corrected for multiple testing via FDR.

The app doesn't just tell you what's working. It tells you what's failing. Every claim is grounded in your data, not in tradition. If your Sun sign traits don't match your Big Five scores, you'll see it in black and white.

Most apps sell you confirmation. This one sells you the truth — and trusts that the truth is more interesting than comfort.

An astrology app with a falsification engine is either the most honest thing in the category or the worst business decision. Probably both.

How it's built

Offline-first React Native with Expo. Twelve Zustand stores manage state across 31 screens. The 129 service modules break down into 44 astronomical calculators and 56 statistical engines, plus AI interpretation, cloud sync, and export services.

Authentication and cloud sync through Supabase with row-level security — users see only their own data. AI interpretations via Claude through Supabase Edge Functions. Dual-mode theming — Solar and Void — same statistics, different perspective.

The dual-mode system deserves its own explanation. Solar is warm, growth-oriented, the trusted mentor voice. Void is dark, incisive, unsparing — the cosmic interrogator who tells you what you didn't want to hear. The inspiration for Void came directly from Stella Hyde's Darkside Zodiac — a book that treats astrology with intelligence and zero sentimentality, describing every sign by its worst tendencies with a tone that's equal parts devastating and hilarious.

Most astrology apps only give you the flattering version. But psychology teaches you that personality has shadow. Every strength has a pathological extreme. Every gift has a cost. Offering both Solar and Void isn't a gimmick — it's a commitment to psychological honesty. You should be able to see your chart from the angle that builds you up and the angle that keeps you honest. Balance requires both.

React Native Expo 54 TypeScript Zustand Supabase astronomy-engine Claude AI RevenueCat Pure TS ML

The honest retrospective

Building something designed to disprove its own premise is a strange experience. Every feature I added made the app more useful and more likely to show that the thing it's measuring might not exist. That tension turned out to be the product's greatest strength.

The three-layer model was the breakthrough. Instead of asking "is astrology real?" — a question too blunt to be useful — the app asks "which specific mechanisms, if any, produce measurable effects?" Photoperiod imprinting is real science. Geomagnetic modulation is measurable. Traditional transit astrology is testable. Separating them lets each stand or fall on its own evidence.

The biggest unsolved problem is confirmation bias. Users know their chart. You can't fully blind someone to the product they chose to download. The blind test and retrodiction systems help, but a true answer would require an external randomized controlled trial. The app is the instrument. The experiment hasn't been run yet.

Where this goes depends on the data. Maybe the system builds a new model. Maybe it cleanly disproves the old one. Maybe the truth is stranger than either — closer to influence than archetype, closer to biology than myth. The point was never to have the answer. The point was to build something honest enough to find it.

The app that works regardless

Here's the thing people miss when they hear "astrology app with a falsification engine": even if every research engine returned null results tomorrow, you'd still have a genuinely useful application.

The biological layers alone are worth the download. Photoperiod imprinting is established neuroscience — understanding how your birth season calibrated your circadian system, your chronotype, your seasonal sensitivity patterns. That data is real, it's personal, and most people have never seen it. Layer the emerging research on top — geomagnetic sensitivity, immune programming by season, epigenetic imprinting — and you start getting a biological portrait of yourself that's genuinely interesting, whether or not it has anything to do with Jupiter.

Then there's the astrology suite itself. For the millions of people who work with astrology as a daily practice, AstroDeep is a serious tool: natal charts, transit tracking, synastry, progressions, astrocartography, AI-powered interpretations in two distinct voices. The validation engine runs quietly in the background. You don't have to care about the research to get a full-featured astrology experience. But if you're curious — if you want to know whether what you're feeling actually tracks — the data is there waiting.

And the comparative data is fascinating on its own. Watching three prediction systems compete in real time — tropical, sidereal, chronobiology — seeing where they agree, where they diverge, which one actually predicted your Tuesday. That's interesting regardless of where you land on belief. It turns something personal into something measurable without taking the personal out of it.

Full disclosure: I'm on team believers. But I also think knowledge has a way of getting obscured over time — buried under centuries of telephone-game transmission, cultural drift, and systems that stopped asking whether they were right because they were too busy being popular. If astrology carries real signal, it deserves better than faith. It deserves an instrument precise enough to find it.

And if the signal turns out to be biological rather than celestial — photoperiod rather than planetary archetype, influence rather than identity — that's not a failure. That's a discovery. The zodiac might be a calendar that accidentally mapped something real. The only way to know is to build something honest enough to look.

Standing on shoulders

None of this exists without the people who built the foundations. The astronomers who mapped planetary motion with enough precision to make ephemeris calculations possible in a phone. The astrologers who preserved and transmitted four millennia of observational tradition, even when the culture around them stopped taking it seriously. The medical researchers — Ciarleglio, Halberg, Foster, Roenneberg — who gave photoperiod imprinting and chronobiology the empirical rigor to stand as real science. The mathematicians and data scientists who developed the statistical methods that let a mobile app run FDR-corrected hypothesis testing on a sample of one.

This app is a bridge between traditions that don't usually talk to each other. The least I can do is thank the people on both sides for building something worth connecting.

Back to Portfolio