← Back
Privacy Policy
Effective: April 2026 · Last updated: April 2026
1. Information We Collect
Information you provide:
- Email address — used for account login, email verification, password resets, and deal alerts (Elite plan).
- Password — stored only as a bcrypt hash with salt rounds. We never store, transmit, or have access to your plain-text password.
- Alert preferences — saved brand selections, category filters, size preferences, discount thresholds, and alert frequency settings (Elite plan).
Information collected automatically:
- IP address — used solely for rate limiting and security (preventing brute-force login attempts). IP addresses are held in memory only and are not stored in any database or log file long-term.
- Browser type and device information — received via standard HTTP headers. Not tracked, stored, or analyzed.
Payment information:
- All payment processing is handled entirely by Stripe. We never see, receive, store, or have access to your credit card number, expiration date, CVV, or billing address. Stripe may store your payment method for recurring billing in accordance with their own privacy policy.
Information we do NOT collect:
- We do not use Google Analytics, Facebook Pixel, or any third-party analytics or tracking tools.
- We do not use advertising cookies or retargeting pixels.
- We do not track your browsing behavior across other websites.
- We do not collect precise location data beyond what your IP address reveals.
- We do not use any fingerprinting technology to identify users.
2. How We Use Your Information
- To provide the deal-finding service and display listings tailored to your plan level.
- To authenticate your account and maintain your login session.
- To process subscription payments via Stripe.
- To send deal alert emails to Elite users who have opted in.
- To send transactional emails: email verification and password reset links.
- To enforce rate limits and protect against abuse and unauthorized access.
- To improve the Service based on aggregate, anonymized usage patterns (e.g., which brands are most popular).
3. Information Sharing
- We do NOT sell your personal information to anyone, under any circumstances.
- We do NOT share your information with advertisers, data brokers, or marketing companies.
- We do NOT share your information with any third party for their own marketing purposes.
We share information only with the following service providers, strictly as needed to operate GrailHunt:
- Stripe — receives your email address and subscription status to process payments. See Stripe’s privacy policy.
- Resend — receives your email address to deliver transactional and alert emails.
We may disclose information if required to do so by law, court order, or governmental regulation, or if we believe disclosure is necessary to protect our rights, your safety, or the safety of others.
4. Cookies and Local Storage
- Authentication cookie: A single HttpOnly JWT cookie to maintain your login session. Set with
Secure (in production), SameSite=Strict, and a 7-day expiry. This cookie cannot be read by JavaScript and is only sent to our server.
- localStorage: Used only for your dark/light mode preference and dismissed banner state. No personal data is stored in localStorage.
We do NOT use tracking cookies, analytics cookies, advertising cookies, or any third-party cookies whatsoever.
5. Data Security
- Passwords are hashed using bcrypt with salt rounds — even we cannot see your password.
- Authentication uses signed JWT tokens with minimum entropy validation on the signing secret.
- All data is transmitted over HTTPS (TLS encryption) in production.
- Rate limiting on all authentication endpoints prevents brute-force attacks (10 attempts per 15 minutes per IP).
- Security headers on all responses: X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy, Content-Security-Policy, and Strict-Transport-Security (HSTS).
- Admin routes are protected by separate authorization middleware that verifies admin status in the database.
- The SQLite database is stored on encrypted persistent storage with access restricted to the application server only.
6. Data Retention and Deletion
- Your account data is retained as long as your account is active.
- If you cancel your subscription, your account remains active on the free tier. Your preferences and settings are preserved.
- You may request complete account deletion at any time by emailing us.
- Upon receiving a deletion request, all personal data (email, password hash, preferences, alert settings) is permanently and irreversibly deleted within 30 days.
- Anonymized, aggregated data (e.g., total user counts, popular brand statistics) may be retained as it cannot be traced back to any individual.
- Stripe retains payment records independently according to their own data retention policy and legal obligations.
7. Your Rights
You have the following rights regarding your personal data:
- Access: Request a complete copy of all personal data we hold about you.
- Correction: Update your email address or password at any time through your account settings.
- Deletion: Request complete deletion of your account and all associated data.
- Data portability: Request your data in a standard machine-readable format.
- Opt-out: Disable deal alert emails at any time through your alert settings.
To exercise any of these rights, email us at support@grailhunt.com.
8. GDPR (European Union Users)
If you are located in the European Union or European Economic Area:
- Our legal basis for processing your personal data is contract performance (providing the Service you signed up for) and legitimate interest (security measures and service improvement).
- You have the right to access, rectify, erase, restrict processing of, and request portability of your personal data.
- You have the right to object to processing based on legitimate interest.
- You have the right to withdraw consent at any time (where processing is based on consent).
- You have the right to lodge a complaint with your local data protection supervisory authority.
Contact us at support@grailhunt.com to exercise any of these rights.
9. CCPA (California Users)
If you are a California resident, under the California Consumer Privacy Act (CCPA) you have the right to:
- Know what personal information we collect, use, and disclose.
- Delete your personal information (subject to certain exceptions).
- Opt out of the sale of personal information — we do not sell your personal information to any third party.
- Non-discrimination: We will not discriminate against you for exercising any of your CCPA rights.
10. Children
We do not knowingly collect personal information from children. If you believe that a child has provided us with personal information, please contact us immediately at support@grailhunt.com and we will take steps to delete such information.
11. Changes to This Policy
We may update this Privacy Policy from time to time to reflect changes in our practices, technology, or legal requirements. We will notify registered users of material changes via email. Your continued use of the Service after changes are posted constitutes acceptance of the updated policy.
12. Contact
For privacy-related questions, data requests, or to exercise your rights, contact us at:
support@grailhunt.com