Privacy Policy

How HuntHub collects, uses, shares and protects your personal data — including live location, photos, messages and subscription details.

1. Who we are

HuntHub is operated by Simon Elhøj Steinmejer, an individual established in Denmark. We are the data controller for the personal data described in this policy, which means we decide why and how that data is processed.

  • Controller: Simon Elhøj Steinmejer
  • Address: Gadelandet 20A, 3. tv., 2700 Copenhagen, Denmark
  • Email: support@hunthub.dk

Write to support@hunthub.dk about anything in this policy, including any request to exercise your rights under the EU General Data Protection Regulation (GDPR) and the Danish Data Protection Act.

2. What this policy covers

This policy applies to the HuntHub mobile apps for iOS and Android, to the HuntHub website — including the team administration area — and to the subscriptions we bill through Stripe on the website.

HuntHub is organised into closed, invite-only hunt teams. Almost everything you do in HuntHub happens inside one team and is visible only to the other members of that team. You belong to exactly one team at a time. That structure is the single most important thing to understand about how your data is handled here: your posts, your messages, your calendar entries, your map markers and your live position are shared with your fellow members, and with nobody else.

This policy does not cover how the independent companies we rely on handle data under their own agreements with you — for example the app store you downloaded HuntHub from. Those companies are named in section 7.

3. The data we collect

We collect only what HuntHub needs in order to work. There is no hidden collection: everything below is either something you type in, something you upload, something you explicitly switch on, or a record we must keep in order to run a paid service.

Account data

Your email address and — if you use a password — a cryptographically hashed version of your password, held on our behalf by Supabase Auth. We never see, store or transmit your password in readable form.

If you sign in with Apple or Google

You can create your account and sign in with your Apple Account or your Google account instead of a password. If you choose to, Apple or Google confirms who you are and sends us a small set of details, most of them in a signed token, which Supabase Auth stores with your account:

  • From Google: your Google account identifier, your name, your email address and whether Google has verified it, a link to your Google profile picture and, for a Google Workspace account, its domain. HuntHub asks Google only for your basic profile and email address — the openid, email and profile permissions — and for nothing else.
  • From Apple: your Apple user identifier, your email address — a private relay address if you choose Apple’s Hide My Email — and your name, but only the first time you sign in and only if you choose to share it.

We use these details only to create your account, to sign you in, and to fill in your profile: your email address, and your display name the first time — you can change that name at any time in the app. Like the rest of your profile, your name and email address are visible to the members of your team. We do not use your Google profile picture, we never get access to anything else in your Google account or Apple Account — such as your mailbox, contacts, calendar or files — and we do not keep the access tokens Apple or Google issue during sign-in.

HuntHub’s use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.

If you sign in with Apple or Google using an email address that already belongs to a HuntHub account, the sign-in is added to that existing account. For your protection, if that account was created with email and password, the password is then removed and every other device signed in to it is signed out shortly afterwards. You can set a new password at any time with Forgot password.

Profile data

Your display name, your email address, an optional avatar image, and an optional phone number if you choose to add one. Your profile is readable by you and by the members of your own team — never by members of another team.

Location data

A latitude, a longitude and a timestamp. We keep one current position per member per team: each new position replaces the previous one, so we do not build a location history or a movement trail. Section 5 explains this in detail.

Content you create

  • Posts in your team feed, and any images attached to them.
  • Comments and likes on those posts.
  • Group-chat messages. The chat is text only — it does not support image or file attachments.
  • Hunts you create in the shared calendar, and your RSVP to a hunt.
  • Map markers you place, and any images attached to them.
  • Hunting areas and boundaries, which are drawn and maintained by team administrators.

Membership data

Which team you belong to, your role in it (member or administrator), and the invitations issued to you or accepted by you, including the invitation code and its status.

Subscription data

If your team buys a paid plan, we store the Stripe customer identifier, the Stripe subscription identifier, the subscription status, the price identifier, the plan seat cap and the date the current billing period ends. We never receive or store your card number, expiry date or security code — those go directly to Stripe and never touch our systems.

