koda

Your space, your choices

Privacy policy

Last updated 13 October 2026

Koda is published by Rhys Glaskin, Glaskin Tech Industries. Contact rhys@glaskintechindustries.com about privacy, support or deletion.

Guest records and account records

You can read guides and keep records without an account. Guest dog profiles, training plans, journal entries, weight records, bookmarks and care dates stay on your device. When signed in, your account dogs and their records sync across your devices using Google’s Firebase service. Personal account dogs are visible only to you until you choose to share them with a family. These records help organise your dog’s care and training, including the daily plan. Koda does not use them to choose advertisements.

Removing the app or clearing its storage can remove local records. Device backups and restoration are controlled by your operating system and its settings. Backups you export contain the pet records you select; choose carefully where you store or share them.

Named guest dogs added to your account keep their existing record IDs. Dogs are never merged by name. An original device snapshot is retained for recovery. A durable account claim prevents those same device records being automatically copied into another account. Signed-in devices use the account’s selected dog instead of falling back to a device’s guest records.

Accounts and family sharing

If you create an account, Firebase Authentication processes your email address, chosen display name, password credentials and account identifier. It also processes connection information for authentication and security. Passwords are handled in protected authentication form. They are not stored in shared pet records or passed to advertising services.

Branded account emails are delivered through Resend. It processes your recipient email, display name when included, and the account action link to deliver verification and password-reset messages. Email delivery information may be processed outside Australia. We do not send pet journals or photos to Resend, and we do not add email open or click tracking to these messages.

Password-reset requests are briefly queued with their email address and prepared message encrypted. Requests expire after 30 minutes and are removed after processing or during cleanup. Short-lived security counters use keyed hashes of email addresses and connection addresses to limit repeated requests. Their expiry is set to 24 hours, with automatic deletion happening asynchronously afterward. Provider delivery records have their own retention periods.

For account dogs, Firestore stores profiles, goals, training plans and results, journals, routines, weights, saved guides, preparation checklists, care reminders, repeating schedules and recorded outcomes. Your current dog selection is also stored with your account so signed-in devices open the same dog. These records are linked to your account identifier. A personal dog’s records remain private until you choose to share that dog.

Family sharing stores pet profiles, journal text, routines, weights, session results, goals, plans, saved guides, checklists, care reminders, repeating schedules and recorded outcomes in Google Firestore. Shared photo memories are described below. We also store family names, member names and account identifiers, ownership, roles, invitation details, record attribution and changes needed for sync. These membership relationships connect the people you choose to share with. Koda does not read your device’s address book.

Family members can read shared pet records and member details. Editing depends on their roles. Joining a family does not share your personal dogs. Sharing a dog, or combining it with an existing family dog, requires a preview and confirmation. Its records, saved guides, repeating care and photo memories become one family history. Future entries and changes use that same shared dog across your signed-in devices, and it appears once in your pet list. Earlier source records and photos can remain as protected recovery copies until account deletion; they are no longer a separate dog for everyday logging. Identifiers for locally scheduled phone notifications stay on that device and are excluded from shared pet records. Optional account phone alerts use separate private registrations, described below.

Your device keeps a sign-in session and downloaded account and family records for continued and offline access. Waiting changes sync when connected. Signing out clears downloaded account records after waiting edits have been resolved. A removed family member loses server access immediately, but an offline device learns of the change when it reconnects. Copies already exported cannot be recalled.

Our Firestore database is in Sydney, Australia. Google and Expo may process authentication, update, operational and support information in other countries. Cloud requests use encrypted connections. See Firebase’s privacy and service information.

Photo memories

You can choose individual photos to keep with an account dog. Uploading is optional. Koda compresses photos and removes embedded camera metadata, including location data. The photograph itself may still show identifiable people, places or details you choose to include. Captions, dates and author credits are stored in Firestore. Photo and thumbnail files are kept in a private Google Cloud Storage bucket in Sydney, Australia.

Personal dog memories are visible only to that account. A shared dog's photos are visible to its current family members. Contributors can manage their own memories; the family owner can manage the whole album. The server checks family access when serving images. Koda does not make public photo links or use these images for advertising. Images need an online connection and are held temporarily in app memory.

Sharing a personal dog with a family includes its existing photo memories, making them visible to that family along with new shared photos. Exported record backup files do not include photos. Removing a memory deletes that shared or personal memory’s photo and thumbnail. A protected source copy retained when a dog was shared remains until account deletion or a separate removal request. Account deletion removes the photos that account contributed and all photos in families it owns. Removed family members lose access, but their contributions remain unless removed separately or through account deletion. Other people's screenshots and saved copies cannot be recalled.

