Privacy Policy
Last updated: 24 August 2026
PageLock reads no customer personal information. It stores only the
merchant’s own lock configuration and the app’s own data — nothing about your buyers.
What we collect
When a merchant installs PageLock, we store the following:
- Shop domain (e.g.
your-store.myshopify.com) — to associate configuration with the right store.
- Shop session token (managed by Shopify’s session-storage adapter) — to authenticate the app on the merchant’s behalf. Kept only while the app is installed.
- Page-lock configuration: match type, match value, hashed password (scrypt with a random salt — we never store plaintext), label, active state.
- Secret-link configuration: token, label, optional expiry, revoke timestamp, open count.
- Open-event timestamps: when a secret link is opened, we persist the timestamp but no IP address or user agent with that event. It powers the merchant’s recent-open view.
- Temporary unlock-throttling data: an IP address and shop domain are held in application memory for about one minute to slow repeated wrong-password attempts. This bucket is not written to the PageLock database.
- Webhook processing metadata: Shopify delivery ID, topic, processing time, and a truncated one-way shop-domain digest used only to prevent duplicate webhook effects.
- Overlay customization: title, message, color, logo URL, skin, “powered by” toggle.
What we do NOT collect
- Customer personal information (name, email, address, phone) — PageLock never reads customer records.
- Order data — we don’t read or store any orders.
- Product or inventory data — the app reads product, collection, and page titles only to show them in the lock picker, and stores nothing beyond the handle a merchant chooses to lock.
- Browser fingerprints or advertising profiles. Hosting and network providers can process ordinary request metadata such as IP addresses for delivery, security, and logs.
How we use it
- Configuration is read on storefront page loads (via the app proxy) to decide whether to show the overlay.
- Storefront rendering reads a shop metafield to inject
noindex on locked URLs.
- Per-day open counts are shown to the merchant on the Secret Links page for the last 30 days.
How we share it
We do not sell merchant or visitor data. We use service providers only to run PageLock: Shopify for the app platform and billing, Vercel for hosting, Neon for the application database, and Sentry for error monitoring when configured. Configuration remains scoped to the installing shop. Sentry is configured not to receive request bodies, credentials, or merchant lock configuration.
How long we keep it
- Configuration: while the app is installed. Uninstalling deletes it immediately (the
app/uninstalled webhook wipes the shop row and its locks, links and sessions) — there is no grace period, so reinstalling means setting your locks up again.
- Open-event timestamps: retained while the app is installed and deleted with the shop’s PageLock data on uninstall.
- Webhook processing metadata: retained for at most 90 days. Its shop-domain digest is removed on uninstall or shop redaction.
- Shop sessions: deleted immediately on the
app/uninstalled webhook.
shop/redact: all data for the shop is deleted within 48 hours of the request.
customers/redact and customers/data_request: no action needed — we store no customer data.
How to delete your data
Uninstall the app — the app/uninstalled webhook wipes shop data immediately. For explicit confirmation, email danny@8thorigin.com.
Security
- Passwords stored as scrypt hashes with per-password random salts.
- Constant-time comparison on verification (prevents timing attacks).
- HMAC-SHA256-signed 12-hour browser access tokens, stored in local storage and a compatibility cookie on the storefront.
- Short-lived in-memory throttling for repeated unlock attempts.
- All traffic over HTTPS, end to end.
Changes to this policy
If we change what we collect or how we use it, we’ll update this page and notify installed merchants via the embedded admin.
Contact
danny@8thorigin.com