Technical data

Our infrastructure and hosting providers generate ordinary server logs when your device communicates with our servers — an IP address, a timestamp, the resource requested, and the response. These logs exist to keep the service running, to diagnose faults and to detect abuse. They are not used to profile you and are not combined with your team content.

Push notification data

If you allow push notifications, we register your device with a device installation record: a device identifier, the push token issued by Apple or Google for that device, whether the device is iOS or Android, your app locale, and the notification permission state. We use this only to reach your own device with the six notification categories the app tells you about (new posts, comments and likes on your own posts, new hunts, responses to your hunts, and new members) — never to identify or track you outside the app.

A push notification’s lock-screen and banner text is deliberately minimal — who did something, and what kind of activity it was — never the full post, comment, hunt or member detail. The full content loads only after you open the app, under the same access rules that already govern everything else you read there. You can turn each of the six notification categories on or off independently in the app’s settings.

5. Location data, in plain words

Live location is the most sensitive data HuntHub handles, so we would rather be exact than reassuring.

  • HuntHub collects your position only while the app is open and in the foreground. Neither the iOS app nor the Android app requests a background-location permission, so HuntHub cannot see where you are once you close the app or switch away from it.
  • You decide when to share. Sharing is started and stopped by you inside the app, and the operating system permission can be revoked at any time in your device settings.
  • Your position is visible only to the members of your own team. It is never shown publicly, never shown to another team, never sold, and never used for advertising.
  • Live positions travel over an authenticated, private realtime channel. A device that is not signed in as a member of your team cannot subscribe to it.
  • Your most recent position is stored so that a fellow member who opens the map later can see where you were, together with the time it was recorded. Each new position overwrites the previous one — we do not keep a track, a route or a history.
  • Your stored position is deleted when you leave the team or delete your account.

A live position on a map is an estimate, not a fact. It can be delayed, imprecise or entirely absent — because of GPS error, poor mobile coverage, a closed app, a flat battery or a denied permission. HuntHub is a coordination tool, not a safety device, and must never be used as the only way of knowing where another hunter is. This is set out in full in our Terms of Service.

6. Photos and camera

HuntHub asks for camera and photo-library access only so that you can attach an image you have chosen — to a post, to a map marker, or as your avatar. We do not scan, index or upload your photo library, and we access only the individual files you select.

Every image is re-encoded before it leaves your device, and its EXIF metadata — including any embedded GPS coordinates — is stripped in the process. An image you upload therefore does not carry the location where it was taken.

One thing you should know about uploaded images

Image files are served from public storage buckets at long, namespaced URLs that are not published or listed anywhere. The database rows that reference those URLs are access-controlled and only your fellow members can read them, so in normal use nobody outside your team can discover an image. But the file itself is not access-controlled: anyone who obtains the exact URL — for example because you forwarded it — can open it without signing in. We would rather tell you this than let you assume otherwise. Do not upload an image whose exposure to a stranger would harm you.

7. Who we share data with

Running HuntHub requires a small number of service providers. Each of them acts as a data processor under GDPR Article 28, is bound by a written agreement, and may process your data only on our instructions and for the purpose named below.

Our processors

  • Supabase — our database, authentication, realtime messaging and file storage. Supabase holds effectively all of the data described in section 3.
  • Mapbox — map tiles, map styles and geocoding for the map screen. Loading a map sends the area of the map you are looking at to Mapbox so it can return the right tiles.
  • Stripe — subscription billing and payment processing for paid plans. Stripe collects and holds your payment details directly; we receive only the identifiers and the subscription status listed in section 3.
  • Vercel — hosting for the HuntHub website and its server-side routes.
  • Firebase Cloud Messaging (Google) — delivers push notifications to Android devices, and relays the notifications we send to Apple Push Notification service for iOS devices. Firebase receives your device’s push token and the minimal lock-screen text described in section 3; it does not receive your account content.
  • Apple Push Notification service (Apple) — delivers the push notifications Firebase Cloud Messaging hands it to iOS devices.

