Inspiration

A family day dies in the overlap. School pickup and a dentist at the same hour. A shift that runs late and a kid who still needs collecting. The information was always there — just never in one place, and never compared.

Family Spot started from that: one shared household plan, and a system that flags the clash before someone is already late.

What it does

Everyone in the house sees the same events and tasks. Home is today as an arc and a timeline. Calendar is the month. Tasks know whose turn it is. Reminders go to the right phone.

The part no other planner does: it compares every event and open task that shares a person — including “Everyone” — and marks a real overlap. Back-to-back is fine. A true collision is not.

The planner is free. A monthly or yearly Pro subscription unlocks two things that cost to run: Plan with AI (type or speak a note into draft cards) and calendar import from the phone.

Live on the App Store. Android is coming soon. Site: familyspot.org.

How we built it

  • Expo / React Native (SDK 57) — one codebase, iOS first
  • Supabase — auth, households, events, tasks, and row-level security so a household only sees its own plan
  • Expo Push — reminders to the member the item is for
  • OpenAI — speech-to-text and “one sentence → several draft cards,” confirmed before anything saves
  • RevenueCat — hosted paywall, monthly / yearly, Restore, Terms, Privacy
  • Firebase Crashlytics — crash reports from store builds

Challenges we ran into

Two splash screens. The native splash and the JS splash had to be the same pin, same size, same place — or the logo jumped. That meant tying the PNG coverage, imageWidth, and the in-app mark together.

Whisper guessing in different locale. Short or quiet clips with no language hint were getting the wrong script. The fix was not “use the phone locale” — it was confidence checks on verbose_json and rejecting junk instead of shipping a bad guess.

A custom paywall vs App Review. Guideline 3.1.2 wants name, duration, price, Restore, Terms, and Privacy on an auto-renewing subscription. We dropped the hand-built screen and let RevenueCat’s paywall own that.

Crashlytics on EAS. Expo copies GoogleService-Info.plist into the app folder; Crashlytics’ upload script looks in ios/. One extra copy at prebuild unblocked the production build.

Accomplishments that we're proud of

Shipping a real App Store app, not a demo: shared households, overlap detection that is a plain rule (not a guess), and a free planner that stays useful if you never buy Pro.

Getting the splash to hold still. Getting speech to detect language from the audio, not the phone. Getting a paywall Apple will actually accept.

What we learned

A family app is not a work tracker with friendlier colors. The hard problem is who an item belongs to, and whether two of those collide. Once that rule is plain and stable, the rest of the product can stay quiet.

Also: never invent a paywall Apple already has rules for, and never trust a speech model’s first guess on a two-second clip.

What's next for Family Spot

Android on Google Play. Sign in with Apple and Sign in with Google, so nobody has to invent another password just to join the household.

Then optional member location — see who’s already at school pickup or still on the road, on the same plan as the events. Off unless you turn it on, and only visible inside the household.

After that: clearer conflict fixes, and keeping the free planner the product — not a trial.

Built With

Share this project:

Updates

Submission history