Privacy Policy
This policy describes how ahmed applications (“WallGlo”, “we”, “us”) handles information when you use the WallGlo apps (iPhone, iPad, Apple TV, and Mac) and the WallGlo website (production: photowall-app-prod.web.app; development: photowall-app-ahmed.web.app), including TV pairing links.
1. Who we are
WallGlo lets you manage photo albums on a mobile device and display them as a photo wall on a linked Apple TV. The operator of the service is:
- Legal name: ahmed applications
- Postal address: 1165 rue des Monts, Saint-Dominique, QC J0H 1L0
- Contact: [email protected]
2. Information we collect
Account
When you create or sign in to an account we process:
- Email address and password (password is stored by Firebase Authentication, not in our app code)
- Optional display name
- Sign in with Apple identity token; if you use Hide My Email, Apple’s private relay address
- Firebase user ID (uid), account status, created/updated timestamps, and billed plan (
plan/planExpiresAtwritten by Cloud Functions from RevenueCat) -
In development builds only, a simulated Free/Paid plan stored in UserDefaults on this
device and as
simulatedPlanon the Firestore account document so quota can be tested. Production ignores that field and uses the RevenueCat entitlement.
Albums and media you choose to sync
Photos and videos you add to an album and sync to TV are uploaded to private
Cloudflare R2 object storage. Album records in Firestore include title, layout
template, event theme, kind (manual, moment, or favorites), sync state, cover
media id, capture time, dimensions, duration for video, checksums, an optional
on-device media identifier used to rematch photos in your library, a denormalized
totalByteSize written by Cloud Functions, and similar
technical metadata. We do not write GPS coordinates to Firestore. Album titles
may include a place name if Moments naming used on-device reverse geocoding.
Photo library on your device
With your permission, the mobile app may scan photo-library metadata (dates, dimensions, favorites, and location if present on the asset) to suggest Moments and Favorites albums. Pixel data is read only for items you pick or confirm. Location is used on-device to cluster Moments and, via Apple reverse geocoding, to suggest a title. You can deny library access and still pick photos with the system picker. When you sign in, we fetch your published albums onto that phone and, with library permission, match them to photos already on the device so we can display them as a normal album; media that is not in the library is loaded from the copies stored for TV.
Linked TVs
Pairing uses a short-lived code and QR that opens `/link` on the WallGlo website for that app environment (`photowall-app-prod.web.app` or `photowall-app-ahmed.web.app`). We store a TV-generated device id, platform, model, OS version, optional room label, link time, and last-seen heartbeat so the phone can manage devices and the TV can load your published albums.
Analytics
We send product events to Mixpanel and Firebase Analytics (GA4). Events cover screens viewed, sign-in method (not the email), album and photo counts, template ids, pairing success/failure, free-plan quota checks (plan, counts, and active limit values only), and similar usage metrics. We identify analytics with Firebase uid or the TV account id only. We do not send album titles, emails, display names, or file paths. Mixpanel automatic events are disabled. Firebase Analytics may still use an app-instance identifier on the device.
Crash and error diagnostics
We use Firebase Crashlytics on iPhone, iPad, Apple TV, and Mac to collect crash
reports and selected non-fatal errors. Reports may include device model, OS
version, app version, stack traces, and technical context such as
error_code, feature name, album id, media id, or upload stage —
not album titles, emails, display names, or file paths. Fatal crashes are
collected automatically; non-fatal reports are filtered so expected user errors
(wrong password, expired pairing code, permission denied) are not sent.
Local device storage
Draft albums, downloaded TV media cache, pairing session, and preferences (for example Moments filters and, in development builds, the simulated plan) stay on the device until you delete them, sign out, or unlink the TV. Decoded album thumbnails are cached on-device with Kingfisher and are not sent to that vendor.
Remote configuration
We use Firebase Remote Config to deliver free-plan album, media, and storage caps to the apps and Cloud Functions. Remote Config may process an installation or instance identifier, app version, and country so the correct values can be fetched. It does not receive album titles or other album content.
Website
photowall-app-prod.web.app (production) and photowall-app-ahmed.web.app (development) are static sites (pairing hop, this policy, and terms). They do not currently set analytics cookies or embed advertising pixels. Your browser and Firebase Hosting may process standard request logs (IP address, user agent, URL).
3. How we use information
- Create and authenticate your account, including password reset
- Store and display albums on devices you link
- Suggest albums from your library when you allow access
- Operate, debug, and improve the product using aggregated usage events and crash diagnostics
- Protect the service (access control, signed short-lived media URLs)
- Respond to requests you send to [email protected]
4. Legal bases (EEA/UK)
Where GDPR applies, we rely on: performance of the contract (providing the app); consent (photo library, Sign in with Apple scopes); legitimate interests (security, product analytics without extra identifiers); and legal obligation when required. You may withdraw consent in iOS Settings for Photos at any time.
5. How we share information
We do not sell your personal information. We share data with processors who help us run WallGlo:
- Google Firebase — Authentication, Cloud Firestore, Cloud Functions, Hosting, Analytics, Crashlytics, Remote Config
- Cloudflare R2 — private storage of album media; the apps never receive R2 credentials; download URLs expire
- Mixpanel — product analytics
- RevenueCat — subscription status and App Store receipts; App User ID is the Firebase uid
- Apple — Sign in with Apple, PhotoKit, CloudKit-free reverse geocoding, App Store In-App Purchase, device OS
Linked TVs signed into your account can fetch published album media. We do not make albums public on the web.
6. Retention
Account, album, device, and media records are kept while the account is active. Pairing sessions expire in minutes. Signed upload URLs last about 15 minutes; signed download URLs about 12 hours. Local caches remain until cleared by the OS or the app. Analytics and crash-report retention follow Mixpanel, Google Analytics, and Firebase Crashlytics settings for our projects.
You can delete your account from the WallGlo iPhone app: open Settings → Delete Account, confirm, then reauthenticate with your password or Sign in with Apple. Deletion is immediate and removes your account, published albums and media, linked TVs, and local drafts on that device.
7. Security
Media buckets are private. Cloud Functions issue time-limited signed URLs. Firestore rules restrict album data to the owner and actively linked display devices. No method of transmission is 100% secure.
8. International transfers
Our processors may store data in the United States or other countries. Firebase for this project uses the nam5 (United States) Firestore region. If you use WallGlo from the EEA/UK, your information may be transferred outside that region subject to the processor’s transfer mechanisms.
9. Children
WallGlo is not directed at children under 16. We do not knowingly collect personal information from children under that age. Photos you upload may depict children; you are responsible for having the right to use those images.
10. Your rights
Depending on where you live, you may request access, correction, deletion, export, or restriction, and you may object to certain processing. Contact [email protected]. You can also: sign out; unlink a TV; remove an album from TV (published media objects we know about are deleted; the album stays on your phone until you delete it there); delete unsynced albums from the phone; and revoke Photos access in system Settings. California residents: we do not sell or share personal information for cross-context behavioral advertising as those terms are commonly used.
11. Changes
We will post updates on this page and change the effective date. Material changes may also be noted in the app where practical.
12. Contact
ahmed applications
1165 rue des Monts
Saint-Dominique, QC J0H 1L0
[email protected]