Independent controllers

  • Apple App Store and Google Play — distribution and updates of the mobile apps. They operate as independent controllers for the data they collect about your download and your app-store account.
  • Apple and Google, if you choose Sign in with Apple or Sign in with Google — they confirm your identity and send us the details listed in section 3. They act as independent controllers for your Apple Account and Google account under their own privacy policies, and signing in shares no HuntHub content or activity with them. If you use Hide My Email, the emails we send you — for example a password reset — pass through Apple’s private email relay, which forwards them to your real address.

What we never do

  • We do not sell your personal data. There is no circumstance in which we would.
  • We do not share your data with advertisers, ad networks or data brokers.
  • We do not build an advertising or behavioural profile of you.
  • We do not embed third-party analytics or tracking software. See section 9.

We may disclose personal data where we are legally required to — for example in response to a valid order from a Danish court or authority. Where the law allows it, we will tell you first.

8. International transfers

Our database and file storage are hosted by Supabase in the European Union — specifically the Supabase North EU region, in Stockholm, Sweden. Your account, your content and your location history are stored inside the EU/EEA.

The providers named in section 7 are United States companies, and some processing — including support access and operational tooling — may take place outside the EU/EEA. Where personal data is transferred outside the EU/EEA, that transfer is covered by the Standard Contractual Clauses adopted by the European Commission and, where the provider is certified, by the EU-US Data Privacy Framework.

We are not in a position to guarantee that no data is ever processed outside the EU/EEA, and we do not claim otherwise. If you would like a copy of the transfer safeguards that apply to a specific provider, ask us at support@hunthub.dk.

9. No tracking, no advertising, no analytics

Neither the HuntHub mobile apps nor the HuntHub website contain third-party analytics, advertising, attribution or crash-reporting software. There is no measurement SDK, no ad network and no marketing pixel in either product.

  • We do not ask your device for an advertising identifier and do not request app-tracking permission.
  • We do not track you across other apps or other websites.
  • The website sets no advertising or analytics cookies. The only cookies it sets are the ones strictly necessary to keep you signed in to your account.

This is a deliberate design decision rather than an oversight, and we consider it part of what a closed, private network for a hunt team ought to mean. If that ever changes, we will say so here before it takes effect.

10. How long we keep your data

  • Account and profile data, including any Apple or Google sign-in linked to your account: for as long as your account exists.
  • Content you create — posts, images, comments, likes, chat messages, hunts, RSVPs and markers: until you delete it, or until you delete your account.
  • Location data: only your single most recent position is kept, and it is overwritten by the next one. It is deleted when you leave the team or delete your account.
  • Subscription and billing records: for as long as Danish bookkeeping law requires us to retain accounting material, which is currently five years from the end of the financial year the record belongs to. This retention is a legal obligation and survives deletion of your account.
  • Push notification device records: your device installation record (section 3) is kept until you sign out, deny or revoke notification permission and the token stops being used, uninstall the app, or delete your account. A queued notification that cannot be delivered expires and is discarded after 24 hours. Operational records of individual notification deliveries — which device, which category, whether the provider accepted it — are kept for a limited window, currently 30 days, to diagnose delivery problems, then purged.
  • Backups and server logs: deleted data may persist for a limited period in routine backups and infrastructure logs before those rotate out. It is not restored into the live service.

Guest accounts

A member of a team can invite a temporary visitor by generating a guest code. Redeeming that code creates an anonymous account that carries no email address and no password — the guest supplies only a display name. Guest access lasts 7 days from the moment the code is redeemed, and a team administrator can end it earlier at any time.

Content a guest creates during that access window — feed posts, comments, chat messages and calendar responses — is retained after their access ends and stays attributed to their display name. The guest account itself is not deleted when access ends, which is why that content continues to display correctly rather than becoming unattributed.

While a guest has active access, they can see the same contact details — such as a phone number — that other members have chosen to add to their profile. This follows from a guest having been admitted to the team’s private space through a member’s deliberate invitation, and it applies for as long as the guest’s access lasts.

