The verdict in three sentences
Moving from software installed customer by customer to a multi-tenant SaaS adds 15 to 30 % to development cost, but brings infrastructure down to 3 to 40 EUR per tenant per month. For an Amsterdam software vendor with 60 B2B customers, PostgreSQL RLS (one shared database, row-level isolation) offers the best cost-to-effort ratio, with dedicated databases reserved for customers who contractually require them. A well-prepared migration takes 3 months, in waves of 15 to 20 customers.
The three isolation models compared
The CTO of an Amsterdam vendor of scheduling software for construction firms currently runs 60 separate instances, each with its own database and server. Every release takes two days to deploy. The isolation model drives everything else.
| Criterion | Shared DB + PostgreSQL RLS | Schema per tenant | Database per tenant |
|---|---|---|---|
| Infra cost per tenant/month | 3 to 8 EUR | 8 to 18 EUR | 25 to 40 EUR |
| Data isolation | Logical (SQL policies) | Strong logical | Physical |
| Running one SQL migration | Once | N times (scripted) | N times (scripted) |
| Practical tenant limit | Several thousand | 200 to 500 | Unlimited but costly |
| Backup/restore of a single customer | Complex | Simple | Very simple |
| Enterprise customer requirements | Sometimes rejected | Often accepted | Always accepted |
| Initial development overhead | 15 to 20 % | 20 to 25 % | 25 to 30 % |
The hybrid model is common in 2026: RLS for 90 % of customers, a dedicated database sold as an option (often 150 to 300 EUR per month) for groups that require it in their tenders.
What the transformation costs with a nearshore agency
Amsterdam agencies bill 900 to 1,200 EUR per day in 2026, while nearshore agencies in France, Portugal or Senegal bill 450 to 750 EUR. For mid-sized business software (about 80 screens), the nearshore budget breaks down as follows.
| Workstream | Person-days | Budget (EUR, excl. VAT) |
|---|---|---|
| Code audit and architecture choice | 8 to 12 | 5,000 to 8,500 |
| Tenant ID column and RLS policies | 20 to 30 | 12,000 to 21,000 |
| Centralized authentication (SSO, per-tenant roles) | 12 to 18 | 7,000 to 12,500 |
| Tenant administration console | 10 to 15 | 6,000 to 10,500 |
| CI/CD pipeline and environments | 6 to 10 | 3,500 to 7,000 |
| Migration scripts for 60 databases | 10 to 15 | 6,000 to 10,500 |
| Security testing (cross-tenant leaks) | 6 to 10 | 3,500 to 7,000 |
| Total | 72 to 110 | 43,000 to 77,000 |
The most underestimated item is cross-tenant leak testing: a single missing filter in a reporting query exposes one customer's data to another. RLS policies enforced at the database level, rather than in application code, greatly reduce this risk.
Migrating 60 customers in 3 months
Month 1: deliver the multi-tenant platform, migrate 5 volunteer pilot customers, measure performance. Month 2: two waves of 20 customers, each migration done over a weekend with automated export, transformation and import, then checksum verification. Month 3: the last 15 customers, including the largest, and decommissioning of old servers. KPIs to track: 95th percentile response time under 400 ms, zero cross-access incidents, stable support ticket rate.
Mini case study
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
Julien, CTO of an Amsterdam vendor with 60 customers, currently pays for 60 servers at 55 EUR a month, i.e. 3,300 EUR monthly, plus 2 deployment days per release (12 releases a year). After a 62,000 EUR RLS migration with a nearshore agency (versus about 105,000 EUR quoted locally), infrastructure falls to 420 EUR a month (7 EUR per tenant), saving 34,560 EUR a year. The 24 deployment days saved are worth about 15,000 EUR. Payback comes in 15 months, and the marginal cost of a new customer becomes almost zero.
FAQ
Is PostgreSQL RLS safe enough for sensitive data?
Yes, if policies are tested automatically and the application never connects with a role that bypasses RLS. For health data, additional hosting certifications still apply.
Do we need to rewrite the whole software?
No, in 70 to 80 % of cases adding a tenant column and policies is enough. A rewrite is justified only if the code is already end-of-life.
How long does one customer migration take?
Between 2 and 6 hours depending on data volume, usually over a weekend with announced downtime.
How should we price the dedicated database option?
Most vendors charge 150 to 300 EUR per month, which easily covers the 25 to 40 EUR of infrastructure.
What is the performance impact?
With proper indexes on the tenant column, the impact is under 5 % of response time.
Let's scope your project. Send us your customer count and current stack, and we will price your move to multi-tenant between 43,000 and 77,000 EUR, migration included within 3 months. Detailed quote within 48 h. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.