What Firefly collects
Firefly is built so that nothing about your child leaves your phone. Your child's name, your notes, and your check-in answers are stored on your device and are never sent anywhere.
What follows is the complete list of the anonymous usage events the app can send, so you can see it rather than take our word for it. This page is generated from the app's own source code, and the build fails if it ever stops matching what the code does.
None of it is sent unless you say yes. Firefly asks once, when you first open it, and analytics stay off until you agree. If you say no, or simply never answer, nothing on this page is ever sent. You can change your mind either way in Settings.
If you do say yes, every event is tied to a random identifier created at that moment. It is not your Apple ID, not your device's advertising identifier, and not anything about you or your phone. If you never agree, no identifier is created at all. Deleting the app deletes it.
The events
| Event | What it tells us |
|---|---|
onboarding_completed | That you finished setting up, your child’s age range, and how many focus areas you chose. |
activity_viewed | Which activity you opened, and which part of the app you opened it from. |
observation_saved | That you saved a note, which activity it was for, how many chips you tapped, and whether you typed anything — never what you typed. |
plan_entry_added | That you added an activity to your weekly plan. |
plan_day_completed | That a planned day was completed, and which weekday it was. |
favorite_added | That you saved an activity to favourites, and which one. |
favorite_removed | That you removed an activity from favourites, and which one. |
checkin_started | That you opened the check-in. Never any of your answers. |
checkin_completed | That you finished the check-in. Never any of your answers. |
reminder_scheduled | That you turned on a daily reminder, and which hour you chose. |
reminder_opened | That you opened the app from a reminder. |
paywall_viewed | That a paywall was shown, and what prompted it. |
purchase_completed | That a purchase completed, and which product. |
export_generated | That you exported your notes, the format, and roughly how many notes (a range, not a count). |
app_opened | That the app was opened, and roughly how long you have had it installed (in days). |
session_ended | Roughly how long a visit lasted, as a range such as “1–3m”. |
screen_viewed | Which screen was shown. |
activity_engaged | Which activity you spent time on, and roughly how long, as a range. |
Never collected
- Your child’s name, or any name.
- The text of any note you write.
- Any answer you give in the check-in.
- Any score, result, or assessment — Firefly does not compute one.
- Your email, phone number, contacts, photos, or location.
- Your device’s advertising identifier. Firefly does not track you across apps or websites.
- Screen recordings. Firefly has session replay switched off, permanently.
- Anything at all unless you have said yes to analytics.
Who receives it
PostHog (United States). Firefly sends the events above to PostHog, which stores and charts them on Firefly’s behalf. PostHog is a data processor: it does not sell data and does not run an advertising business.
Nothing about your child is included, so nothing about your child reaches them either.
Numbers are always ranges
Where an event mentions an amount — how long a visit lasted, how many notes you
exported — it is sent as a range such as 1–3m or 6-20, never an exact
figure. An exact count of a child's activity is more identifying than it looks.