Trust Center

Infrastructure

Where the platform runs, how it is put together, and how we know when something is wrong.

Architecture level. Specific hosts, addresses and resource identifiers are shared under a signed review rather than published.

Regions

Where things run

Every component of the platform, and the region it operates in.

All EU. Services a customer chooses to enable may process data elsewhere — those are listed on the Subprocessors page.
ComponentProviderRegion
Application serversAWS EC2eu-north-1 (Stockholm)
Platform databaseSelf-hosted on AWS EC2eu-north-1 (Stockholm)
File storageAWS S3eu-north-1 (Stockholm)
Backups and machine imagesAWS S3 / AWS Backupeu-north-1 (Stockholm)
Transactional emailAWS SESeu-west-1 (Ireland)
One legacy environmentDedicated serverSweden
Hosting

Compute and storage

What does the platform run on?

Amazon EC2 instances in eu-north-1, in AWS accounts we own directly rather than through a reseller. The fleet runs on ARM-based instances, which is a cost and efficiency choice rather than a security one.

Application servers, the database and supporting services run on separate instances. Storage is AWS gp3 volumes for instance and database storage, and S3 for uploaded files, backups and archives.

What database does the platform use?

The platform database is MongoDB, self-hosted as a replica set on our own instances. It was migrated off MongoDB Atlas to self-hosted infrastructure in March 2026, which put the data and its backups inside our own accounts and region.

The platform's data layer also supports PostgreSQL, ScyllaDB, Cassandra and CockroachDB, so a system with a workload that calls for one of those is not forced onto the default.

How does the platform scale?

Vertically first — instances are resized to the workload, and the fleet has been resized in place as demand changed. Storage volumes are expanded without a rebuild.

The database scales by adding replica set members, which also adds redundancy rather than trading it away.

Planned: horizontal auto-scaling of application servers behind a load balancer. Capacity today is provisioned deliberately rather than automatically.

What redundancy exists?

The database runs as a replica set, so the loss of a single node does not lose the data or stop the service.

Every server has a machine image from the previous day, so a lost host is rebuilt from an image rather than reinstalled from scratch.

Planned: multi-availability-zone deployment for application servers, and automatic failover for the application tier. Today an application host failure is recovered by an operator rather than automatically.

Networking

What is exposed

What is reachable from the internet?

The web application and its API, over HTTPS only. TLS terminates at nginx, certificates are issued by Let's Encrypt and renewed automatically, and plain HTTP is redirected rather than served.

The platform database is not reachable from the public internet and accepts connections on the internal network only.

How is administrative access to servers controlled?

SSH with key-based authentication on a non-standard port. Password authentication is disabled, so a guessed or leaked password is not a route in.

Administrative access goes to named accounts rather than a shared login, which is what makes an action on a server attributable to a person.

Do you use a WAF or DDoS protection?

Planned. There is no web application firewall in front of the platform today, and volumetric protection is limited to what AWS provides at the network layer by default.

We would rather state that plainly than describe the platform as protected by something that is not deployed.

Observability

Monitoring and logging

What we watch, what we keep, and — the part most vendor pages leave out — what we have not centralised yet.

How is the platform monitored?

Amazon CloudWatch alarms across the fleet cover host and service health, with alerts routed to the people who operate the platform. Alarms fire to a person, not to a dashboard nobody is looking at.

Backup jobs report their outcome, so a backup that silently stopped running is a detectable condition rather than a discovery made during a restore.

What is logged?

Three separate trails. Application logs on the servers, infrastructure metrics and alarm history in CloudWatch, and the platform's own audit log of user and administrative activity in the database — that last one is described in full on the Security page.

Planned: centralised aggregation of all three into a single searchable store with defined retention. Today they are queried where they live.

Is there a public status page?

There is a status page in this Trust Center, maintained manually. Automated status reporting driven by live health checks is planned rather than live, and the page says so rather than implying a feed exists.

Customers affected by an incident are contacted directly. We do not rely on a status page as the notification mechanism.

Need the operational detail?

Architecture diagrams, specific resource inventories and configuration detail are available for a technical review under NDA.