Database · in regular use

PostgreSQL agency in Nice

Our default relational database: open source, proven, and with no vendor lock-in.

What we do with it

PostgreSQL at our clients, concretely

Used on a self-consumption monitoring tool, a product configurator and a client portal. Also in production on public research projects.

The limits

When we recommend something else

For documents with no fixed schema, a document store fits better.

Our work

Projects we delivered with PostgreSQL

  • Silversun — prospection

    B2B prospecting tool for renewable energy: geocoded projects and enriched prospects.

    PostgreSQL: Database of projects, areas and prospects.

  • LLM Monitor

    SaaS that measures how visible brands are in AI answers.

    PostgreSQL: Database of the self-hosted translation platform for the interface.

    Read the LLM Monitor case study
  • Ordelya

    Restaurant management platform: back office, tablets, kiosks, screens and website.

    PostgreSQL: Database of menus, products and venues.

Method

How we bring PostgreSQL into a project

We design the schema before writing the application: tables, foreign keys, uniqueness and validity constraints. A rule such as "an invoice always belongs to an existing customer" is enforced in the database itself, not just in the code, so no import or one-off script can get around it. Every later change goes through migrations versioned in the repository, created in your name, never through a command typed straight onto the production server.

The application connects with a restricted account, separate from the administrator account, and a read-only account is set aside for your reporting tools. Indexes are added based on queries that are genuinely slow, identified with pg_stat_statements and EXPLAIN, rather than in anticipation. When the number of connections grows, PgBouncer pools them. Automated tests run against a real PostgreSQL instance in a container rather than a simplified database, so constraints are checked exactly as in production.

In operation, we pin the major version, schedule its upgrade before support ends and monitor disk space and long-running queries. The documentation we deliver includes an annotated table diagram, the list of accounts and their permissions, and the restore procedure.

For your business

What it changes in practice

For your users, a well-structured database shows mostly in what stops happening: duplicate customers, orders attached to a deleted contact, totals that differ from one screen to the next. Searches and dashboards stay fast as the history grows, provided indexes keep pace with real usage, which monitoring slow queries lets us check over time. A broken constraint produces a message at the moment of entry, while the user can still correct it, rather than an inconsistency discovered during month-end closing. Staff spend less time reconciling figures by hand and more time trusting what the screens show.

For management, the database becomes a single source that several tools can query: the business application, a spreadsheet, a reporting tool, some future piece of software. Changing application one day does not mean losing or reworking your data, because it is stored in a standard format that any supplier who knows SQL can read. Separate accounts also limit the damage from leaked credentials: a compromised reporting login can neither change nor delete anything.

Our reading of it

What we take away from PostgreSQL

PostgreSQL is our default database, and the reason is nearly always the same: it refuses inconsistent data. A constraint declared in the schema beats the same rule rewritten in three places in the application code, where one of the three will eventually be forgotten.

On top of that sits what it does without any external tool: queryable JSON when part of the data stays loose, full-text search, materialised views for a dashboard aggregating many rows, and vector storage for document search. Against MySQL, the difference plays out in type rigour and in complex queries; against MongoDB, in the guarantee that the shape of the data remains known. Our Laravel applications connect to it without any particular effort.

Decision guide

Should you choose PostgreSQL?

PostgreSQL or MySQL for our business application?

PostgreSQL is our default. Both handle a typical application, but PostgreSQL enforces data integrity more strictly, natively supports useful types such as time-zone-aware dates, arrays and indexable JSON, and accepts extensions like PostGIS for geographic data. MySQL remains a reasonable choice if your shared hosting only offers MySQL or if existing software depends on it. Switching databases later costs more than choosing well at the outset.

PostgreSQL or a document database such as MongoDB?

It depends on the shape of your data. Customers, orders, contracts, meter readings: whenever records relate to one another and must stay consistent, a relational database like PostgreSQL is the right tool. For documents with no fixed schema, whose structure varies from one record to the next, a document store fits better. PostgreSQL also stores indexable JSON, which often covers a project's semi-structured data without adding a second database to maintain.

PostgreSQL or SQL Server when we already rely on Microsoft tools?

SQL Server is justified if your existing software requires it or your in-house team already administers it. For a new application we prefer PostgreSQL: it is open source, has no per-core licence and runs equally well with major cloud providers or on your own server. Power BI and Excel connect to it without difficulty. You also avoid a vendor's pricing change one day weighing on your application's running budget.

Client questions

What clients ask us about PostgreSQL

Is PostgreSQL free, and what actually costs money?

The software is open source and free, with no licence to pay however many users you have. The costs lie in hosting, backups and administration time: upgrades, disk space monitoring and tuning slow queries. A managed offering from a hosting provider takes on part of that work for a subscription; a server administered by your team or by us is cheaper to rent but needs closer attention.

How is the data in our database backed up?

We combine two layers: regular full backups stored away from the main server, and continuous archiving of PostgreSQL's transaction log. That log lets us restore the database to a precise moment, for instance just before an accidental deletion. A backup is only worth something if it restores, so we test restores on a separate environment rather than finding out on the day of an incident.

Can we move our data from Access, Excel or another database into PostgreSQL?

Yes. The move starts with an analysis of what you have: duplicates, free-text fields, dates stored as text. We then define a clean schema, write repeatable import scripts and compare record counts and totals between the old and new databases. The old tool stays available for reference during the transition. Conversion tools exist for MySQL or SQL Server, though stored procedures need to be rewritten by hand.

Does PostgreSQL help with GDPR compliance?

The database provides the tools; compliance depends on how they are used. We keep columns holding personal data to the strict minimum and restrict access to them through permissions and, where needed, row-level security, which filters the records each user can see. Sensitive data can be encrypted. Retention periods are enforced by scheduled deletion or anonymisation jobs, on hosting located in the European Union.

Do we need a separate search engine to search our data?

Rarely. PostgreSQL's built-in full-text search handles French and English, variants of the same word and relevance ranking, while the pg_trgm extension tolerates typing mistakes. For meaning-based search, useful alongside AI, the pgvector extension stores vector representations next to your business data. A dedicated search engine is only justified for very large volumes of text or advanced search filters.

Going further

PostgreSQL sits within our Software development

A technology does not make a project. The method around it decides the outcome: scoping, prototypes, short cycles, and a clean way out.

Neighbouring technologies

A PostgreSQL project in mind?

The first conversation is free. We will tell you plainly whether this technology is the right one, and if not, which is.

Updated on