Trust & security
Built to be trusted with other people’s photos.
Lifesizy processes photos of identifiable people, sometimes children, on behalf of print shops. That fact shaped the architecture before it shaped this page. Here is what we do with data, where it lives, and what we promise when something goes wrong: in one place, written to be read.
At a glance
EU infrastructure
The web app and the cutline engine run on our own servers in Germany. Database and photo storage sit in Frankfurt, in the EU.
Photos deleted after 30 days
Stored order photos are deleted automatically after 30 days. A nightly job enforces it in code, not in a policy document.
Stateless previews
The preview engine keeps nothing. A photo is processed in memory and discarded the moment your customer’s preview is returned.
Cookieless widget
The embed on your site sets no cookies and runs no analytics or tracking, so it creates no consent-banner obligation for your store.
Never used for AI training
Your customers’ photos never train, fine-tune, or evaluate any model, and are never reused for anything. This survives the end of the contract.
GDPR processor, DPA included
We process photos on your behalf as a GDPR processor. A data processing agreement is part of every subscription, automatically.
Your customers’ photos
A photo reaches us for one purpose: to build the cutline preview and, if it becomes a real order, the production PDF. While your customer is still choosing a size, the preview engine processes the photo in memory and stores nothing.
Once a photo belongs to an order (through your hosted portal, or synced from your own webshop with a paid order), we store it so you can collect it, for at most 30 days. Then it is deleted automatically. The deletion is enforced by code that runs every night, not by a sentence in a policy.
Before any photo is stored, its embedded metadata is stripped: the GPS location and camera details that phones quietly attach. And no photo is ever used for AI training, marketing, analytics or demos, in any form, ever. The full detail per route is in our privacy notice.
Where data lives
Everything runs on EU-region infrastructure. The web application and the cutline engine run on our own servers at Hetzner in Falkenstein, Germany. The database and photo storage run on Supabase in Frankfurt, Germany, and data at rest stays in the EU. Every connection is encrypted in transit.
We are a Dutch company (Lifesizy is a trade name of CasMaster, Hoofddorp, the Netherlands), so the GDPR is our home turf rather than a foreign obligation.
Sub-processors
These are the vendors that may touch personal data when we work for you. The scope marker matters: only vendors marked “shop data” ever touch data we process on your behalf, and only those are sub-processors under the data processing agreement. The others touch only data of our own (our leads, our customer administration, our internal reporting).
We notify shops by e-mail at least 14 days before adding or replacing a vendor that touches shop data, and you may object on reasonable data-protection grounds.
Hetzner Online GmbH
Shop data + our own- Role
- Runs both applications on our own servers: the web app (site, shop dashboard, portal, APIs) and the cutline engine (background removal, contour, preview, production PDF).
- Data touched
- Request data in transit, including uploaded photos passing through; shop account data; lead form submissions; access logs (IP, timestamp, path) kept 7 days, then deleted. The engine holds photos in memory only and stores nothing.
- Location
- Germany (Falkenstein), EU. A German company with German data centres.
- Transfer mechanism
- None needed: everything stays inside the EU. Hetzner’s standard data processing agreement (AVV) applies.
Supabase Inc.
Shop data + our own- Role
- Database and file storage: shop accounts, orders, and the photos stored with them.
- Data touched
- Stored order photos (hosted-portal uploads and photos synced with paid WooCommerce orders, up to 30 days), order rows, shop account records, lead records, invoice records.
- Location
- EU region (Frankfurt, Germany); data at rest stays in the EU. The parent company is US-based, and US staff could in principle access systems for support. We say that honestly rather than pretend otherwise.
- Transfer mechanism
- Data is stored in the EU; Supabase’s DPA with Standard Contractual Clauses covers any US parent or support access.
Resend, Inc.
Shop data + our own- Role
- Transactional e-mail (optional; only active if configured).
- Data touched
- Recipient e-mail address and message content, never photos. The mail that tells a shop about a new order carries the customer-typed order reference and the chosen size, which is order data we hold on the shop’s behalf; that is why Resend is on the sub-processor side of this list.
- Location
- United States.
- Transfer mechanism
- Standard Contractual Clauses incorporated in Resend’s DPA.
Anthropic PBC
Our own data only, never a shop’s customer data- Role
- Optional internal analyst that writes a daily business summary in our own admin dashboard. It runs only if we explicitly switch it on.
- Data touched
- Our own operating numbers: order, preview and PDF counts, timings, server stats, lead and task counts, and the business names of our shop customers. Never photos, never order contents or references, never end-customer data. The payload is built from a field-by-field allow-list that is enforced in code and pinned by tests.
- Location
- United States.
- Transfer mechanism
- Standard Contractual Clauses in Anthropic’s commercial DPA; under its commercial terms, API inputs are not used to train models.
ntfy.sh
Our own data only, never a shop’s customer data- Role
- Sends operational alerts to our own phone: our site is down, our site is back up, a deploy failed, someone asked for a demo.
- Data touched
- A short status line and nothing else. No names, no e-mail addresses, no photos, no order data. An alert says “a print shop asked for a demo, open the admin page”; it never says who. Every alert we send is a fixed sentence written by us: no field from a form, an order or a photo is ever put into one. As a backstop, the code also refuses to send anything that looks like an address or a key.
- Location
- United States.
- Transfer mechanism
- No transfer mechanism is needed, because no personal data is sent. We list the vendor anyway so this page shows every outside service we use.
What is deliberately not on this list: analytics or advertising vendors (the widget and portal are cookieless), and any AI service in the photo path. Customer photos are never sent to a model provider and never used for training, by us or by anyone else. To be precise about what that does and does not mean: the cutline itself is traced by a model, but it is our own, it runs inside our own container on our own servers in Germany, and it is nobody’s sub-processor because no third party is involved. The full explanation is in our privacy notice.
Sub-processor list last updated 4 August 2026.
The widget on your site
Our code runs on your storefront, so it is built as a guest, not an owner. The embed is cookieless: no analytics, no tracking pixels, no consent-banner obligation caused by us. It lives in an isolated shadow DOM, does not read or restyle the rest of your page, and loads from a pinned origin.
We do not quote an uptime percentage we have not earned yet. Instead the design assumes failure: if Lifesizy is ever unreachable, your product page keeps working, our WooCommerce plugin keeps selling on cached settings, and your checkout never waits for us. Paid orders placed just before or during an outage reach your dashboard once we are back (the plugin retries on its own for roughly two days, with a manual retry button after that). What does pause is new cutline previews, and with them new cutout orders: a customer cannot approve a cutline they cannot see, and we would rather say that plainly than promise a number.
Security practices
Honestly described: we hold no ISO 27001 or SOC 2 certification and do not claim one. What we do have is a security posture built for a system that accepts strangers’ uploads on other people’s websites:
- Uploads are validated on content, not just file extension, and size-capped before they can touch memory.
- Passwords are stored with a memory-hard hash; API keys are stored hashed and shown only once.
- Every endpoint that accepts input is rate-limited, against abuse and against cost attacks.
- Each shop’s data is partitioned per shop by construction. One shop can never read another shop’s orders or photos, and cross-tenant access attempts have been adversarially tested.
- Every release passes a security review with veto power, and we run red-team attacks against our own stack before strangers get the chance.
- No secrets live in our code repository.
If something goes wrong
If a personal data breach affects your data, we notify you without undue delay and at the latest within 48 hours of becoming aware, with what happened, what data was involved, and what we did. Your own 72-hour clock towards your supervisory authority starts when you become aware, which is exactly why we commit to well inside that window. We update the notice as facts firm up rather than waiting for a complete picture. Our incident runbook exists before our first customer, not after.
Paperwork
Everything your compliance file needs is public and written to be read:
- The data processing agreement (GDPR Art. 28). It applies automatically from the moment your account is activated; no signature chase. We countersign a copy on request for your records.
- The sub-processor list above, with a 14-day change notice.
- Our privacy notice and terms of service.
Software licences
Due diligence sometimes asks what our product is allowed to be built from. Short answers, verified against the code rather than assumed:
- The AI model that removes photo backgrounds is u2net, under the Apache 2.0 licence, loaded through the MIT-licensed rembg library. Both allow commercial use without payment.
- The model choice is fixed in code and guarded by an allow-list of models whose licences permit free commercial use, checked in our build pipeline. No setting, environment variable or incoming request can load a paid or unvetted model.
- Production PDFs embed no fonts: all production text is rendered to pixels at print resolution, so no font licence travels with your files.
- A full, dated licence overview of everything we run and ship, written for a lawyer to check without reading code, is available on request.
Questions?
We answer security and privacy questions from shops and their advisers at hello@lifesizy.com. Ask us the hard ones.
Last updated 4 August 2026. This page changes whenever a data flow or vendor changes, and the dates on it are real.