---
title: "Multi-tenant SaaS Next.js-szel: sablontól a termelésig"
description: "Custom domain, per-tenant adatizoláció, billing és feature flag a Next.js app routeren. Így skálázod a multi-tenant SaaS-t 10 000 tenantig, megbízhatóan."
date: 2026-03-10
updated: 2026-03-10
author: "Mező Dezső"
tags: "Web, SaaS, Next.js, Multi-tenant"
slug: multi-tenant-saas-nextjs
canonical: https://dfieldsolutions.hu/blog/multi-tenant-saas-nextjs
---

# Multi-tenant SaaS Next.js-szel: sablontól a termelésig

Egy multi-tenant Next.js SaaS referenciaarchitektúrája 2026-ból: custom domain, RLS, per-tenant feature flag és billing. Nincs lufi.
Ha a te SaaS-ed 10+ tenant fölé skálázik, a multi-tenant architektúra nem luxus, hanem túlélés. Itt az általunk használt referencia-stack [Next.js](https://nextjs.org/docs/app)-szel és [Postgres Row-Level Security](https://www.postgresql.org/docs/current/ddl-rowsecurity.html)-vel. Ugyanezt szállítjuk a [Web és webalkalmazás szolgáltatásunk](/szolgaltatasok/web) keretében.

## 1. Tenant-felismerés: subdomain vs custom domain

A subdomain (acme.app.com) a default. A custom domain (app.acme.com) szerepel a Growth csomagban. Next.js middleware-ben feloldjuk a tenant-et és hozzá-csapjuk a request-hez.

```ts
// middleware.ts · tenant resolution
import { NextResponse, type NextRequest } from "next/server";

export async function middleware(req: NextRequest) {
  const host = req.headers.get("host") || "";
  const subdomain = host.replace(/\.app\.com$/, "");
  const tenant = await resolveTenantBySubdomain(subdomain);
  if (!tenant) return NextResponse.redirect(new URL("/404", req.url));

  const res = NextResponse.next();
  res.headers.set("x-tenant-id", tenant.id);
  return res;
}
```

## 2. Adatizoláció: Row-Level Security vs schema-per-tenant

Postgres RLS (PolicyScope) jól működik ~500 tenant-ig. Efölött schema-per-tenant (vagy cluster-per-tenant nagy ügyfeleknek). Mi default RLS-t használunk, kritikus ügyfeleknek dedikált schema-t.

## 3. Feature flag per-tenant

A Growth csomag más feature-t lát, mint az Enterprise. Ezt NEM if-elseif-ben csináljuk · PostHog feature flag + tenant group. A kód tiszta marad.

## 4. Billing: Stripe + per-seat + usage

- Stripe Subscription per-tenant, customer = tenant.
- Metered billing a usage-alapú termékekhez.
- Webhook → Postgres → cache invalidation.

## 5. Background job per-tenant

Ne egy globál queue-ban fussanak a tenant-job-ok. BullMQ per-tenant queue vagy Temporal namespace. Így egy csapkodó tenant nem dönti be a többit.

## Összefoglaló

Ez az architektúra 2-8 hét alatt felállítható. Ha most indítasz SaaS-t, kezdettől multi-tenant legyen · később átállni sokkal többe kerül.

---

Source: https://dfieldsolutions.hu/blog/multi-tenant-saas-nextjs
Author: Mező Dezső · Alapító, DField Solutions
Site: https://dfieldsolutions.hu
