Privacy Policy
Effective: September 26, 2026
DSnap is a photo-booth web app. This policy explains what data the app collects, how it is used, and the choices you have. The app is a small personal project — there are no ads and we do not sell your data.
1. Information we collect
- Account info: your name, email address, profile photo (Google sign-in only), user ID, and email-verification status, handled by Firebase Authentication.
- Photos and booth data: approved photo-booth images plus the layout, frame, filter, event title/date, and your display name, stored in the Firestore gallery collection (max 5 cloud photos per user).
- Anti-abuse signals: a device fingerprint (via FingerprintJS, with a local fallback) and signup counts in the device_signups collection to enforce the limit of 2 signups per device per day. Sign-in and signup attempts are also protected by Google reCAPTCHA.
- On-device data: app settings, theme, gallery overflow copies (beyond the 5-photo cloud cap), and signup counters kept in your browser's localStorage. These never leave your device unless you approve a photo for cloud saving.
- Email sending: when you use "Send Photo," the recipient name/email and the photo are transmitted through your configured EmailJS account to deliver that one email.
2. How we use it
- To create and secure your account, including email verification.
- To save, display, and share the photos you approve (gallery, QR view links, downloads).
- To prevent signup abuse and keep the service running.
- To send a photo email only when you ask us to.
3. Camera and photos
Your camera stream is processed locally in your browser. Nothing is uploaded until you tap Approve All with Auto-save to Gallery enabled. You can turn the QR badge and gallery auto-save off in Settings, and delete any saved photo from the Gallery page at any time.
4. Sharing
- Firebase (Google): authentication and Firestore storage/reads. Gallery reads require a signed-in session; public QR view links use a limited anonymous session to load that single photo.
- EmailJS: only when you send a photo email, using keys you configure in Settings.
- We do not sell personal data and show no third-party ads. Anyone you share a QR view link with can open that photo, so share links carefully.
5. Storage and retention
Cloud photos persist in Firestore until you delete them in the Gallery (or the event organizer removes them). Local copies persist in your browser until you delete them or clear site data. Deleting your account from the Profile page removes the Firebase user; previously saved gallery photos must be deleted separately in the Gallery.
6. Your choices
- Disable Auto-save to Gallery or the QR Code on Prints in Settings.
- Delete individual photos from the Gallery or lightbox view.
- Update your display name or delete your account from the Profile page.
7. Event and kiosk use
At events, the booth may run in Kiosk Mode for guests. If you operate the booth, you are responsible for telling guests their photos may be saved and shared via QR links, and for getting any consent required where you operate.
8. Security
Access is gated by Firebase Authentication and Firestore security rules. No method is perfectly secure, so avoid capturing sensitive documents in the booth.
9. Changes
If this policy changes materially, the effective date above will be updated. Continued use of DSnap after changes means you accept the updated policy.
10. Contact
Questions about privacy? Open an issue at github.com/EsmeraldoInciso/dsnap.