How fenfill protects your forms and your clients' answers
What your clients type into a fenfill form never reaches our servers. The blank PDF you upload is encrypted in your browser first, and your documents are stored in the EU. This page shows where each piece of data goes, and what we don't claim yet.
7 min readUpdated
- What your clients type never reaches our servers, and fenfill never stores the filled PDF.
- The PDFs you upload are encrypted in your browser before upload, with AES-256-GCM and a new key for each file.
- Your documents are stored in the EU, in Stockholm, and processed in Helsinki.
- No analytics, ad or tracking scripts, and no session recording.
- We say plainly what we don't have yet: no SOC 2 report, no ISO 27001 certification, no HIPAA compliance.
What we store, and what we never do
For a law firm, an accountant or anyone else handling client details, the useful question isn't whether a tool calls itself secure. It's which of your clients' details end up on someone else's servers, and for how long. With fenfill, the answers your clients type end up on none.
If you're deciding whether client forms belong in fenfill, start with what we actually keep. fenfill stores the blank form you set up, and what it needs to show that form to you and to the people you send it to. What your clients type, and the filled PDF they make, never reach our servers. Here are the main pieces, and how each one is handled.
| Does fenfill store it? | How it's handled | |
|---|---|---|
| The blank PDF you upload | Yes, until you delete it | Encrypted in your browser before upload, with a new key for each file |
| Page previews (the page images the editor shows) | Yes, until you delete the template | Private: served only through short-lived signed links |
| Field layout and form text | Yes, with the template | Stored with the provider's disk encryption |
| What your clients type | Never | Stays in their browser |
| The filled PDF | Never | Made in the filler's browser; they download it |
| Unfinished answers | Never | Saved encrypted on the filler's own device, cleared after download or 30 days of inactivity |
| Signatures | Never | Stay on the filler's device; remembered only if they tick "Remember on this device" (30 days) |
| Completion status | Yes | Only that a link was opened and when it was completed, plus an anonymous count of fills. No content. |
| Your sign-in | Yes, your account | Sign-in through Google or Microsoft; fenfill has no passwords to store |
The blank PDF you upload
- Does fenfill store it?
- Yes, until you delete it
- How it's handled
- Encrypted in your browser before upload, with a new key for each file
Page previews (the page images the editor shows)
- Does fenfill store it?
- Yes, until you delete the template
- How it's handled
- Private: served only through short-lived signed links
Field layout and form text
- Does fenfill store it?
- Yes, with the template
- How it's handled
- Stored with the provider's disk encryption
What your clients type
- Does fenfill store it?
- Never
- How it's handled
- Stays in their browser
The filled PDF
- Does fenfill store it?
- Never
- How it's handled
- Made in the filler's browser; they download it
Unfinished answers
- Does fenfill store it?
- Never
- How it's handled
- Saved encrypted on the filler's own device, cleared after download or 30 days of inactivity
Signatures
- Does fenfill store it?
- Never
- How it's handled
- Stay on the filler's device; remembered only if they tick "Remember on this device" (30 days)
Completion status
- Does fenfill store it?
- Yes
- How it's handled
- Only that a link was opened and when it was completed, plus an anonymous count of fills. No content.
Your sign-in
- Does fenfill store it?
- Yes, your account
- How it's handled
- Sign-in through Google or Microsoft; fenfill has no passwords to store
The last step is worth spelling out. When your client finishes, they download the filled PDF: the same document, with their answers stamped on. They send it to you themselves, by email or however they usually send you files, and fenfill shows you that they've completed it. That signal carries no content. fenfill learns that the form was completed, never what it says.
So the return trip travels however your client chooses to send it. fenfill keeps the answers off our servers from the first keystroke to the download. It doesn't replace the way a finished document reaches you, and we won't pretend it does.
How a form moves through fenfill, and where it's encrypted
A form makes three stops between the moment you upload it and the moment your client sends the finished PDF back. Here is what each stop sees, and what it never does.
The data flow
Three stops, and what each one sees
Your upload, field detection, your client's browser.
- 1
You upload the blank form
It's encrypted in your browser before it leaves, then stored in Stockholm.
- 2
fenfill finds the fields
Page images of the blank form go to field detection, only when you run it. Forms that already have fillable fields skip it. Answers never go.
- 3
Your client fills it in their browser
The answers and the filled PDF stay on their device until they download it and send it to you.
Encryption starts before the file leaves your computer. Your browser creates a new key for each PDF and encrypts the file with AES-256-GCM, so what travels to our storage is already encrypted.
That file key is then protected ("wrapped") on our server with a master key that's kept apart from the storage. The encrypted file sits in one place, and the key that opens it is locked with a key kept somewhere else. Someone who got hold of the stored PDF files alone would find only encrypted data, without the keys to open them.
Not everything gets that in-browser encryption. The page previews, the field layout and the form's text rely on our storage provider's disk encryption instead. Every connection to fenfill uses TLS, with HSTS switched on.
If you'd rather not upload a PDF at all, Quickfill fills a PDF in your browser without uploading it. You place the fields by hand, fill it and download it, and the file stays on your device.
Where your data is stored and processed
Your data is stored and processed in the EU, with two exceptions: payments, handled by Stripe in the US, and field detection, which runs on Google's Gemini (more on that below).

