Skip to content
technologies / postgresql

PostgreSQL, the database under our own platform.

The default we reach for and the one our platform runs in production, including row-level security for keeping one customer’s data away from another’s.

why postgres

Why it's our default.

It's free, it's boring, and it does more than most teams realise.

Integrity

It refuses bad data

Real constraints and foreign keys, enforced by the database, so broken relationships can't quietly accumulate.

Isolation

Row-level security

Tenant separation enforced in the database itself rather than remembered in every query. Our own multi-tenancy relies on it.

Reach

More than rows

JSON, full-text search and geographic data in the same database, which removes whole extra services.

Cost

Free and everywhere

Open source with no licence, available managed on every cloud, so you're never locked to one host.

01

What we build with PostgreSQL

The database under everything we host

Our platform runs on PostgreSQL in production, including multi-tenant isolation enforced by the database itself rather than by application code.

Migrating off MySQL or SQL Server

Usually for the features, the cost, or both. It's well-trodden work and the data is the easy part; the queries are where the attention goes.

Fixing a database that has become the bottleneck

Indexes, query plans and schema, in that order. Most systems described as needing more servers need one index.

Data models that will still make sense in five years

The schema decides how expensive every future change is. It's worth the time at the start and almost impossible to fix cheaply later.

Backups, restores and a tested recovery time

Written down, rehearsed, and timed, so you know what an incident actually costs you.

the essentials

What PostgreSQL actually is.

Written for someone deciding, not for someone who already knows. Skip it if you do.

What PostgreSQL is

An open-source relational database, thirty years old, with no company owning it and no licence to buy. It has quietly become the default choice for new systems, and the reason is that it refuses to lose your data in ways other databases historically did not.

Why we default to it

Correctness first: it enforces the rules you declare rather than silently accepting nonsense, which means a whole class of bad data never gets in. Then breadth — JSON, full-text search, geographic data and row-level security are all built in, which removes several extra systems from a typical architecture.

Row-level security, which matters more than it sounds

The database itself can enforce that one customer never sees another's rows, rather than trusting every query in the application to remember. On a platform hosting many businesses that's the difference between an isolation bug being impossible and being one forgotten WHERE clause away.

Where it needs care

Connections are relatively expensive, so a busy application needs a pooler in front of it. And it doesn't tune itself: the defaults are conservative, and a database nobody has ever configured is usually leaving a lot of performance unused.

Speed

Pages got slower as the data grew

Nearly always a missing index or a query that scans a whole table. Findable in an afternoon with the database's own tools.

Version

Running a version past end of life

PostgreSQL supports each major for five years. Past that there are no security fixes, and major upgrades are routine when done on schedule.

Recovery

You have backups but no tested restore

Then your recovery time is unknown, which means your risk is unknown. One rehearsal turns both into numbers.

questions

Straight answers.

PostgreSQL or MySQL?

We default to PostgreSQL for stricter data integrity and better handling of complex queries and JSON. MySQL is fine, and we won't move you off it without a reason.

Can you migrate us from another database?

Yes. Migrations are rehearsed on a copy and verified by row counts and sampling before anything switches over.

What about backups?

Automated backups plus point-in-time recovery, and a restore we have actually performed and timed. An untested backup isn't a backup.

PostgreSQL or MySQL?

PostgreSQL for anything new, in our view: stricter about data integrity and considerably more capable. MySQL isn't a mistake, and if you're on it and content there's no urgency to move.

Can it handle our data volume?

Almost certainly. Well-tuned PostgreSQL handles far more than most businesses ever produce, and the limit is usually the schema and the queries rather than the database.

Tell us what you want to build or improve.

A few lines are enough to start. You get a reply within two working days.

Discuss your project