Advertising and privacy choices

The mobile Today, Train, Learn and trainer directory screens have banner placements to support Koda. Articles, guided practice, review forms, journals, care records and rescue browsing do not contain banners. Preview configurations use test ads; a configured production release can show revenue ads.

Koda requests non-personalised ads through Google AdMob. Google may process IP-derived approximate location, device and network details, app or device identifiers, ad and consent interactions, and diagnostic or performance information. This supports ad delivery, measurement, service operation, security and fraud prevention. Android advertising identifiers may be used when available. Non-personalised ads still involve this processing.

Koda does not pass account emails, pet names, journal text, training results, rescue searches or search coordinates into ad requests. Where required, Google presents privacy choices before ads are requested. Available choices can be reopened under Preferences, Privacy & ads. Core features remain available if you decline an available option or an ad cannot load. See how Google uses information from partner apps.

Trainer and rescue search and location

Trainer, puppy-school and rescue searches and distance calculations happen on your device. Location permission is optional and requested when you choose Use my location. Your search coordinates are not saved in pet records or sent with ad requests. Opening a provider website, professional directory or map connects to that service under its own privacy policy. Map links include the public provider destination, not your current coordinates.

Trainer reviews and partner applications

Reading published reviews does not require an account or pet profile. Submitting a review requires a verified account and your confirmation that it reflects your own experience. You choose a separate public name. When approved, that name, rating, review text and publication date are public. We do not publish your email, account identifier, family membership or pet records with a review.

Review submissions and edits are checked before publication. Moderators can see submissions, decision notes and reports. Reports and their details stay private. You can edit or remove your review and hide a review author from your own signed-in view. Hidden authors still contribute to the overall rating; hiding is a personal display choice. Removing a review removes its public copy and contribution to the rating. A private identity and revision record prevents delayed requests from restoring removed text.

Partner applications store your chosen contact details, provider claim and notes privately for review. Approval confirms access to partner tools, not professional accreditation. Public placement disclosures describe editorial selections or agreed promotion exchanges and their dates. Paid promotions will use separately configured Apple or Google Play monthly subscriptions; billing is not currently open. Reviews and ratings are independent of financial support.

Account deletion removes your reviews, public review copies, reports, hidden-author preferences, partner applications and partner memberships. Daily activity counters help limit abuse. Contact support to dispute a review, request a correction or raise concerns about a partner listing.

Content, app updates and diagnostics

Koda downloads content from Firebase Hosting and compatible app updates through Expo’s EAS Update service. Requests include ordinary connection information such as an IP address. Guides are cached for offline reading.

Update requests also send app and operating-system details and a persistent random identifier for this installation. The identifier remains across app launches and updates. A previous fatal start-up error may be sent with an update request to help diagnose a faulty update. Expo processes installation, update-use and diagnostic information to deliver updates and operate and measure its services. Koda does not attach private pet records to these requests. Read about Expo’s installation identifier and Expo’s handling of app-user data.

If account cleanup fails, our server error log records the account identifier, cleanup stage and error code so we can investigate. That error log does not include passwords or pet-note text.

Notifications

Guest care alerts can use one-time notifications scheduled on the device where you enable them, with your permission. Where account and family phone alerts are available, each person chooses the dogs they want alerts for on each phone and confirms the delivery time zone. Joining a family does not enable alerts. Repeating dates remain calendar-only.

Enabling account alerts stores a random installation identifier, Expo push token, device platform, account identifier, selected dog and household references, time zone, alert preferences, registration dates and delivery status in private Firestore records. Family members cannot read another person’s device settings or push token. These records are separate from the pet’s shared history.

Expo delivers remote notifications through Apple or Google. The services process device tokens and delivery information and may process information outside Australia. Notifications contain account, household, dog and reminder identifiers so Koda can open the correct calendar. Lock-screen text is generic and does not contain pet names, reminder titles, notes or photos. These identifiers are used for delivery and navigation, not advertising.

Enabled registrations renew when Koda is opened while connected and stop receiving alerts after 30 days without renewal. Expiry stops delivery; it does not immediately erase the registration record. You can disable a dog’s alerts or all account alerts on this phone. Signing out records an opt-out locally and requests a server disable. If the phone is offline, the request may wait until that account next connects. An alert already accepted by the delivery service can still arrive. Opening an account alert requires the matching signed-in account and current dog access. Expired device tokens are removed by bounded hourly cleanup. Ordering markers and dog preferences remain until they are changed or removed during account cleanup. Delivery and job records are eligible for cleanup 30 days after their due time. Account deletion removes registrations, alert choices and delivery records.

Selected history reports