Your database, files and sign-in live in Stockholm, with Supabase (eu-north-1). Processing runs in Helsinki, at Hetzner, and the site's web functions run in Stockholm, on Vercel.
The site's pages themselves are delivered through a global content delivery network. Your documents are stored in the places above. So when a client asks where their form is kept, you have a short answer: the blank form in Stockholm, and their answers nowhere but their own device.
fenfill is an EU-hosted business, governed by the GDPR. Each of our subprocessors works under a data processing agreement: Supabase, Hetzner, Vercel, Google (for field detection), Sentry (for error monitoring, in the EU) and Postmark (for our service emails). Payments are the exception: Stripe sells our paid plans as merchant of record and is responsible for that data itself. You'll find the full list on our privacy page, with what each one does.
What field detection sees
fenfill uses AI to find the fields on flat and scanned forms. Detection runs only when you choose to run it, on the pages you pick. You can also set up a flat form entirely by hand, and then nothing goes to detection at all. If you run detection on a page a second time, that page is sent again.
Forms that already have fillable fields are read directly, and detection doesn't run on them. What detection finds becomes part of the template's field layout, stored as described above, and you can check and change every field in the editor before anyone fills the form.
Field detection runs on Google's Gemini under Google's paid API terms: page images are not used to train models. Google may process them outside the EU, under the Standard Contractual Clauses.
Detection sees whatever is on the pages you upload, so upload the blank form. If a PDF already has someone's details typed on it, those details are part of the page images too. If all you have is a filled copy, download a fresh blank one from wherever the form comes from.
Who can open your forms
Your account comes first. You sign in with Google or Microsoft, so fenfill has no passwords to store. Other workspaces are kept apart by rules enforced in the database itself (row-level security), and we test that isolation, including with a second real workspace trying to reach the first one's forms.
Then there are your share links. A public link can be opened by anyone who has it. A private link is made for one person. It works for whoever holds it, so send each one only to its person, and you can revoke it at any time. Revoking stops that person opening the form again, and cuts off its page images too. A public link suits a form many people fill, like a general intake sheet. It doesn't suit a form about one client's matter.
Private links are on Pro and up, and each one shows whether it's pending, opened or completed. Here's how private links work, step by step.
In your browser
fenfill runs no analytics, ad or tracking scripts, and no session recording. The only outside script is the payment provider's, and it loads on the checkout step only.
Every page carries a strict script policy: a nonce-based Content Security Policy. It tells the browser to run only scripts that fenfill's own pages start, which makes it much harder for code slipped into a page to run.
If your client stops halfway through a form, their answers are saved on their own device, encrypted, and cleared after they download the PDF or after 30 days of inactivity. That draft never reaches us.
Deleting your data, and how long we keep it
Your documents stay in fenfill until you delete them. Everything else has a set lifetime:
- forms frozen after a plan change are deleted after 60 days
- unfinished answers on a filler's device clear after 30 days of inactivity
- remembered signatures clear after 30 days
Delete a template and the PDF, its page previews and the template are removed. Delete your account and everything in your workspace goes with it.
You delete your account from Settings in the dashboard. If you have an active paid subscription, cancel it first: the account can't be deleted while a subscription is running.
Deleting reaches what fenfill holds, not your clients' devices. A PDF a client has already downloaded stays with them, like any file you've sent by email.
What we don't claim (yet)
Security pages often open with a row of badges. Here is our list of what we don't have yet. fenfill has no SOC 2 report and no ISO 27001 certification.
fenfill isn't HIPAA compliant and doesn't sign business associate agreements, so it isn't the place for patients' health information. If your work requires any of these, fenfill isn't the right fit yet, and we'd rather you knew that now than after you've set up your forms.
We'd rather tell you what we don't have than show you a wall of badges.
fenfill isn't end-to-end encrypted. Our servers can decrypt the PDFs you upload, for the reasons set out above.
Not everything happens in the EU. Payments are handled in the US, field detection runs on Google's Gemini and may be processed outside the EU, and the site's pages are delivered through a global network.
Signatures in fenfill are simple electronic signatures: a drawn, typed or uploaded image placed on the document. Whether one is enough depends on the document and who receives it, so check what they accept.
When any of this changes, this page changes first, and the date at the top moves with it.
Report a vulnerability
Found a security problem? Email security@fenfill.com. Our contact details are also published at /.well-known/security.txt.
Tell us enough to reproduce it: the page or request involved, what you did and what you saw. Please don't access or change other people's data while you look, and give us a chance to fix the problem before you share it.


