Trust
Built for firms with rules.
How Geraci Conference App keeps your organization's data apart from everyone else's, what it records, and how you take everything with you. This page describes the software as it is built today.
Tenant isolation
Every organization is a tenant. Nothing crosses from one to another, and three separate layers make sure of it.
- Every record carries its organization. Events, sessions, speakers, registrations, partners and files all belong to exactly one organization.
- The database refuses to cross. Postgres row-level security is on, and forced, for every table that holds tenant data. The application connects with a role that can only see the rows of the organization it is working for, so even a mistaken query returns nothing from anyone else.
- The application scopes every query too. A second layer adds the organization to every query before it reaches the database, and refuses one that names another organization.
- Tested on every change. Every endpoint has an automated test that tries another organization's ids and must be refused. The public event sites have their own tests that unpublished content never appears.
- Permissions on every action. Owners, admins and staff each have a fixed set of actions; staff, for example, see attendees but not amounts paid.
Audit log
Every change that touches personal data, and everything destructive, is written down when it happens.
- Who, what and when. Sign-ins, invitations and role changes, publishing, payments confirmed by hand, exports, imports and deletions are recorded with the person who did them.
- Viewing personal data is recorded too, for example opening the attendee list.
- Readable in plain sentences. Owners and admins read the log in Settings, filtered by person, action and date.
- Append-only. The application can add to the log but cannot change or delete an entry.
Export everything
Your data is yours. You take it out yourself, whenever you like, on every plan.
- One archive, every record. Owners and admins export the whole organization as CSV or JSON from Settings.
- Short-lived downloads. An export is kept for 7 days, then deleted. Only owners and admins of that organization can download it, and each download is logged.
- An API for the rest. Partner API keys are narrow (one organization, named scopes), stored hashed, and shown once. Webhooks are signed, so your systems can check a message came from us.
Data handling
What the software keeps, how it protects secrets, and what is still to be published.
- Secrets are never stored in clear. Passwords are hashed with Argon2id. Email codes, invitation links, self-serve profile links and API keys are stored as hashes, so a copy of the database does not reveal them.
- No card numbers. Card payments happen on Stripe's checkout page, through the organizer's own Stripe account; we keep the payment's status and amount, and the card brand and last four digits. Payments made another way are confirmed by the organizer.
- Uploads are checked. Logos and photos must really be PNG, JPEG or WebP (checked by their bytes, never SVG), up to 2 MB, and are served with strict headers.
- No trackers. Event sites and these pages load no analytics or advertising scripts, and web fonts are served from our own address.
- Email through one provider, from your organization's name. Nothing in the sending path logs a message body, a code or a recipient.
- Still to be published: the hosting region, the list of sub-processors and retention periods. They will be in the privacy notice before the product is generally available.
Accessibility statement
Our target is WCAG 2.2 level AA, for organizers and for attendees.
- How we check. Every screen in the main journeys is tested with axe-core against WCAG 2.2 A and AA rules, in light and dark mode, and the sign-up, setup and registration flows are tested with the keyboard alone.
- Built in, not bolted on. One design system with colour contrast checked in numbers (including your own brand colours), visible focus, labelled controls, and moving focus to each new step's heading.
- What we know is not there yet. Some drag-and-drop editing in the agenda has a keyboard alternative that does not yet cover every case, and the product has been checked in Chromium browsers more than in others. We fix these as we find them.
- Tell us. If something gets in your way, write to the support address in your admin. We treat accessibility problems as bugs.