splitforms.com
SECURITY · TRUST · TRANSPARENCY

splitforms security — how we protect your form submissions.

A factual, non-marketing description of the controls we run, the providers we trust, and — just as importantly — the things we don't yet do. Updated as the platform evolves.

Last reviewed: May 9, 2026

Live01

TLS encryption in transit

Every request to splitforms.com — dashboard, API, and form POSTs to /api/submit — is served over HTTPS. Plain HTTP is redirected. TLS termination happens at the edge.

Live02

Encrypted at rest

Submissions, profiles, and uploaded files are stored on Supabase managed Postgres and Supabase Storage, which encrypt all data at rest using AES-256.

Live03

Row-Level Security isolation

Every customer-facing table (profiles, forms, submissions, webhooks) has Postgres RLS policies enforcing auth.uid() = user_id. One user's submissions are never visible to another.

Live04

Magic-link auth (no passwords)

splitforms doesn't store passwords. Sign-in is a one-time magic link emailed via Supabase Auth. There is no password database to leak.

Live05

Honeypot + domain whitelist

Every form has an invisible honeypot field (botcheck) and an optional allowed_domains origin check, so submissions only succeed from the sites you actually own.

Planned06

EU data region

Today all data is hosted in the US. An EU-resident option for Supabase is on the roadmap — useful for GDPR data-residency requirements. Marked planned, not shipped.

Infrastructure

splitforms is built on a small, well-known stack. We don't run our own datacentres; we trust providers whose security programmes are stronger than anything a tiny SaaS could replicate. Each provider holds its own SOC 2 / ISO 27001 attestations, which we inherit downstream.

Vercel
Compute & edge
Hosts the Next.js app, terminates TLS at the edge, runs API routes including /api/submit. SOC 2 Type II.
Supabase
Postgres, Auth, Storage
Managed Postgres on AWS for all primary data; Supabase Auth for magic-link login; Supabase Storage for uploaded files. SOC 2 Type II, encryption at rest.
AWS SES
Outbound email
Sends submission notifications, magic-link emails, and auto-responder messages. SOC 2 + ISO 27001.
Cloudflare
DNS
Authoritative DNS for splitforms.com. Helps mitigate DNS-level abuse. No traffic-level WAF in v0.
Stripe
Billing (Pro / 4-Year)
Payment processing for paid plans. We never see your card number — Stripe holds it under PCI DSS Level 1. We only store a customer ID and subscription status.

We do not use third-party analytics, marketing pixels, ad networks, or session-replay tools inside the splitforms dashboard or on submission endpoints. The fewer places your submissions touch, the smaller the blast radius.

Data isolation — Postgres Row-Level Security

Every customer-facing table — profiles, forms, submissions, webhooks, user_integrations — has Row-Level Security enabled in Postgres, with policies that scope reads, updates and deletes to auth.uid() = user_id. There is no shared "all-tenants" view, and there is no admin tooling that bypasses RLS for normal application traffic. The dashboard runs as the signed-in user, so the database itself enforces tenant isolation — even if app code had a bug, RLS would catch it.

The single exception is /api/submit, which runs as the Supabase service role to insert a row on behalf of an unauthenticated form visitor. That code path looks up the target form by its public access_key, applies rate limits and origin checks, and writes only to that form's user_id — it never reads cross-tenant data.

Read more about how Supabase implements RLS: Supabase RLS docs.

Authentication — magic links, no passwords

splitforms uses Supabase Auth's magic-link flow. To sign in, you enter your email and click the one-time link we send. Sessions are managed via short-lived JWT access tokens (refreshed automatically) stored in HttpOnly, SameSite=Lax cookies. Refresh tokens can be revoked server-side at any time.

What this means in practice:

Spam and abuse protection

Form submissions are an internet-facing endpoint, which means spam, scrapers, and runaway scripts try to abuse them constantly. splitforms ships several layered controls out of the box, with no setup on your part:

Data retention

We keep your submissions for as long as your account is active. There is no automated "expire after N days" policy out of the box — many customers want a permanent CRM of every lead they've received, so we don't delete on your behalf.

You stay in control:

If you need a custom retention policy (e.g. auto-delete submissions older than 90 days for compliance), email hello@splitforms.com.

What we don't do (yet)

Honesty is a security feature. Here's what splitforms does notcurrently have, so you can decide up-front whether we're a fit:

We'd rather tell you these gaps exist than imply controls we can't actually back up under audit.

Reporting a security issue

Found a vulnerability or have a security concern? Please email security@splitforms.com (also reachable at hello@splitforms.com). Include reproduction steps and any proof-of-concept relevant. We aim to acknowledge within one business day and keep you updated through remediation.

Please don't run automated scans or fuzzing against production endpoints — set up a free account and test against your own forms instead. We will not pursue good-faith researchers reporting under responsible-disclosure norms.

Frequently asked questions

Are my form submissions encrypted?

Yes — in transit and at rest. All traffic to splitforms.com uses HTTPS with TLS. Stored submissions live on Supabase managed Postgres, which encrypts data at rest using AES-256. File uploads in Supabase Storage are likewise encrypted at rest.

Do you store passwords?

No. splitforms uses magic-link authentication via Supabase Auth. To sign in, you enter your email and click the link we email you. There is no password field, no password hash on disk, and no password to leak in a breach.

Is splitforms GDPR compliant?

splitforms helps you meet GDPR for the form submissions you collect. You are the data controller for the submissions on your forms; splitforms is the data processor. We support data subject rights via the dashboard (export, delete) and offer a Data Processing Agreement on request. See /gdpr for the full breakdown.

Are you CCPA compliant?

Yes for the data we hold about you as a splitforms account holder. You can access, export, or delete your data from the dashboard at any time. We do not sell personal information to third parties. For broader CCPA programme questions, email hello@splitforms.com.

Are you HIPAA compliant?

No. splitforms is not HIPAA compliant and we do not sign Business Associate Agreements (BAAs). Do not use splitforms to collect Protected Health Information (PHI). If you need HIPAA, use a backend that's specifically built and audited for it.

Are you SOC 2 certified?

Not yet. splitforms is a small SaaS and we have not undergone a SOC 2 Type I or Type II audit. Our underlying infrastructure providers (Supabase, AWS, Vercel, Cloudflare) hold their own SOC 2 reports, which inherit downstream — but splitforms itself is not certified. A formal SOC 2 is on the roadmap once revenue justifies the audit cost.

Can I delete my data?

Yes. Individual submissions can be deleted from the dashboard at any time. Deleting your account cascades through Postgres foreign keys and removes all associated forms, submissions, webhooks, and profile data. If you want a full erasure confirmation in writing, email hello@splitforms.com.

Where is my data hosted?

Today, all production data lives in US regions: Supabase Postgres + Storage (AWS US), Vercel compute (US edge + Lambda regions), AWS SES (US), and Cloudflare for DNS. An EU-resident option is on the roadmap.

Can I get a Data Processing Agreement (DPA)?

Yes — email hello@splitforms.com with subject "DPA" and we'll send our standard DPA. It's a short, plain-English document covering processor obligations, sub-processors, breach notification, and data subject rights.

Is there an audit log of who accessed my submissions?

Internal admin write actions are recorded in an admin_audit_log table (used by the founder ops console). A user-facing access log surfaced inside the dashboard is on the roadmap and not yet shipped.

A form backend you can defend in a security review.

Honest controls, named providers, no fake certifications. Free for 1,000 submissions per month — no credit card.

Get started free Read GDPR details