Privacy Policy
Last updated: October 21, 2026 ยท Operated by NerdLabs (Joren Winge)
ProofKit ("ProofKit: Sales Pop Up & Timer") is a Shopify app that adds four storefront widgets to a merchant's store: a recent sales popup, live visitor and sold counts on product pages, an announcement bar, and a countdown to a deadline the merchant sets. It runs as a theme app embed. This policy explains what data the app processes, why, and how it is protected.
No customer personal data is kept or shown. ProofKit never stores or displays a customer's name, email, phone number or address. The sales popup says "Someone just boughtโฆ" and never shows who bought or where they are. Shoppers are not tracked: no cookies, no profiles.
Data from the merchant's store
- Orders: Shopify notifies ProofKit of each new order. From that notification ProofKit keeps only, for each order line, the product ID, the quantity, the time of the order and the order's ID (so the same order is never counted twice). This powers the recent sales popup and the "sold in the last 24 hours / 7 days" count. Customer names, emails, phone numbers and addresses in the notification are ignored โ never stored, logged or shown. Order records are deleted after 30 days, and when the app is uninstalled.
- Products: product titles, handles and images, so the popup and counts can name and show the product. To show the widgets, ProofKit publishes the recent-sales list (product title, link, image and time of each sale) and per-product sold counts to your store's own storefront data (app metafields), where your storefront reads them. This contains nothing about who bought.
- Widget settings: what the merchant sets up for each widget, such as announcement messages and links, countdown deadlines, page targeting and schedules.
Shoppers visiting the store
- Live viewer count: to count how many different people are viewing a product, ProofKit uses a random per-tab id (created by the shopper's browser and kept only in that browser session) and the shopper's IP address as forwarded by Shopify. Both are held only in our server's memory, used only to count distinct viewers over the last 5 minutes and to limit abusive request rates, and cleared within about 6 minutes. ProofKit never writes them to a database or links them to anything else, and no cookies are set. (Like any website, our web server may record request addresses in short-lived security logs.)
- Browser storage: ProofKit uses the browser's session storage โ not cookies โ to remember the random tab id, whether a shopper closed a bar, and how many (and which) sales popups it has shown in that visit. It is cleared when the tab is closed and contains nothing that identifies the shopper.
- Analytics (Pro plan): daily counts, per widget, of how often it was shown and clicked. Nothing about any individual shopper is recorded.
Merchant account data
- Store data: the store's
myshopify.comdomain, an expiring Shopify access token, and the subscription plan tier. - Store owner's email: the email address on the store owner's Shopify account (as set in Shopify, not the store's public contact email), its admin language, and whether it is a development store โ used only to email the store owner: service and billing emails such as account alerts, a one-time welcome note on upgrading to a paid plan, and a one-time note after uninstalling asking what we could improve.
- Support messages: If you message us from inside the app (including a free setup or customization request), we store your messages, your shop domain, the reply-to email address and name you provide or that Shopify lists for your store, and your admin language โ used only to answer you and to email you when we reply.
- Error reports: If a page of the app in your Shopify admin hits a technical error, your browser sends us the error message and stack trace, the page address (without its query string), the browser type, and your shop domain, so we can find and fix the bug. Our support service on our DigitalOcean server stores the report and, through Mailgun, emails an alert with the error text and stack trace, page address and shop domain to our team's mailbox, which Google hosts. When Shopify's
shop/redactrequest arrives, your shop domain in the stored reports is replaced with an anonymous identifier and the page address and browser type are removed. That does not cover the alert emails: we keep them while we need them to fix the bug and delete them on request.
Why we process it
Solely to provide the app's functionality to the merchant: showing the widgets they turn on, with real sales and visitor numbers, and, on Pro, reporting how the widgets perform, and customer support (in-app support messages and free setup and customization help). The store owner's email is used only for the emails described above, and the reply-to address only to answer your support messages. We do not use any of this data for advertising, profiling, or sale. Error reports are used only to find and fix bugs in the app.
Sharing
- Shopify โ the platform APIs the app is built on.
- DigitalOcean โ hosts the server and database.
- Mailgun โ our email provider; delivers our emails to the store owner and to the reply-to address for support messages described above (sent from support@nerdlabs.us), using the email addresses described above.
- Google โ hosts our team's mailbox, which receives error alerts.
We do not sell data or share it for any other purpose.
Retention and deletion
Order records (product ID, quantity, time and order ID) are deleted after
30 days. Analytics counts are kept for 90 days. Widget settings are kept
while the app is installed.
When the app is uninstalled, order records are deleted, and so are sessions
and access tokens. 48 hours after uninstall, Shopify sends a
shop/redact request and we delete all data the app stores for that shop (except technical error reports and their alert emails, which are handled as described above),
including the store owner's email, and we delete your support messages from
our support-inbox database. Support messages
are also deleted sooner on request. Backup copies of support messages age out
within 30 days.
The app's database is backed up hourly to the same encrypted volume, and those backups are kept for 7 days; the server also has daily whole-server backups kept for 7 days. So data deleted from the app's database is gone from all backups within 7 days.
ProofKit honours Shopify's mandatory privacy webhooks:
customers/data_request, customers/redact and
shop/redact. Because ProofKit holds no customer personal data,
there is nothing about any customer to disclose or redact.
Security
Data is stored on a DigitalOcean server, on a dedicated storage volume that is encrypted at rest, with SSH-key-only administrative access. Support messages are held separately, in our support-inbox database on the same server (not on that encrypted volume). Our team reads them in a web support inbox that signs in only with a single-use link emailed to our team's addresses; server access is SSH-key-only. All traffic uses HTTPS. App secrets are held only in the server environment.
Changes
We may update this policy; material changes will be reflected here with a new "last updated" date.
Contact
Questions about this policy or your data: support@nerdlabs.us.