Launching soon

Cosmic Solo

An AI-powered astrology app that helps you decide, not just scroll.

Role
Solo — design, engineering, product
Timeframe
2025 – 2026, ongoing
Stack
React NativeExpo SDK 54TypeScriptRedux ToolkitReact Navigation 6expo-secure-storeastronomiaOpenAIEAS Build
Links
App Storecosmicsolo:// deep link
Cosmic Solo home screen
Context

Why this exists

Most astrology apps are horoscope feeds — entertainment tuned for scrolling. When people actually use astrology in their lives, though, they use it to decide something: take the job, have the conversation, sign the lease, send the message.

Cosmic Solo is built for that moment. You give it your birth data once, it computes your natal chart locally, and then it lets you ask real questions. The answers are grounded in your chart and today's transits, not a generic "Leos will feel emotional today."

Key decisions

Interesting calls

  • 01

    Compute the chart on-device, not in the cloud

    Used astronomia for planetary positions rather than routing birth data to a paid API. Lower latency, no third-party handling of birth date/time/location, and a meaningfully cheaper unit cost per user. Trade-off: larger bundle and no server-side backfill — acceptable for a consumer app.

  • 02

    Open-ended questions, not preset prompts

    The first prototype had a list of canned questions ("Should I take this job?"). It tested poorly — people want to ask their own thing. Shipping the free-form Ask screen meant wiring the user's full chart state into the prompt, but kept the product honest to how people actually think.

  • 03

    Secure storage for birth data

    Birth date/time/location is the most identifying thing the app ever touches. Put it behind expo-secure-store rather than AsyncStorage, even though the app runs offline and never transmits it.

  • 04

    Three EAS environments from day one

    dev / preview / production with distinct bundle IDs. Friction up front, but I can hand TestFlight builds to friends without worrying about data collision with my local dev installs. OTA updates via EAS Update on the preview track.

  • 05

    Deep linking scheme early

    cosmicsolo:// routes to every major screen (home, chart, ask, calendar, profile, onboarding). Costs nothing to add now; would be painful to retrofit later when I want to share "here's what today looks like for you" links.

Flow

Five screens, five decisions

  1. Cosmic Solo home screen
    01

    Home

    The daily view answers one question first — what's today actually about — before offering anything else. Transits are ranked by impact on the user's chart, not alphabetically.

  2. Cosmic Solo birth chart
    02

    Chart

    Full natal chart rendered from on-device computation. Tapping any planet or house opens a plain-English explanation rather than jargon — the bet is that beginners outnumber experts.

  3. Ask The Cosmos input screen
    03

    Ask The Cosmos

    Free-form input. The prompt that goes to the model includes the user's natal chart, today's transits, and the question — not the question alone. That's why the answers feel specific.

  4. Cosmic Solo calendar
    04

    Calendar

    Timing matters as much as the decision. The calendar surfaces favorable and unfavorable days for categories the user cares about, not every aspect that fires.

  5. Cosmic Solo profile screen
    05

    Profile

    Birth data lives here, behind secure storage. One profile for now; the architecture already supports multiple charts for compatibility readings, gated behind a later feature flag.

Architecture

How the pieces fit

Layer 1Input & identity
Onboarding
birth date / time / location
expo-secure-store
encrypted at rest
Layer 2Chart engine (on device)
astronomia
planetary positions
Natal chart
houses, aspects
Transit engine
today vs. natal
Layer 3State & navigation
Redux Toolkit
feature slices
redux-persist
session restore
React Navigation 6
stack + tabs
Layer 4Guidance
Prompt builder
chart + transits + question
OpenAI API
response grounding
Ask / Calendar / Home
display surfaces

Everything above the guidance layer runs on-device. The only network call is the grounded prompt to the language model — no birth data leaves the phone in plain text.

What I learned

Honest outcome

Publishing-ready is further than I'd hoped. The engine works, the flows feel right, and the UI holds up — but the long tail of App Store readiness (privacy policy wording, delete-account flow, rate limits, crash-free onboarding on older devices) is its own project. I'd rather ship it honestly than ship it fast.

The thing I'd tell someone building the same type of app: resist the urge to gate everything behind an account. On-device chart computation plus a single profile got me 90% of the product at 10% of the backend cost. The account system can come when it's needed for a feature users actually ask for, not for a growth funnel.