Case study · Moonlight Phases

We built a moon guide that works anywhere, with no server

Susan Miller’s Moonlight Phases shows moon phases, the moon’s sign and void-of-course times in local time through 2050, sold once, with no servers to run.

Moonlight Phases app icon
Client
Susan Miller Omni Media
Industry
Astrology publishing
Timeline
2021 – present
Services
Mobile apps, Notifications, App Store & Google Play releases, Maintenance
Platforms
iOS, Android

The opportunity

Susan Miller’s readers plan around the moon: its phase, its sign, and above all when it’s void of course, the hours when astrologers advise against starting anything important.

Void-of-course tables are published in Greenwich Mean Time, so readers had to convert every time to where they live, and again when they travel. Susan wanted an app that does it for them, in her voice, sold once with no subscription.

What we built, and why it mattered

Void-of-course times, wherever you are

Readers had to convert Greenwich Mean Time tables to their own time zone, and again on every trip.

Every time is stored in UTC and shown in the reader’s own time zone, so it follows them when they travel. The home screen shows the moon in its current sign, today’s phase, and whether the moon is void and until when.

Why it mattered: Readers get the exact local time at a glance, with no tables and no math.

Moonlight Phases App Store screenshot, cropped: today’s void-of-course, phase and sign times
Today’s phase, void-of-course times and the moon’s sign.

Decades of moon data, no server

A one-time purchase can’t pay for servers year after year.

Every moon phase, sign change and void-of-course period from 2005 through 2050 ships inside the app and loads a month at a time. A monthly calendar marks each day the moon changes sign; tap a day for its exact times.

Why it mattered: The app works offline and costs nothing to run, which is what makes a one-time price work.

Moonlight Phases App Store screenshot, cropped: a monthly calendar with the moon’s sign on the days it changes
A monthly calendar of the moon’s signs.

Reminders that still arrive

Readers want a heads-up before the moon goes void or changes sign.

Readers can turn on reminders for new phases, sign changes and void periods, scheduled on the phone with no server. Where newer Android versions block exact alarms, reminders fall back to approximate timing instead of being dropped.

Why it mattered: Reminders arrive on every phone, with nothing to run on our side.

Moonlight Phases App Store screenshot, cropped: one day’s moon events with exact times
Each day’s moon events, with exact times.

Susan’s guidance, built in

Knowing the moon is void isn’t enough. Readers want to know what to do about it.

Susan explains the eight phases of the moon, what each moon sign favors, and what to do, or avoid, while the moon is void, in the warm, plain style her readers know.

Why it mattered: The app doesn’t just report the moon. It tells readers how to use it, in Susan’s voice.

How we built it

One React Native app for both stores

A single React Native codebase ships to the App Store and Google Play, with Lottie for the moon’s animation and Redux to remember each reader’s settings.

UTC in, local time out

Moon events are stored in UTC and converted on the phone, and tests pinned to different time zones check that void periods crossing midnight show correctly.

A month at a time

Decades of moon data stay in the app bundle, and the app reads only the month on screen, caching each month as it goes.

Native code where Android needs it

A small Kotlin module and a patched notification library keep reminders working on newer Android versions, where exact alarms need special permission.

Technology

  • React Native
  • TypeScript
  • Redux
  • React Navigation
  • Lottie
  • Kotlin
  • Firebase

How we work together

We built Moonlight Phases from its first commit in May 2021 and still maintain it: releases to both stores, platform upgrades and fixes.

It shares a team with Astrology Zone, so Susan has one partner for both of her apps.

Next case study: Pulse Protocol: We power the platform behind Pulse Protocol’s medical travel network

All work

Got an app idea? Let’s build it.

Tell us where your app is today and where you want it to go.