Skip to main content
Citation Safe

Security

Last verified July 17, 2026.

This page describes what is actually deployed, verified directly against our database and code — not a compliance-marketing page. We do not hold a SOC 2 report, ISO 27001 certification, or any other third-party security certification, and we do not claim to. If a claim isn’t backed by something we can point to below, it isn’t on this page.

Encryption in transit and at rest

All traffic to citationsafe.com is served over HTTPS. Our host, Vercel, supports TLS 1.2 and TLS 1.3 at the edge and negotiates TLS 1.3 with modern clients (see Vercel’s encryption documentation); plaintext HTTP is not served. Our database, hosted on Supabase, is encrypted at rest using AES-256 by default and encrypted in transit via TLS, per Supabase’s published security page — that is Supabase’s documented guarantee about its own infrastructure, not an independent audit we have performed ourselves.

Document handling

Documents and briefs submitted for verification are parsed and checked in memory during the request; there is no code path in this application that writes an uploaded file to disk or object storage (verified: zero calls to Supabase Storage anywhere in the codebase). What is written to the database is a SHA-256 hash of the submitted text plus citation-level metadata (the matched citation string, verdict, source URL, confidence) — never the surrounding document text. We are hardening this into a database-level guarantee (a constraint that makes full-text storage physically impossible, not just absent from today’s code paths) and will publish a stronger “zero-retention” statement once that lands and is verified in production. Until then, we are not making that stronger claim here — see retention schedule and privacy policy for what is retained today.

Database access control — Row Level Security

Every table in our production database (43 of 43, verified live via Postgres system catalogs) has Row Level Security (RLS) enabled. 32 of those 43 tables have zero RLS policies defined, which in Postgres means default-deny: no row is readable or writable through the public API using an anonymous or authenticated end-user key, even if that key were leaked — only our backend, using a service-role key that never reaches the browser, can read or write those tables. The remaining tables carry narrowly scoped policies for specific self-service cases (for example, a signed-in user reading their own verification history), never a blanket allow.

Access controls

Rate limiting

Abuse and free-tier limits (signup attempts, free citation checks, free-tool usage) are enforced with durable, database-backed counters — not in-memory counters that reset on redeploy or can be bypassed by hitting a different serverless instance. Where a rate-limit check itself fails due to an infrastructure error, it fails open (allows the request) rather than taking the product down over a transient database hiccup — a deliberate availability-over-strictness tradeoff for low-severity limits, documented in code where it applies.

Payments

All payment processing runs through Stripe. We never see or store full card numbers — Stripe handles card data directly and we receive only limited billing metadata (plan, status, last four digits, billing country) back via webhook. Stripe’s own PCI DSS Level 1 certification and security practices are documented on Stripe’s security page — that is Stripe’s claim about Stripe, not ours.

Hosting, infrastructure, and subprocessors

The application is hosted on Vercel (application layer, TLS termination, edge network) and Supabase (Postgres database). Paid-tier proposition-matching checks make a single model call to Anthropic , sent only a narrow citation/quote/proposition excerpt, never the full document. Both hosting providers and Anthropic publish their own security and compliance documentation at the links above — those are their documented guarantees about their own infrastructure, not claims we are independently making or auditing on their behalf. See the full subprocessor list for every third party that touches customer data and what each one handles.

Compliance posture

Incident response

Found a security issue? Email security@citationsafe.com (or support@citationsafe.com if that doesn’t reach us). We will acknowledge and investigate reports; we do not currently offer a paid bounty. For confirmed incidents affecting customer data, we will notify affected account holders directly by email.

Related pages

Privacy policy · Breach response protocol · Subprocessor list · Retention schedule · Data Processing Addendum (template) · Methodology

Digital Empire Holdings LLC · 30 N Gould St Ste N, Sheridan, WY 82801.