Data security and disaster recovery
Last updated: 22 October 2026
This page describes how the ProfiSprávceSVJ website, client portal and mobile app and the SVJ Monitor app store, protect and back up data. We only describe what we actually do. The legal details of personal data processing are in the privacy policy and the SVJ Monitor privacy policy.
1. Where we store data and how we protect it
Where
Portal and app data is stored in databases run by Neon and Supabase in EU data centres in Frankfurt (Germany) and Ireland. Uploaded photos and documents are kept in Supabase storage in the EU. Electronic signatures of documents are handled by our own OpenSign instance, which we run in the Czech Republic.
The website and the server side of the portal are hosted by Vercel. The portal's server functions run in its Frankfurt (Germany) data centre, close to the databases, so data is also processed in the EU while a request is handled.
Encryption
All traffic to the website, portal and apps is encrypted with HTTPS (TLS), and browsers are told to always use an encrypted connection (HSTS). The databases and file storage encrypt data at rest on the provider side. We also encrypt backups ourselves, see section 2.
Who can access data
In the portal, each user sees only the data of their own building association, according to their role (owner, committee, manager). Permissions are checked on the server, and the database also enforces per-row rules (row level security). In SVJ Monitor, uploaded statements and bylaws are kept in your account's private storage.
Only the operator, Martin Pohl, and the automated tools he manages have access to the administration and the production databases. Keys for the e-mail service, AI and other services are kept only on the server, never in the app or the browser.
Sign-in
You can sign in with a one-time code sent by e-mail, a password, or a third-party account (Apple, Seznam). Passwords are never stored in readable form, only as a hash. One-time codes and links expire. Website forms are protected against bots by Cloudflare Turnstile. Face ID and fingerprint checks happen only on your phone; biometric data never reaches us.
2. Backups and disaster recovery
What we back up
The ProfiSprávceSVJ portal database and the SVJ Monitor database, including user accounts, and the source code of the apps. Uploaded files (photos, documents) are kept by the storage provider. A separate backup of files is being prepared.
How often and where
A backup is created automatically every night and stored with a different provider from the one that runs the databases, in EU storage. Nightly backups are kept for 8 days and older ones are deleted automatically. The portal database can also be restored to any point in time within the last few hours.
Encryption and access to backups
Backups are encrypted before they are sent to storage. The decryption key is not stored with any of the providers. The backup job connects to the databases with a separate account that can only read data.
Restore testing
We last tested a restore from backup in October 2026 and plan to repeat the test regularly.
Internal targets
Our internal target is to lose at most the last 24 hours of data in a disaster and to have the services running again within 4 hours. These are the targets our backups and recovery procedure are designed for, not a contractual guarantee.
What happens in an outage
We follow a written recovery procedure. First we secure whatever still works and delete nothing. We restore into a new environment and switch over only after checking the data. We tell the committees of affected building associations and SVJ Monitor users by e-mail what happened, what it means for their data and when to expect recovery. During a longer outage we also post an update on the website.
3. Subprocessors
These providers process data on our behalf. We list what we use them for and where the data is or where the company is based. Transfers to the USA are governed by each provider's data processing terms.
ProfiSprávceSVJ (website, portal, app)
| Provider | Purpose | Where |
|---|---|---|
| Vercel Inc. | Hosting of the website and the server side of the portal | Server functions in Frankfurt (Germany), company in the USA |
| Neon | Portal database | EU (Frankfurt, Germany) |
| Supabase Inc. | Sign-in, database, uploaded photos and documents | EU (Ireland) |
| Brevo (Sendinblue SAS) | Sending e-mails: sign-in codes, invitations, notifications | France (EU) |
| Cloudflare Inc. | DNS, bot protection of forms (Turnstile), backup storage | Backups in the EU, company in the USA |
| GitHub (Microsoft) | Source code and the automated job that creates the nightly backup | USA |
| Google (Gemini API) | Website chatbot, receives only the messages you type into it | USA |
| Umami | Cookie-free website visit statistics | USA |
| Cal.com | Booking consultations, if you book one | USA |
| Expo, Apple, Google | Delivery of mobile app notifications, if you turn them on | USA |
| Apple, Seznam.cz | Third-party sign-in, if you choose it | USA, Czech Republic |
SVJ Monitor
| Provider | Purpose | Where |
|---|---|---|
| Supabase Inc. | Sign-in, database, private file storage | EU (Ireland) |
| Supabase Edge Functions | Server logic: AI questions, document reading, notifications and e-mails | EU (Ireland, Frankfurt as fallback) |
| Vercel Inc. | Website hosting and the gateway to the AI provider (Vercel AI Gateway) | Static website without server functions, region Frankfurt (Germany), company in the USA |
| AI provider via Vercel AI Gateway | Reading uploaded statements and bylaws, answering questions about the bylaws | Depends on the selected model, may be outside the EU |
| Google Cloud Vision | Reading statement text, only if this option is enabled on the server | USA |
| Brevo (Sendinblue SAS) | Sending e-mails | France (EU) |
| Cloudflare Inc., GitHub | Backup storage and the job that creates the backup | Backups in the EU, companies in the USA |
| Apple | Sign in with Apple, if you choose it | USA |
| Expo, Apple, Google | Notification delivery, if you turn it on | USA |
Public data about building associations and companies comes from public registers (ARES and the commercial register). Only the company ID is sent to them.
4. Retention, deletion and export
For ProfiSprávceSVJ, retention periods follow the privacy policy, for example 6 months for enquiry form data and 10 years after the end of the contract for the association's accounting records, as required by law. In SVJ Monitor we keep data for as long as the account exists. You can delete your account in either app under Settings. Deleted data also disappears from backups within 8 days, when the oldest backup expires.
On request we will send you a copy of your data in a machine-readable form. When a management contract ends, we hand over to the association or the new manager the data and documents needed to continue management.
You have the right to access, rectification, erasure, restriction of processing, portability and objection. Send your request to svj@martinpohl.cz (ProfiSprávceSVJ) or hello@martinpohl.cz (SVJ Monitor). You can lodge a complaint with the Czech Office for Personal Data Protection (uoou.gov.cz).
5. Security incidents and contact
If you find a security issue, write to svj@martinpohl.cz with the subject "Security". Describe what you found and how to reproduce it. Please do not try to access other people's data, and give us time to fix the issue before you publish it. Rules, scope and safe harbor are described in our vulnerability disclosure policy. The contact is also listed in /.well-known/security.txt.
In an incident we first stop it from spreading, replace the affected keys and passwords and find out which data is involved. If personal data is at risk, we report the incident to the Czech data protection authority within 72 hours as GDPR requires, and we inform affected people and association committees without undue delay.