11. Your rights

The GDPR gives you the following rights over your personal data. They are free to exercise, and exercising them will never disadvantage you as a user.

  • Access — a copy of the personal data we hold about you, and an explanation of how it is processed.
  • Rectification — correction of data that is inaccurate or incomplete. Your display name, email, avatar and phone number can be corrected by you directly in the app.
  • Erasure — deletion of your personal data. See below; you can do this yourself.
  • Restriction — a pause on processing while a dispute about accuracy or lawfulness is resolved.
  • Objection — an objection to processing we base on legitimate interest.
  • Portability — the data you provided to us, in a structured, commonly used, machine-readable format.
  • Withdrawal of consent — you may withdraw your consent to live-location sharing at any time, without affecting the lawfulness of processing carried out before the withdrawal.

Deleting your account

You do not need to ask us. Open the app, go to Profile and choose Delete account. This permanently deletes your account and, with it, your profile, your team membership, your posts and post images, your comments and likes, your chat messages, the hunts you created and your RSVPs, your map markers, and your stored position. The deletion is immediate and cannot be undone.

If you are the administrator of a team, you must first hand the team over to another member or wind it down; only then can you delete your own account. This exists so that a team is never left without an administrator, with its other members locked out of their own content.

If you signed in with Apple or Google, deleting your account also deletes that sign-in from our systems. Apple and Google each keep their own record that you used them to sign in to HuntHub, which you can remove yourself — in your Apple Account settings under Sign in with Apple, or in your Google Account under Sign in with Google.

Content is deleted from the live service. Copies may remain briefly in routine backups, and accounting records covered by section 10 are retained as the law requires.

How to make a request

Email support@hunthub.dk. We will respond within one month of receiving your request, as GDPR Article 12(3) requires. If a request is unusually complex we may extend that period, and we will tell you if we do.

Complaints

If you believe we have handled your personal data unlawfully, you can complain to the Danish Data Protection Agency (Datatilsynet), Carl Jacobsens Vej 35, 2500 Valby, Denmark — www.datatilsynet.dk. We would appreciate the chance to put things right first, but you are not required to contact us before complaining.

12. How we protect your data

  • Isolation between teams is enforced in the database itself, by row-level security policies, not merely by the app. Every read and every write is checked against your membership, so a request for another team’s data fails at the database even if the app asks for it.
  • Passwords are stored only as cryptographic hashes by Supabase Auth. We cannot read your password and cannot recover it for you.
  • If you sign in with Apple or Google, you need no HuntHub password: before letting you in, Supabase Auth verifies that the token Apple or Google issued is genuine and was issued to HuntHub.
  • All traffic between your device and our servers is encrypted in transit with TLS.
  • Live-location channels are authenticated and private; membership is verified before a device can receive positions.
  • Card details never reach our systems — they are handled by Stripe, a PCI DSS Level 1 certified payment provider.

Uploaded image files are the documented exception to the isolation model above, for the reason explained in section 6.

No online service can promise perfect security, and we will not pretend otherwise. If a personal data breach occurs that is likely to result in a risk to your rights and freedoms, we will notify Datatilsynet within 72 hours as Article 33 requires, and we will notify you directly where Article 34 requires it.

13. Children

HuntHub is not directed at children. Our Terms of Service require you to be at least 18 years old to create an account, and we do not knowingly collect personal data from anyone below that age.

If you believe a child has created an account, write to support@hunthub.dk and we will delete the account and the associated data.

14. Changes to this policy

We may update this policy as HuntHub develops or as the law changes. The date shown at the top of this page always reflects the current version.

If a change materially affects how we handle your personal data — a new purpose, a new processor, a new category of data — we will announce it in the app and on this website before it takes effect, and we will ask for your consent again where consent is the legal basis.

15. Contact

Questions about this policy, or about anything HuntHub does with your data, go to the address below. A real person reads it.

  • Simon Elhøj Steinmejer
  • Gadelandet 20A, 3. tv., 2700 Copenhagen, Denmark
  • support@hunthub.dk