DRAFT — NOT LEGAL ADVICE — REQUIRES REVIEW BY QUALIFIED LEGAL COUNSEL BEFORE LAUNCH
This text is an internal draft prepared for review. It has not been reviewed or
approved by a lawyer, it is not legal advice, and it is not yet binding on anyone. Items in
[SQUARE BRACKETS] are placeholders that must be completed before
publication.
Privacy Policy
Last updated:
This Privacy Policy explains what personal data MarkMyPages collects when you use markmypages.com, why we collect it, who else processes it, how long we keep it, and what you can do about it. The controller of that data is [LEGAL ENTITY NAME], [REGISTERED ADDRESS].
The cookie and local-storage notice is section 6 of this page rather than a separate document, because MarkMyPages uses only a handful of strictly necessary cookies and no advertising or cross-site tracking — splitting that into its own page would duplicate content and create two dates to keep in sync.
1. What we collect
Account data
- Your name and email address.
- A hash of your password (we never store the password itself), or, if you sign in with Google, the Google account identifier returned to us and the name and email on that Google account.
- Whether your email is verified, your plan tier, and your notification preferences.
Content you create
- The PDF and EPUB files you upload, together with their filename, size, page count and, for EPUBs, embedded metadata such as title and author.
- Text extracted from those files, which we store so that annotations can be anchored to exact locations and made searchable.
- Your annotations: highlighted excerpts, notes, colours, labels, tags, folders, collections, saved annotation templates and snapshots, and replies in discussion threads.
- Reading state such as your last-read page or EPUB position, viewer preferences and bookmarks.
- Workspace data: the workspaces you belong to, your role in each, and invitations you send or receive.
Technical and session data
- Your IP address and browser user-agent, recorded with your web session and used for rate limiting and abuse prevention.
- Login sessions: a device/session label and when each session was last used, so you can review and revoke them.
- Server logs and error reports generated when something goes wrong.
Billing data
- If you subscribe to a paid plan, our payment processor Stripe collects and processes your payment details. We never receive or store your full card number. We store the Stripe customer and subscription identifiers, your plan, and the status and renewal dates of your subscription.
We do not collect special-category data, we do not run advertising, and we do not sell or share personal data for behavioural advertising.
2. Why we use it, and on what legal basis
| Purpose | Data | Legal basis (UK/EU GDPR) |
|---|---|---|
| Create and run your account; store and display your documents and annotations | Account data, content | Performance of a contract |
| Extract text so annotations can be anchored and searched | Uploaded files, extracted text | Performance of a contract |
| Share documents and annotations with the members of a workspace you join | Content, workspace data | Performance of a contract |
| Transactional email: verification, password reset, workspace invitations, mentions and reply notifications | Name, email, notification preferences | Performance of a contract |
| Take payment and manage subscriptions | Billing data | Performance of a contract |
| Security, rate limiting, fraud and abuse prevention | IP address, user-agent, session data | Legitimate interests |
| Diagnose errors and keep the service working | Server logs, error reports | Legitimate interests |
| Respond to copyright notices and legal requests | Whatever the request concerns | Legal obligation |
[CONFIRM WITH COUNSEL WHETHER GDPR/UK GDPR APPLIES, AND WHETHER AN ARTICLE 27 EU/UK REPRESENTATIVE OR A DPO IS REQUIRED.]
3. Who else processes your data
We use a small number of sub-processors. We do not sell your data to anyone.
| Provider | What they process | Where |
|---|---|---|
| Amazon Web Services (Amazon S3) | Your uploaded PDF and EPUB files and generated export files | [CONFIRM BUCKET REGION — the application is configured via AWS_DEFAULT_REGION, default us-east-1] |
| Stripe | Payment details and subscription billing | United States / global |
| Mailgun | Delivery of transactional email (your name, email address and message content) | [CONFIRM US OR EU SENDING REGION] |
| Sentry | Application error reports, which may include your user identifier, the request URL and technical context at the moment of an error | [CONFIRM SENTRY ORGANISATION REGION] |
| Google (Sign in with Google) | Only if you choose to sign in with Google: authentication, and the name, email address and account identifier returned to us | Global |
| [HOSTING PROVIDER / DATA CENTRE OPERATOR] | Application servers and the application database | [REGION] |
We may also disclose data where we are legally required to, or to establish or defend legal claims — for example when responding to a copyright notice under our DMCA / Copyright Policy, where the complainant will receive the information contained in your counter-notice.
International transfers
Some of these providers process data outside your country, including in the United States. Where required, transfers rely on the EU Standard Contractual Clauses or the provider’s equivalent approved mechanism. [COUNSEL TO CONFIRM THE TRANSFER MECHANISM FOR EACH PROVIDER AND THE FINAL HOSTING REGION.]
4. Who can see your documents
Documents are private by default. There is no public sharing and no public link. The only way another person sees a document is if it is added to a team workspace you are both members of — in which case every member of that workspace can open and download it and see the annotations on it, according to their role. Workspace owners and admins control who is in a workspace.
Our staff do not read your documents as a matter of course. Access to production systems is limited to what is needed to operate and support the service, for example to investigate a fault you report or to respond to a valid legal request.
5. How long we keep it
- Account data and content: for as long as your account exists.
- Deleted documents: removed from your library immediately; the stored file is purged from object storage within 30 days.
- Deleted account: when you delete your account we cancel any subscription, delete your profile, documents, annotations, labels, tags, folders, collections and workspace memberships, revoke every session, and delete your stored files from object storage.
- Billing records: Stripe retains transaction records for as long as tax and accounting law requires, typically [RETENTION PERIOD — e.g. 7 years], even after your account is deleted.
- Logs, error reports and backups: kept for a limited period ([LOG RETENTION — e.g. 30 days] / [BACKUP RETENTION]), after which residual copies age out.
6. Cookies and local storage
MarkMyPages sets no advertising cookies, no analytics cookies and no cross-site tracking. Everything below is strictly necessary to sign you in and remember your preferences on your own device.
| Name | Type | Purpose | Lifetime |
|---|---|---|---|
refresh_token |
Cookie (httpOnly, Secure, SameSite=Strict) | Keeps you signed in by letting the app obtain a new short-lived access token. It cannot be read by JavaScript. | Up to 30 days with “remember me”; otherwise until you close the browser |
| OAuth state cookie | Cookie | Set only during a “Sign in with Google” round trip, to prevent request forgery. | Minutes |
| Laravel session cookie | Cookie | Server session for the web layer, including CSRF protection. | Session |
| Theme preference | Browser local storage | Remembers whether you chose light, dark or system appearance. | Until you clear site data |
| Onboarding / read-aloud preferences | Browser local storage | Remembers that you dismissed the onboarding banner and your read-aloud playback settings. | Until you clear site data |
Your access token is held in memory only for the life of the page; it is never written to cookies or local storage. Local-storage values stay on your device and are not sent to us.
Because these are all strictly necessary or purely local preferences, we do not show a consent banner. [COUNSEL TO CONFIRM THIS ANALYSIS FOR THE EU/UK ePRIVACY RULES, AND TO RE-CHECK IF ANALYTICS OR MARKETING TOOLS ARE EVER ADDED.]
7. Your rights
You can exercise most of these yourself, in the app:
- Access and portability. Download everything we hold about you — profile, documents metadata, annotations, labels, tags, folders and workspace memberships — from your account settings (the data export). Annotations can also be exported as Markdown, JSON, CSV or a PDF summary.
- Rectification. Edit your name and email in your profile settings.
- Erasure. Delete individual documents and annotations, or delete your whole account, from your account settings.
- Restriction and objection. Contact us at [PRIVACY EMAIL — e.g. [email protected]].
- Withdraw consent where we rely on it, and turn off non-essential email in your notification preferences.
- Complain to your data protection authority ([NAME THE SUPERVISORY AUTHORITY / AUTHORITIES]) if you think we have handled your data badly. We would rather you told us first.
If you are a member of someone else’s team workspace, requests about documents that workspace owner uploaded may need to be directed to them. [COUNSEL TO CONFIRM THE CONTROLLER/PROCESSOR SPLIT FOR TEAM WORKSPACES AND WHETHER A DATA PROCESSING ADDENDUM IS NEEDED FOR TEAM CUSTOMERS.]
8. Security
Traffic is encrypted in transit with TLS. Passwords are stored as salted hashes. Access tokens are short-lived and held only in memory; refresh tokens are one-time-use, rotated on every refresh, and replaying an old one revokes the whole session family. Uploaded files are served through short-lived pre-signed links rather than public URLs. No system is perfectly secure, and we cannot guarantee absolute security. [ADD BREACH-NOTIFICATION COMMITMENT AND TIMEFRAME.]
9. Children
The Service is not directed at children under [MINIMUM AGE]. We do not knowingly collect data from them. If you believe a child has given us data, contact us and we will delete it.
10. Changes to this policy
We may update this policy; the “last updated” date at the top always reflects the current version. For material changes we will notify you by email or in the app.
11. Contact
[LEGAL ENTITY NAME], [REGISTERED ADDRESS] — [PRIVACY EMAIL]. Data protection officer / EU-UK representative: [NAME AND ADDRESS, IF REQUIRED].