Security
Last updated 28 September 2026
Stubborn Fact holds privileged client files, so this page says only what the software actually does — nothing aspirational.
Each firm is walled off inside the database
Every table that holds firm records has row-level security switched on. The database itself checks, on every read and every write, that the record belongs to the signed-in person’s firm. The screens do not have to get it right for the wall to hold.
An automated check signs in as one firm and tries to read and change another’s records, and tries again with no account at all. A signed-out visitor can read nothing.
Stored documents are filed under the firm’s own folder, and the storage rules refuse anyone from another firm.
Keys and passwords
The keys for the AI services live only on the server. The browser never receives them.
On the Windows desktop app, any AI keys are stored encrypted with the computer’s own Windows sign-in and never leave that computer.
Passwords are stored by our sign-in provider, Supabase, only as one-way hashes. Signing in with Google happens on Google’s own page, so Stubborn Fact never sees a Google password.
What the AI may read
The AI features run only when someone asks for them. A document or case marked sensitive is refused by the server before the file is even retrieved, so nothing from it reaches any AI service. That is enforced on the server, not by hiding a button.
Every firm has a daily AI spending limit and a per-minute limit, checked on the server before each request, so a runaway loop or a stolen session cannot run up unlimited use.
Calendar feeds
A firm’s court-date feed for phone calendars uses a secret link made from 32 random bytes. It returns only that firm’s confirmed hearings, can be replaced from Settings (which stops the old link working at once), and a wrong link gets an empty calendar, which tells a guesser nothing.
No tracking
Stubborn Fact loads no analytics, advertising or tracking scripts.
Our hosting providers
The database and files are hosted by Supabase and the website by Vercel. According to their own documentation, both serve all traffic over encrypted connections (TLS), and Supabase encrypts stored data at rest. The full list of outside services is on the Privacy page.
Support access
Our policy (see Terms of Service section 5): support access will be something a firm switches on, for 45 days, with every view and every change logged for the firm to see. That switch is not built yet, so today nobody at Stubborn Factopens a firm’s case data, except to prepare an export the firm has asked for in writing.
Reporting a problem
If you think you have found a security problem, email support@stubbornfact.com.