Trust

How Surfil protects data

Written to be accurate, not vague: what exists today, what does not and where to check live status.

In four facts

The controls that matter most

Each one is described in full below.

HTTPSWith HSTS

RLSOn every table

CodesFor sign in

LiveStatus checks

Where it goes

The path your data takes

Four hops, each with one job.

  1. You

    Browser, over HTTPS

    Every connection uses HTTPS, with HSTS sent from the app.

  2. Cloudflare

    App, Pixel and daily jobs

    App hosting, files, Pixel, jobs and DNS. Raw events stay 7 days.

  3. Supabase

    Database, in Frankfurt

    Accounts and connected data are encrypted at rest, always.

  4. Stripe

    Payments

    Card data stays with Stripe under PCI-DSS, never with us.

The pixel

Built with nothing personal

A visitor hash from a salt that rotates daily, then is discarded.

What the pixel records

One line, cookieless from day one.

  • Page paths, without query strings
  • Referrers and AI referrals
  • Real speed from real visitors
  • Conversions and completed sales
  • UTM campaign tags
  • Deploys, so a change gets a date

What it never touches

Nothing personal left to leak.

  • Cookies or browser storage
  • Names, emails or IP addresses
  • A visitor ID that survives a day
  • Visitors who send Do Not Track
  • Raw events kept past 7 days
  • Anything that names a person
Access

Who can reach what

Enforced on the server, checked on every request.

Row-level security

Every table has it on, so a signed-in member can reach only their own rows.

Sign in codes

Members can turn on an authenticator app code. An admin who enrolled one is always asked for it.

Roles on every request

Each staff account has one role, checked each time, so removing it works at once.

Stricter for money, member data

Refunds, deletes and exports need a higher role than the page they sit on.

Keys kept off the browser

Cross-account code runs on the server only. Service keys never ship to the client.

A guarded crawler

Site checks fetch public pages only and refuse private, internal and loopback addresses.

Rate limits

Sign in, password reset and checkout are limited, and refuse when the limiter is down.

PII scrubbed from errors

Sentry events pass through a shared scrubber before leaving the runtime.

Connector tokens sealed

QuickBooks, Xero and Stripe Connect tokens are encrypted and kept in a vault, never in a table.

Revoked on disconnect

Disconnect revokes the token at the provider and deletes our copy. An owner script revokes all of them.

Your data

Take it with you, or have it gone

Both are in your account settings.

Export

Download everything we hold about you as one file, from settings.

Delete

Ask us to delete your account. Records the law makes us keep are retained.

Backups

Managed platform backups, with no published recovery time, so keep your own copy.

Subprocessors

Providers that touch data

What each does, where it runs and when.

ProviderPurposeLocationWhen used
CloudflareWebsite and app hosting, file storage, scheduled jobs, Pixel collection and raw events (7 days), DNS and abuse protectionGlobal network, files preferably in Eastern EuropeAlways
SupabaseDatabase and sign inEU (Frankfurt)Always
StripePayments and billingUnited StatesWhen you pay
Amazon SESEmail deliveryUnited StatesAlways
SentryError monitoringUnited StatesAlways
MixpanelProduct analyticsUnited StatesWhen you use the site
UpstashRate limitingGlobal networkAlways
PostHogProduct events, recorded on our serversUnited StatesWhen you use the product
GoogleSearch Console, AnalyticsUnited States, globalIf you connect it
AI text serviceInternal drafting, contact details removedUnited StatesInternal only

DPA available on request through contact. The full list is on the subprocessors page.

Uptime

Live checks, not a claim

The status page shows current database, Edge Worker and scheduled job checks. Surfil does not publish an uptime percentage here.

Open status

Honest account

What we have and lack

Certifications we do not hold are not implied.

What we have

Controls that exist and run today.

  • HTTPS and HSTS
  • Row-level security on every table
  • Sign in codes for enrolled accounts
  • Sign in limits that fail closed
  • Export links that expire in 7 days

What we do not have yet

Said plainly, nothing implied.

  • SOC 2 or ISO 27001 certification
  • HIPAA coverage
  • A paid bug-bounty program
  • A published pen-test schedule
  • A signed uptime guarantee

Found something? Tell us.

We read every report and acknowledge it.

The full account

Everything above, in writing

Last updated October 15, 2026. This text is the one to rely on.