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

> 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.

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.

## Amit érdemes elvinni

- Subdomain vs custom domain, Postgres Row-Level Security vs schema-per-tenant, feature flag per-tenant, Stripe metered billing, izolált background queue. A teljes referenciastack Next.js-szel, amin a SaaS-ügyfeleinket 10k tenant-ig skálázunk.

## Címkék

Web, SaaS, Next.js, Multi-tenant

## Az írásban használt fogalmak

- https://dfieldsolutions.hu/hu/fogalomtar/feature-flag.md
- https://dfieldsolutions.hu/hu/fogalomtar/webhook.md
- https://dfieldsolutions.hu/hu/fogalomtar/multi-tenant.md

## Ezt is megépítjük

https://dfieldsolutions.hu/hu/szolgaltatasok/web-performance

## Több a laborból

- https://dfieldsolutions.hu/hu/labor/core-web-vitals-nextjs-case-study.md — Core Web Vitals Next.js-szel: hogyan lett 4.5s-ből 0.9s LCP
- https://dfieldsolutions.hu/hu/labor/web-vitals-playbook.md — Core Web Vitals egy igazi Next.js oldalon
- https://dfieldsolutions.hu/hu/labor/nextjs-16-teljesitmeny-csapdak.md — Next.js 16 teljesítménycsapdák minden projektben
- https://dfieldsolutions.hu/hu/labor/server-vs-client-components-2026.md — Server vs. kliens komponensek 2026: a döntési szabályunk

---

Source: https://dfieldsolutions.hu/hu/labor/multi-tenant-saas-nextjs-en
DField Solutions — Torony köz 5-1.a, 2120 Dunakeszi, Hungary — +36 20 722 0002 — dezso@dfieldsolutions.com
Booking: see https://dfieldsolutions.hu/en/contact
