What we do to protect your data, what we log, who helps us run Espresso, and where to report a problem.
The web app is a static website. Your data sits in a database where rules on every table decide who can read or change each row. Some work (AI features, email, sign-in codes, scheduled jobs) runs in server functions that can reach data the table rules would hide, so each has its own checks and they are reviewed separately.
Hosting
Cloudflare Pages (the website). Supabase (database, sign-in, files and server functions), with the database in London
Database requests
Through Supabase’s PostgREST layer, which uses parameterised queries
Client key
Only the public (publishable) key is in the web app
Stored content
Rich text is cleaned before it is shown, stored links and images are limited to safe addresses, and spreadsheet downloads neutralise formula cells
People sign in with a code sent to their email address. Access is by invitation; there is no self-registration.
Who can get an account
Invitation only. Sign-up is switched off at our login service; an organisation administrator or MGH invites each person
Sign-in code
An 8-digit code emailed to the person. It works once, expires after an hour, and wrong guesses are counted and capped
Passwords
Optional. At least 12 characters, checked against known leaked passwords. Changing one from an older sign-in needs a code emailed to the person
Sessions
A sign-in lasts one hour at a time and is renewed in the background; renewal tokens are replaced each time they are used
Second factor
None beyond the emailed code. There is no authenticator app or security key yet
Watching for abuse
Wrong and refused attempts are recorded with the network address, and repeated ones alert us (see what we record)
Your organisation's data is kept apart by Row Level Security in the database, not only by the app. We test this by trying forbidden actions as each role, and we fix gaps when we find them. We do not claim it can never fail.
Isolation Model
PostgreSQL Row Level Security, switched on for every table in the app’s database
Between organisations
Blocked by database rules, tested role by role
Our access
MGH staff can see all organisations when supporting them, including by opening a read-only view as a named person (see what we record). Automated tools that work for us can also reach more than one organisation’s data
Who can see what
Set by your role (below) and, for modules such as Lead Gen, RevOps and Reports, by a switch an administrator sets for each person
Data is encrypted in transit and at rest by our hosting providers. We do not add our own encryption on top.
Three roles limit what each person can see and change. Access to individual modules is also switched on person by person by an administrator.
Access to all organisations, projects and users. Held by MGH staff for support and operation.
Manages projects, tasks and members in their organisation. Can see all of its projects.
Sees and edits the projects they are added to, and can read projects their organisation has shared. Can create private projects of their own.
For personal data your organisation puts into Espresso, your organisation decides what goes in and we handle it to provide the service. We list below who helps us do that. Certificates mentioned belong to our providers, not to MGH.
Roles
Your organisation decides what data it puts in and is responsible for it. We handle it to provide the service.
Where data is held
Database and files in London (Supabase, on AWS). Some providers below are based in the United States.
Provider reports
Supabase and Cloudflare state that they hold SOC 2 Type II reports. MGH holds no SOC 2 or ISO certificate of its own, and we do not claim compliance with any scheme.
Who helps us run Espresso
Supabase (database, sign-in, files), Cloudflare (hosting), Resend (email), Anthropic (AI features), GitHub (a nightly record for our own agents). Full list below.
Built on cloud providers that publish their own security information. Any certification belongs to the provider, not to MGH.
Database
Supabase Postgres on AWS, London
Website delivery
Cloudflare Pages and CDN. HSTS asks browsers to use https for 30 days after a visit
File Storage
Supabase Storage, encrypted at rest by the provider
Browser protections
Other sites cannot frame Espresso; browsers are told not to guess content types; the referrer is limited; device permissions are restricted (the microphone is for voice notes only). A Content-Security-Policy is running in report-only mode: it records what it would block but blocks nothing yet, apart from framing
Releases
The website is released twice a day, around 07:00 and 19:00 UK time, when there is something new and every check passes. Database changes and server functions are applied by us by hand
Some features use AI. What you submit to them is sent to Anthropic, a provider based in the United States, to produce the answer.
We keep a few records so we can run and protect the service. We do not record the content you type in the usage logs.
These companies may handle information your organisation puts into Espresso, or information about the people who use it. We will update this list when it changes.
Please note: This page describes our controls as of the date below. Certifications such as SOC 2 Type II are held by our providers (Supabase, AWS, Cloudflare), not by MGH Ltd. Your organisation is responsible for its own policies and for deciding what personal data it puts into Espresso. This page is not legal advice and is not a promise of a result.
Email us with what you saw and how to repeat it. We will reply within three working days. If you think personal data has been exposed, say so in the subject line.
Please tell us before you share it anywhere else, and while you check, please do not look at, change or copy other people’s data or disrupt the service. We do not have a security team; reports go to the people who run Espresso.
Email: [email protected]
Describes our controls as of 8 November 2026 · Powered by MGH Ltd