Privacy Policy
Effective date: September 24, 2026
1. Introduction
This Privacy Policy explains how TreeLinker ("we," "us," or "our") collects, uses, stores, and protects your information when you use the TreeLinker mobile application. Where required by law, we will ask for your consent before accessing information such as your contacts or sending notifications.
This policy applies to the TreeLinker mobile application only — not to third-party services linked from within the app.
2. Our Core Philosophy: Local-First & User-Owned
TreeLinker is built with a local-first architecture:
- On-device storage is primary. Your family tree, contacts, memories, and photos are stored in a local database on your device. Every read operation hits local storage first, and the app remains fully usable while offline — anything you create while disconnected is saved locally and sent when a connection returns.
- Your data is saved to your account. The family connections, tags, memories, timeline entries, group membership and favourites you create are stored in our cloud database, so they can be restored if you reinstall the app or sign in on another device. There is currently no setting that turns this off. If you would prefer we did not hold your data, you can delete your account, which erases it.
- Your data is private to you. What you store is kept under your own account and is not visible to other users, unless you choose to share it — by adding a memory to a group, by inviting someone to one, or by sending a family tree or a tag to another user.
- You own your data. You can delete your data at any time. Account deletion permanently erases all of your information from both local storage and our remote servers.
3. Information We Collect
We collect only what is necessary to provide the app's features.
Account & Profile Information
When you register, we collect your first name, last name, email address, phone number, and country code. Optionally, you may add a biography, location, and profile photo. Your password is hashed using the bcrypt algorithm before storage — we never retain your password in readable form.
Device Contacts
With your permission, TreeLinker securely processes your device contacts to help identify people you already know who use the app. Only normalized phone numbers are transmitted to our cloud database for matching. Contact notes, addresses, email addresses, photos, and other contact information remain on your device and are never uploaded.
Address Book Backup, Restore and Duplicates
You can back up your device address book, restore it from a backup, and find and merge duplicate contacts. A backup is a single file containing the contacts on your device — names, phone numbers, email addresses and the other fields your address book holds. It is created on your device and saved wherever you choose, which may include a cloud storage service you use; TreeLinker never uploads it to our servers and cannot read it afterwards. Backup files are not encrypted by the app, so keep them somewhere you trust.
Restoring a backup or merging duplicates adds, updates or deletes contacts in your device address book. This happens only when you start it, and the app shows you what will change first. Before any restore or merge changes your contacts, TreeLinker automatically keeps a safety copy in the app's private storage on your device so the change can be undone; these copies are removed after a limited time and are never uploaded.
Names of People in Your Family Tree
When you add someone to your family tree, the name you have saved for that person is stored in your account alongside the relationship itself. This is what allows their name to come back if you reinstall the app or sign in on another device — without it, people who are no longer in your address book would reappear unnamed. This applies only to people you have placed in your tree, never to your address book as a whole. The name is private to your account: it is stored against your own record of that person, it is never shown to another user, and no other account can read it. You can remove it by removing the person from your tree, or by deleting your account.
Relationship Graph & Memories
We store the family connections you create, their relationship types, and the structure of your tree. We also store memories you associate with contacts or groups: text content, key dates, locations, and photos.
Photos
Photos are stored securely on your device. If cloud synchronization is enabled, photos are securely transmitted over encrypted connections and stored in our cloud database to keep your memories available across your devices.
Family Member Information
TreeLinker allows you to create family profiles for relatives and other individuals. You are responsible for ensuring that you have the right to store and share information about these individuals. Information about family members and other people in your contacts is only shared when you explicitly choose to invite other users, share a group, or send a family tree or a tag to another user.
Caller Identification (Android only)
If you turn on Caller Identification in Settings, TreeLinker requests two Android permissions: call screening, so it can see an incoming call's number before you answer, and display over other apps, so it can show a card over your call screen. Both are optional, requested only when you enable the feature, and can be revoked at any time in your device's settings.
Matching happens entirely on your device: the incoming number is compared against your own saved contacts, and is never sent to our servers to identify who is calling. When it matches a contact you already hold, a card appears showing how you know them — a short phrase we suggest (for example "your cousin" or "Safa's sister") or one you have written yourself, any groups or tags you have given them, their birthday, and your most recent note about them. Because that note can appear on the ringing screen, anyone near your phone at that moment can read it. A caller who does not match a contact you already hold gets no card, and nothing about them is looked up, stored, or sent anywhere.
If you write your own phrase for how a contact appears (their "Caller Name"), it is stored on your account the same as any other note, so it is restored if you reinstall the app or sign in elsewhere. The phrases TreeLinker suggests for you are computed on your device and are not stored anywhere unless you keep one by editing it. Every identified call is also recorded as an entry on that contact's timeline, kept on your account like the rest of your timeline. None of this — the card, the Caller Name, or the call record — is ever visible to the caller or to any other TreeLinker user.
Push Notification Tokens
To send you real-time alerts about group invitations and shared memories, we collect your device's Firebase Cloud Messaging (FCM) token. You can disable push notifications at any time in your device's system settings or in TreeLinker's Settings screen.
Notification Preferences
We store your per-category notification preferences so your choices persist across sessions and devices.
Technical & Session Data
When you log in, we store a session identifier and last-activity timestamp in the secure keychain on your device. Sessions expire automatically after 30 days of inactivity.
4. App Permissions
TreeLinker requests access only to the permissions necessary to provide its features. You can grant or revoke these permissions at any time through your device settings.
| Permission | Purpose |
|---|---|
| Contacts | To identify friends and family who already use TreeLinker and help you build your family tree. TreeLinker adds, updates or deletes contacts in your address book only when you start a restore or remove duplicates yourself, and always shows you what will change first. |
| Notifications | To send invitations, shared memories, and other account-related notifications. |
| Photos | To allow you to attach photos to memories and profile pictures. |
| Camera | To capture photos directly from the app. |
| Location | Only when you choose to attach a location to a memory or use optional location-based features. |
| Call Screening (Android) | Only if you enable Caller Identification in Settings. Lets TreeLinker see an incoming call's number before you answer, on your device, so it can show you how you know the caller. TreeLinker does not read your call history and cannot see who you have called. |
| Display Over Other Apps (Android) | Only if you enable Caller Identification in Settings. Lets the caller-identification card appear over your incoming-call screen. |
5. How We Use Your Information
Your information is used exclusively to provide and improve TreeLinker:
- To create and maintain your account and authenticate your sessions.
- To build, display, and navigate your family relationship graph.
- To synchronise your data across your devices when remote sync is enabled.
- To identify which of your contacts are registered TreeLinker users.
- To send push notifications about group invitations and new memories, when enabled.
- To allow you to share memories and group memberships with users you explicitly invite.
- To support password recovery when you request a reset code.
- To delete all of your data when you choose to close your account.
We do not use your information for advertising, profiling, or marketing purposes.
7. Third-Party Services
TreeLinker uses trusted third-party providers to operate certain features. These providers act only on our instructions and are not permitted to use your data for their own purposes.
| Provider | Purpose |
|---|---|
| Neo4j AuraDB | Neo4j AuraDB is our secure cloud graph database. When cloud synchronization is enabled, it stores your family relationship graph and other synchronized data so your information can be accessed across your devices. |
| Firebase Cloud Messaging | Delivery of push notifications. Firebase processes your FCM token solely to route notifications to your device. |
| Firebase Analytics | Understanding how the app is used, so we can improve it. See Analytics and Cookies below for exactly what is collected. |
| Firebase Crashlytics | Crash and error reports, so we can find and fix problems. A report contains technical details of the error and your device, and your TreeLinker account ID so we can investigate a problem you report. |
| Firebase Remote Config | Turning app features on or off and checking whether your app version is still supported, without requiring an app update. It uses a Firebase installation identifier and no personal information. |
| Google Play In-App Review (Android) | Occasionally asking whether you would like to rate TreeLinker. The rating and any review you write are handled by Google Play under Google's own privacy policy; TreeLinker never sees them. |
8. Children's Privacy
TreeLinker is not directed to children under the age of 13. We do not knowingly collect personal information from children under 13. If you are a parent or guardian and believe your child has provided personal information without your consent, please contact us at treelinkerapp@gmail.com.
If we learn we have inadvertently collected personal information from a child under 13, we will delete that information as quickly as possible. If you are located in the European Economic Area, the age threshold may be 16 in some member states.
9. Data Retention
We retain your information for as long as your account is active or as needed to provide the service:
- Local data — retained on your device until you delete the app, reset your device, or delete your account.
- Remote graph data — retained while your account is active. Permanently deleted when you delete your account.
- Password reset codes — automatically deleted after use, or after 24 hours if unused.
- Push tokens — removed from our systems when you log out or delete your account.
- Group invitation records — retained for as long as the associated group exists.
- Shared family trees — the names and phone numbers included in a shared tree are held for 30 days from the moment you send it, and are then permanently deleted, whether or not the recipient ever opened it. After that the share can no longer be opened. Relationships the recipient has already saved become part of their own records and remain, as any relationship they entered themselves would.
- Shared tags — the tag's name, and the names and phone numbers included in a shared tag, are held for 30 days from the moment you send it, and are then permanently deleted, whether or not the recipient ever opened it. After that the share can no longer be saved. Contacts and tags the recipient has already saved become part of their own address book and records, and remain.
If cloud synchronization is enabled, encrypted backup copies of synchronized data may temporarily exist as part of our disaster recovery procedures. These backups are retained only as long as necessary to ensure service reliability and are automatically removed according to our retention policies.
You can initiate complete deletion of all your data at any time through Settings → Delete Account in the app.
10. Your Rights and Data Control
You have meaningful control over your data:
| Right | What it means | How to exercise it |
|---|---|---|
| Access | See what personal data we hold about you | Email treelinkerapp@gmail.com |
| Correction | Fix inaccurate or incomplete information | Edit your profile in-app or contact us |
| Deletion | Permanently erase your account and all associated data | Settings → Delete Account |
| Portability | Receive a copy of your data in a portable format | Email treelinkerapp@gmail.com |
| Restriction | Limit how we process your data in certain circumstances | Email treelinkerapp@gmail.com |
| Objection | Object to processing based on legitimate interests | Email treelinkerapp@gmail.com |
California Residents (CCPA)
You have the right to know what personal information we collect and whether it is sold or disclosed (it is not sold). You also have the right to request deletion of your personal information and to non-discrimination for exercising your rights. Contact us at treelinkerapp@gmail.com.
EEA & UK Residents (GDPR)
Your personal data is processed on the legal basis of contractual necessity (to provide the service you signed up for) and, where applicable, your consent. You have the right to lodge a complaint with your local data protection authority at any time.
International Transfers
Depending on your location, your information may be processed or stored in countries other than your own. Where required by applicable law, we implement appropriate safeguards to protect personal information during international transfers.
11. Security and Protection
We implement the following protections to keep your data secure:
- Passwords are securely hashed using bcrypt before storage. We never hold your password in readable form.
- All communication with cloud services is encrypted using HTTPS/TLS.
- Session tokens are securely stored using the platform's secure storage mechanism (Android Keystore).
- Access to cloud infrastructure is restricted to authorized personnel only.
- Password reset codes automatically expire after 24 hours and become invalid after repeated failed attempts.
- Sessions expire automatically after 30 days of inactivity.
No method of electronic transmission or storage is 100% secure. If you believe your account has been compromised, contact us immediately at treelinkerapp@gmail.com.
12. Analytics and Cookies
TreeLinker does not use cookies. As a native mobile application, it does not operate in a browser context and does not set or read browser cookies.
We use Firebase Analytics to understand how TreeLinker is used and to improve it. The app records which screens are opened and when certain actions happen — for example signing in, creating a group, adding a relationship, backing up contacts, or finishing a Feature Tour topic. Some events include a type or a count (such as the kind of relationship added or how many contacts a backup held) or an internal record identifier. Events never include names, phone numbers, email addresses, or the content of your memories, notes, timeline or contacts. Firebase also automatically collects standard technical information such as an app-instance identifier, device model, operating system, app version, and approximate region.
We use Firebase Crashlytics to receive crash and error reports, as described in Third-Party Services above.
We do not use this information for advertising, we do not sell it, and we do not combine it with information from other companies to track you across apps or websites.
13. Changes to This Policy
We may update this Privacy Policy from time to time. When we do, we will revise the effective date at the top of this page. For significant changes, we will notify you through a prominent notice in the app or by email before the changes take effect.
Your continued use of TreeLinker after any change constitutes your acceptance of the updated policy.
14. Contact Us
For any privacy-related questions or requests, please reach out to us by email. We aim to respond to all enquiries within 14 days.
- Request a copy of your personal information
- Request correction of inaccurate information
- Request deletion of your account
- Request a data export
- Ask any privacy-related question
For account deletion, you can also initiate the process directly in-app through Settings → Delete Account, which immediately begins erasing your data without any waiting period.