Effective date: [To be confirmed: effective date]. Controller: [To be confirmed: legal entity name], [To be confirmed: registered address], [To be confirmed: contact email].
1. What we collect and why
| Data | What exactly | Why | How long it is kept |
|---|---|---|---|
| Account | Name, email address, password (stored only as a one-way hash by our sign-in system, Better Auth), and when you accepted these Terms and which version | To create and secure your account | Until the account is deleted |
| Sessions | A sign-in session cookie, plus the session's IP address and browser user-agent, stored with the session | To keep you signed in and protect the account | Up to 14 days per session; ended on sign-out or password reset |
| Password reset | A one-time reset token | To let you reset your password | Expires after 30 minutes |
| Watches | URLs, labels, groups (competitor/client), schedules, chosen sections, regions, phrases, number rules, exclusions | To run the checks you configure | Until you remove them or delete the account |
| Check history | Check results and errors | To show what happened and why | 30 days |
| Page snapshots and changes | Text captured from watched pages (up to 200,000 characters per snapshot), titles, final URLs, before/after evidence and alerts | To show changes and in-app alerts | The newest 25 changes per page are kept, plus every change from the last 8 days. Snapshots are kept while the current baseline or a kept change uses them |
| Page images | Screenshots of browser-checked pages | Visual before/after evidence | The current baseline plus the images of the newest 10 changes per page. Older changes keep their text only |
| Setup previews | Temporary page captures and images made while you set up a watch | To let you choose what to watch | 1 hour |
| Interactive setup sessions | The page, device, your choices and the latest capture | To set up a watch on an interactive page | Up to 60 minutes (15 minutes idle), then deleted |
| Saved site sign-ins | Site address, method, optional label, username (shown as a hint), and the encrypted password or cookie | To check signed-in pages you authorize | Until you delete them |
| Billing | Stripe customer, subscription and price ids, status, renewal date, cancellation flag; records of Stripe events | To apply your plan | [To be confirmed: billing record retention]. Card details are entered at and kept by Stripe. PageYap never receives or stores card numbers |
| Usage counters | Checks, previews and browser renders used per day/month | To enforce plan allowances and capacity limits | Daily counters 40 days; monthly counters [To be confirmed: monthly counter retention]; preview request log 1 day |
| Server logs | Error messages (we avoid logging message bodies and secrets) | Operations and security | [To be confirmed: hosting and database log retention] |
Saved sign-ins are encrypted with AES-256-GCM using a key that is kept outside the database. Each one is bound to your account and that site. The app can store and delete a sign-in but can't show it back to you. Only the checking process decrypts it, for one check at a time, and sends it only over HTTPS to the site it belongs to.
Pages you watch may themselves contain personal data about other people. PageYap stores it only as part of the snapshot you asked for. You're responsible for having a lawful basis to monitor it (see Terms section 5).
We don't use advertising or analytics trackers, and we don't sell personal data. PageYap has no customer-facing AI features.
2. Cookies
We use only the cookies needed to sign you in and keep your session secure. We don't use advertising or analytics cookies. Stripe sets its own cookies on its checkout and billing pages under its own policy.
3. Service providers (processors)
| Provider | Purpose | Location |
|---|---|---|
| Vercel | App hosting and scheduled jobs. Vercel Sandbox runs the isolated browser that renders pages | [To be confirmed: Vercel region] |
| Supabase | Database (all data above) | United States (East US) |
| Stripe | Payments, subscriptions, invoices and the billing portal | Stripe's own policy |
| Resend (once configured) | Sending password-reset emails | [To be confirmed: Resend sending region] |
When PageYap checks a page, the website you watch receives a request from PageYap's servers (not from you). It doesn't receive your identity, except a saved sign-in you chose for that site.
4. Your choices and rights
You can edit or remove watches, groups and saved sign-ins at any time, and export a competitor's recent changes as CSV. To close your account and delete your data, use Account, then Delete account, in the app. To access or correct your data, contact [To be confirmed: contact email]. We'll respond within [To be confirmed: response time].
[To be confirmed: regional privacy rights text (EU/UK GDPR, California CCPA/CPRA or others), if those users are served]
5. Security
Each customer's data is isolated in the database by row-level security. Saved sign-ins are encrypted. Connections use HTTPS. Passwords are hashed. Page fetching blocks private and internal network addresses. No system is perfectly secure, and we'll notify you of a breach affecting your data as the law requires.
6. Children
PageYap isn't for anyone under [To be confirmed: minimum age], and we don't knowingly collect their data.
7. Changes and contact
We'll post changes here and give notice of material changes. Questions: [To be confirmed: contact email].