Taha Tuna

Privacy Policy

MugShot

Coffee brew timer, bag scanner and specialty shop map.

Last updated 29 October 2026

The short version

  • No account, and no name or email address unless you write to us.
  • Your photos and brews stay on your device, except for the three online features described below.
  • No ads, no analytics SDKs, no tracking, and nothing sold to anyone.
  • Crash reports are on by default, leave out your photos and anything you typed, go to a server we run ourselves, and can be turned off in Settings.

What stays on your device

MugShot does not have accounts. There is nothing to sign up for and no profile to fill in, so we hold no name or phone number for you, and an email address only if you send one with a support request.

The things you make in the app, meaning coffee and water amounts, brew settings, saved recipes, your brew journal, scanned beans, saved spots and preferences, are written to your device and stay there. Apart from the features listed below, they are not uploaded, backed up to us or shared with anyone. Deleting the app deletes them.

Permissions the app asks for

iOS asks before granting each of these, and you can withdraw any of them later in Settings. MugShot keeps working with them denied, minus the feature that needed them.

Camera

Scanning a coffee bag label so the app can read the roast details.

The single photo you confirm is sent to our scanning service, which uses OpenAI to read the label.

Location

Finding specialty coffee shops near you on the Discover map.

Your location is rounded on the device to about 1 km before it is sent to our discovery service and Google Places.

Features that send data to us

Three features in MugShot cannot work on the device alone. Bag scanning and recipe generation run when you start them. The Discover map also refreshes on its own when the app opens, if you allowed location. Each sends the minimum it needs to answer.

Bag scanning

Sends the one photo of the bag you confirm, and your taste preferences if you set any.

Discover map

Sends your location rounded to about 1 km, a search radius, the filter and any text you typed, and the names, addresses and coordinates of the nearby places Apple Maps returned.

Recipe generation

Sends the brew parameters you entered, such as dose, water and method, and any notes you typed.

These requests reach our own service at api.tahatuna.com. We use what you send to produce the result you asked for and to keep the service running. We do not use it to build a profile of you, and we do not sell it. We do not store the photo or the text you typed once the answer is sent. Search results for a rounded area are cached for about 10 minutes so repeat searches are faster.

These outside services are involved in answering those requests:

  • Apple Maps, to find candidate places near you
  • Google Places, which our discovery service queries to fill in photos and ratings
  • OpenAI, which our service uses to read bag labels, write recipes and rank nearby places. It receives the content of those requests but no account or device identifier from us. Under OpenAI's API terms it does not train on this data and may keep it for up to 30 days to detect abuse

Crash reports and diagnostics

When MugShot crashes or hits an error it could not recover from, it sends a report so the fault can be fixed. A report contains the error itself, the line of code it came from, a short trail of recent app actions such as screens opened and network requests made, your device model, your iOS version, the app version and the language your device is set to.

The app also sends timing data for a small sample of operations, and the crash, hang and memory diagnostics that iOS collects through MetricKit. Every report is tagged with the random purchase identifier described under Purchases, so reports from one install can be grouped and matched to a support request.

Reports are set up to leave out your photos, your files and anything you typed. They go to our own GlitchTip instance at errors.tahatuna.com, which we run ourselves. They are not sent to an analytics company, an advertiser or a data broker, because none are involved in this app at any point.

Crash reporting is on by default. You can turn it off with Share Crash Reports in the app's Settings. The change applies the next time the app starts.

When you contact support from inside the app

If you send a support request through the app, we receive what you wrote, the email address you chose to give us if you gave one, and a short technical summary so the problem can be reproduced. That summary is:

  • App version and build number
  • Device model and iOS version
  • Your device language and region setting
  • Whether your subscription is active, and its plan, renewal and expiry dates
  • The random purchase identifier described under Purchases

We use this only to answer you. The request is stored on our server and forwarded to our support inbox through Brevo, an email delivery service. If you leave the email field empty we have no way to reply.

Purchases and subscriptions

Payment is handled entirely by Apple. We never see your card details, your billing address or your Apple Account. Refunds, cancellations, upgrades and downgrades are Apple's to process, and are managed from Settings on your device. We cannot issue a refund, because only Apple can.

We use RevenueCat to check whether a subscription is active. RevenueCat assigns your install a random identifier that is not linked to your name or your Apple Account, and receives your purchase history and basic device details, including the identifier iOS gives each app developer for your device, in order to validate the receipt. It has no access to your payment information.

Subscribing also means accepting Apple's terms, which you can read here: App Store User Agreement.

Who else is involved

The complete list, for this app, is below. There are no advertising networks, no analytics products, no social media SDKs and no tracking across other apps or websites.MugShot does not use cookies, because it is not a website.

  • Apple, for distribution and payment
  • RevenueCat, to confirm whether a subscription is active
  • Our own diagnostics and support services, described above
  • Brevo, which delivers support requests to our inbox
  • Cloudflare, which stores our encrypted server backups
  • Apple Maps, to find candidate places near you
  • Google Places, which our discovery service queries to fill in photos and ratings
  • OpenAI, which our service uses to read bag labels, write recipes and rank nearby places. It receives the content of those requests but no account or device identifier from us. Under OpenAI's API terms it does not train on this data and may keep it for up to 30 days to detect abuse

How long anything is kept

Everything the app stores locally stays until you delete it or remove the app. We cannot reach it and cannot delete it for you.

Crash reports are deleted after at most 90 days. Support requests, including any email address, are deleted from our server after 180 days. Encrypted backups can hold a copy for up to five weeks longer, and the copy in our support inbox is kept only as long as we need it to help you. We do not store photos sent for scanning or the text you typed. OpenAI may keep a request for up to 30 days to detect abuse.

Who is responsible, and on what basis

MugShot is published by Ali Taha Tuna, an individual developer based in Turkey, who is responsible for the data described here. Contact: [email protected].

Crash reports are processed in our legitimate interest in finding and fixing faults, and you can switch them off. Purchase checks are processed to provide the subscription you bought. The online features above are processed to provide what you asked for. Support requests are processed to answer you.

Some of the services above process data outside your country, including in the United States.

Your rights

Depending on where you live, you may have the right to ask what personal data we hold about you, to have it corrected, to have it deleted, or to object to how it is used. Write to [email protected] and we will act on it. You can also complain to your local data protection authority, or in Turkey to the Personal Data Protection Authority (KVKK).

In practice there is usually very little to hand over. There is no account. We hold the random purchase identifier described under Purchases, which is not linked to your name or your Apple Account, and your email address only if you wrote to us. To find crash reports or support messages from your install, send your request through the app's support form, which includes that identifier.

We do not sell or share personal information, as California law defines those terms.

Children

MugShot is not directed at children under 13, and we do not knowingly collect anything from them. If you believe a child has sent us something through the support form, write to [email protected] and it will be deleted.

Changes to this policy

If this policy changes, the revised version is posted here and the date at the top of the page changes with it. We will also mention material changes to what the app collects in the App Store release notes for the version that introduces them.

Contact

Questions about this policy, or about MugShot generally, go to [email protected]. It reaches the developer directly.