Privacy Policy
Last updated: 21 July 2026
This policy explains how Pawel Laszczak PawelosFPV (“Grainy,” “we,” “us”) handles information in the Grainy iOS app (the “App”), on grainyapp.com (the “Site”), and when you join the waitlist or contact us.
The short version: your photos and videos develop and stay on your device. The App makes no network calls and uploads nothing. There is no Grainy account and no cloud, and Grainy has no advertising or third party analytics SDKs. The App does not browse or import your existing Photos library.
Questions or privacy requests? Email us at grainyapp@pawelos.com.
1. Who we are
The data controller is Pawel Laszczak PawelosFPV, a sole trader (jednoosobowa działalność gospodarcza) registered in Poland (NIP 6812118189), with a business address at al. Solidarności 68/121, 00 240 Warszawa, Poland.
2. Information in the App
The App processes and stores the following information locally so its features work:
- Photo and video content: the original camera capture, the developed photo or video, and a smaller thumbnail. Development is performed on device, and a video’s recorded audio stays part of the clip.
- Photo/video details: capture date and time, selected camera/film style, development seed, and whether a photo or video is still developing.
- Information you add: captions and, if you enable Places and grant permission, coordinates and a city/country place label.
- App state and preferences: onboarding status, reminder time and state, last app open and recap state, and settings such as auto save, flash, date stamp, grid, and Places.
All of this stays in the App’s private on-device storage or preferences on your device. The App has no server and makes no network calls, so none of it is sent anywhere. The App does not access your contacts and does not browse or import your existing Photos library. It uses the microphone only to record audio while you record a video.
3. Permissions & Apple services
Camera
Camera access is required to frame and take a photo or record a video. The live preview and capture are processed by the App while you use the camera; Grainy does not receive them.
Microphone
Microphone access is used only to record sound while you record a video. The recorded audio becomes part of the on-device clip along with the video; it is not sent to Grainy.
Places and location
“Add Places” is enabled as an App preference by default, but the App cannot access your location unless you separately grant “While Using the App” permission. When both the preference and permission are on, the App requests a recent location at roughly 100 metre accuracy while the camera is in use, stores coordinates with new photos, and uses Apple’s geocoding service to turn them into a city and country label. Apple may process the coordinates to provide that result under Apple’s Privacy Policy. Grainy does not receive the coordinates or place label.
Turning off Places stops tagging future photos; it does not remove location already attached to a photo. You can remove that App copy by deleting the photo.
Photos
The App normally requests add only Photos access. “Save New Photos to Photos” is off by default; no copy is added to your Photos library unless you choose to save one or turn saving on, and even then no copy can be added unless you grant Apple’s permission. A saved copy may include the photo’s GPS coordinates. If you choose to remove a Grainy photo from both Grainy and Photos, iOS may ask for read/write or limited library permission so the App can locate and delete the exact Photos asset identifier it previously saved. Grainy does not browse or import the rest of your library. Copies in Photos are controlled by you and may sync through iCloud Photos if you have that Apple feature enabled.
Notifications
If you opt in, Grainy uses Apple’s local notification system for an optional evening reminder, limited to at most one in an evening. Grainy does not use a push notification server or collect a push token.
Unlimited Film subscription
The App is free to use with a daily film limit. An optional, auto renewing Unlimited Film subscription removes that limit and is sold through Apple’s StoreKit. Apple processes the subscription payment, billing, renewals, and any refunds, and handles purchase authorization. Grainy does not receive your card or payment account details. The subscription requires no Grainy account or sign in; your entitlement is checked on device through Apple, and Grainy has no server that tracks it. Apple’s handling is governed by Apple’s Privacy Policy.
Sharing, Instagram, and exports
Nothing is shared unless you choose a share or save action. The destination you select through Apple’s share sheet receives the selected image or images. A caption can be visibly rendered into a framed share image. The Instagram Story action places the selected rendered image on the general iOS pasteboard for up to five minutes and opens Instagram; Instagram then handles it under its own policy. Other apps’ access to that pasteboard is controlled by iOS. Grainy checks locally whether Instagram is installed but does not store or send that result. Images sent through the share sheet are rendered without location or other photo metadata, so sharing cannot pass on where a photo was taken; story and strip artwork likewise carries no location. Saving a photo to Photos is the one action that can attach its GPS coordinates.
Backups and Apple diagnostics
Apple may include App data in an iPhone or iCloud device backup, depending on your settings. Apple may also collect App Store activity and device diagnostics and may provide us aggregated sales/performance information or crash reports, depending on Apple’s terms and your device settings. Grainy contains no third party crash reporting SDK, and Apple’s reports do not give us access to your App photo library.
4. Information we receive
We do not receive photos, videos, captions, location, App settings, or local notification history from the App. The App has no server and makes no network calls, so nothing you shoot or configure in it reaches us. We receive information only when you:
- join the Site waitlist;
- email support or otherwise contact us; or
- visit the Site, where hosting and form providers process technical request data.
If you contact support, we receive your email address, message, and anything you choose to attach. Please do not send a photo or location unless it is needed for your request.
5. The Site & waitlist
Information you provide
When you join the waitlist, we collect the email address you enter so we can send the one launch notice described next to the form. We also keep a record of the scope of your consent and the version of the legal notice shown when you joined. We do not ask for your name, phone number, or App data. Formspree processes and delivers the submission to us.
Providing your email address is voluntary. It is not a statutory or contractual requirement and you are not otherwise obliged to provide it. If you do not provide it, you cannot join the waitlist or receive the launch notice.
Technical information
When you load the Site or submit the form, Cloudflare and Formspree may process technical data such as your IP address, browser and device type, request date and time, referring page, requested URL, routing/security data, and spam signals. This is used to deliver the Site, keep it secure, troubleshoot errors, and prevent abuse. Cloudflare may also produce aggregated traffic statistics.
6. Why we use information & legal bases
Where the GDPR, UK GDPR, or similar law applies, our purposes and legal bases are:
- Provide the App and features you request, meaning local on-device photo and video processing and the optional permissions you control (Camera, Microphone, Places, Photos, Notifications): performance of our contract with you (GDPR Art. 6(1)(b)). The App has no server, so this processing happens entirely on your device.
- Send the waitlist launch notice: your consent (Art. 6(1)(a)). You may withdraw it at any time before the message is sent.
- Record consent and withdrawal: compliance with our legal obligations and our legitimate interest in demonstrating that we respected your choice (Art. 6(1)(c) and (f), as applicable).
- Deliver, secure, and troubleshoot the Site; prevent spam and fraud; and protect our services: our legitimate interests (Art. 6(1)(f)).
- Answer support and privacy requests: performance of a contract, steps at your request, and our legitimate interest in supporting users (Art. 6(1)(b) and (f), as applicable).
- Meet tax, accounting, consumer protection, and other legal duties: compliance with law (Art. 6(1)(c)). Apple, rather than Grainy, keeps the payment account and billing records for App Store purchases.
We do not use waitlist emails for unrelated marketing, and we do not sell or rent personal information.
7. Who information is shared with
We disclose information only as needed for the purposes above:
- Apple: Distributes the App and provides StoreKit, camera and Photos permissions, local notifications, location/geocoding, iCloud features, and optional diagnostics. Apple controls information it processes for its own services. See Apple’s Privacy Policy.
- Formspree: Receives and delivers waitlist form submissions and processes related technical/spam prevention data on our behalf. See Formspree’s Privacy Policy.
- Cloudflare: Hosts, routes, and protects the Site, and processes request and security logs on our behalf. See Cloudflare’s Privacy Policy.
- Our email provider: Delivers waitlist and support email.
- A service you choose for sharing: This may be Instagram, Messages, or another destination in Apple’s share sheet. That service receives the content only after you select it and is responsible under its own privacy policy.
We may also disclose information if required by law, to respond to valid legal process, or to protect people, our rights, and our services. We do not sell personal information or “share” it for cross context behavioural advertising.
8. Retention & deletion
- App photos and videos: remain on your device until you delete one or remove the App. Copies already saved to Photos or shared elsewhere must be deleted from those destinations separately. Device/iCloud backups may retain a copy according to your Apple settings and Apple’s retention rules.
- App preferences and activity: remain until changed, reset by the feature, or removed with the App, subject to device backups. Apple holds subscription and transaction records for the Unlimited Film subscription under its own policy and legal duties; Grainy does not keep a separate copy.
- Waitlist email: kept while the waitlist is active, until you ask us to remove it, or until the launch mailing is complete. We then remove it from our active list. We may retain a minimal record of the consent or withdrawal only for as long as reasonably necessary to demonstrate compliance, resolve disputes, or establish, exercise, or defend legal claims. Formspree, our email provider, and backups may retain submissions or logs for a limited additional period under their retention policies or legal obligations.
- Support messages: kept only as long as reasonably needed to resolve the request, maintain a support record, or meet legal obligations.
- Site logs: retained by our providers according to their settings and policies for security, troubleshooting, and legal compliance.
9. Cookies, analytics & tracking
The App does not contain advertising, attribution, cross app tracking, or third party analytics SDKs and does not request Apple’s tracking permission. The Site code does not set analytics or advertising cookies and includes no analytics pixel. The Site uses system fonts and makes no third party font requests. Cloudflare or Formspree may use strictly necessary security and anti spam technologies when providing their services. Links to social networks are ordinary links; those companies receive information only if you choose to open them.
10. International transfers
We are based in Poland. Cloudflare, Formspree, Apple, and our email provider may process information in the United States, European Economic Area, and other countries where they operate.
- Formspree states that, as a data processor, it relies on the European Commission’s Standard Contractual Clauses for restricted international transfers. See Formspree Security.
- Cloudflare relies on its EU U.S. Data Privacy Framework certification for covered transfers to the United States and on the Standard Contractual Clauses, including supplementary measures, for other restricted transfers or as a fallback. Its customer DPA incorporates those safeguards. See Cloudflare’s GDPR information.
- Apple and our email provider use the transfer safeguards described in their applicable privacy and data processing terms. You can contact us for information about the safeguards relevant to information we control.
You may request more information or a copy of the applicable safeguards by emailing grainyapp@pawelos.com. Commercial terms may be redacted where necessary.
11. Your choices & rights
You can manage Camera, Microphone, Location, Photos, and Notifications in iOS Settings. In Grainy Settings, you can turn off Places, future auto saves to Photos, and the evening reminder. These changes do not remove previously created copies or location tags.
Because we cannot access data stored only inside the App, we cannot retrieve or delete your on device library for you. You control it by editing captions, deleting photos or videos, or deleting the App. To leave the waitlist or request access, correction, deletion, restriction, objection, or portability for information we do hold, email grainyapp@pawelos.com. You may also use the waitlist withdrawal link. You may withdraw consent at any time; this does not affect earlier lawful processing.
If you are in the EEA or UK, you may also complain to your local data protection authority. In Poland, the supervisory authority is the President of the Personal Data Protection Office (Prezes Urzędu Ochrony Danych Osobowych).
California residents: subject to applicable thresholds and exceptions, you may have rights to know, access, correct, and delete personal information and to opt out of its sale or sharing. We do not sell or share personal information for cross context behavioural advertising and will not discriminate against you for exercising a right. Submit a request using the email above.
12. Security
On device App data is protected by iOS, the App sandbox, and Keychain. Site and waitlist data is transmitted over HTTPS. We use providers and access controls intended to protect the service. No method of storage or transmission is completely secure, so we cannot guarantee absolute security.
13. Children
The waitlist is not available to anyone under 16 years old, and we do not knowingly collect waitlist information from them. The Site and App are not directed to children under 16. If you believe a child under 16 has joined the waitlist or contacted us, email us and we will take appropriate steps to delete the information.
14. Changes to this policy
We may update this policy from time to time. We’ll post the new version here and change the “Last updated” date above. Significant changes will be made clear.
15. Contact
Pawel Laszczak PawelosFPV
al. Solidarności 68/121, 00 240 Warszawa, Poland
NIP: 6812118189
Email: grainyapp@pawelos.com
Back to Grainy