You can preview and export a readable history report for one dog, a selected date range and selected record categories or topics. Calendar schedules and outcomes are optional and labelled separately. Family contributor names are optional. The dog’s name and original notes appear in the report, so check for personal information before sharing. Photos, other dogs and account contact details are excluded. Native report files are prepared in a private app cache. Files handed to the share sheet are retained briefly so the receiving app can read them. Files older than 24 hours become eligible for bounded cleanup when Koda next opens, returns to the foreground or prepares another report. This is not a guaranteed background deletion deadline. Failed exports are removed before sharing where possible. Copies saved or shared using your chosen destination cannot be recalled by Koda. JSON backups remain a separate, more complete export.

Partner subscriptions

Monthly partner promotions are being prepared and cannot currently be purchased. When enabled, the partner area will use RevenueCat with Apple App Store or Google Play to retrieve subscription options, confirm purchases, restore access and process subscription changes. Koda starts this billing connection only for an eligible signed-in partner using the partner area. Reading guides, recording your dog’s day and ordinary app startup do not initialise RevenueCat.

Koda provides RevenueCat with a random billing identifier specific to your Koda account, rather than your email or a device identifier. Our server keeps the link between that identifier, your account and the approved listing selected for promotion. The billing service processes purchase and subscription identifiers, product and store information, purchase history, subscription status, renewal and expiry information, and service connection information. This supports purchase validation, fraud prevention, subscription management and billing analytics. Because Koda can link the billing identifier to your account, this is account-linked data.

Koda does not send RevenueCat your email, chosen account name, dog profiles, journals, photos, family records or location searches as customer attributes. We do not connect partner billing to advertising attribution. Apple or Google handles payment credentials in its checkout; Koda does not collect payment card details. Billing providers may process information outside Australia. See RevenueCat’s privacy policy and the privacy information associated with your store account.

When a billing account is deleted, Koda removes its public promotion and local account associations, and queues a request to remove its RevenueCat customer record. The restricted cleanup queue retains the random billing identifier only until that request is accepted or confirmed unnecessary. Service outages can delay this separate cleanup. Minimal hashed purchase-binding and security information remains to prevent reassignment or replay. An accepted request means RevenueCat has queued its own deletion process. Store billing records are managed by Apple or Google and are not erased by deleting a Koda account. Contact us about access or deletion of billing information; we will explain which records apply to your request and any information that must be retained. Deleting your Koda account does not cancel a store subscription. Use the store’s subscription settings to manage renewal. The partner subscription terms include management links.

Retention and deletion

Guest records remain on your device until removed. Personal account records and family records remain in Firestore until deleted or covered by account deletion. You can request account or specific-record deletion through our account deletion page, including without the app.

Deleting an account removes its sign-in identity, personal account dogs and their records, stored dog selection, memberships, invitations, shared records and photo memories it created and associated sync records. Every family the account owns is deleted for all members, including their records in that family. In families owned by someone else, deleting a repeating schedule created by the departing account also removes the dates recorded against that schedule, including dates marked by other members. Other people’s remaining records stay, and the departing account’s editor attribution becomes “Former member”. Text someone else wrote and exported copies may still mention you.

Deletion runs in stages. While it runs, account records and sharing are locked and the server retains the account identifier, progress, timestamps and any generic failure message. If cleanup pauses, this information remains so the request can be retried or resolved through support. We do not treat a saved or paused request as completed deletion.

After completion, a small security receipt retains the account identifier, completion status and completion and expiry times. Its expiry is set to 30 days after completion. Automatic deletion happens asynchronously after expiry. This receipt helps block old sign-in tokens; it contains no pet records or account email.

Provider backups and operational or security logs have separate retention periods. Firebase states that authentication information is removed from its live and backup systems within 180 days after deletion is initiated. See Firebase’s retention details. Earlier device records remain in the recovery snapshot. Account deletion does not erase these snapshots, files you exported or copies still held on disconnected devices. Clear app storage to remove retained local copies you no longer want.

Privacy requests and support

You can contact us to ask about access, corrections or deletion, or raise a privacy concern. We may need to verify ownership before acting. Never email your password. Support emails include the address and information you provide; we use them to resolve and keep a record of your request. Depending on where you live, you may also have rights to object to or restrict processing or complain to a privacy regulator.

The partner enquiry form prepares a draft in your email app. It does not submit your details automatically. If you send it, we use your email address and the information you provide to review your listing or partnership request, reply and keep a record of the arrangement. Private enquiry notes are not included in the public directory.

Children and changes

Koda is intended for adult dog owners and carers. Accounts are not intended for children. We update this page when data practices change and show the current policy date above.