
Next.js 16 production-ready checklist: 25 pont deploy előtt
25 konkrét pont, ami Next.js 16 alapú projekt go-live előtt nem maradhat ki. Security, performance, SEO, accessibility és monitoring kategóriákban.
Három headless CMS deep-dive: Sanity, Strapi, Contentful. Pricing, real-time preview, lokalizáció, és 5 magyar piaci use case ajánlás.

Headless CMS architektúra
Sanity Studio (React, self-hostolt), Strapi Admin (auto-generated) vagy Contentful Web App.
Sanity GROQ, Strapi REST + GraphQL, Contentful CDA. EU-region opt-in mindhárom platformon.
Next.js fetch build-time + revalidate-on-demand webhook a CMS-ből. Statikus HTML a CDN-re.
Vercel / Cloudflare edge, next/image az asset CDN-ről. Visual editing live preview a draft-on.
A headless CMS már nem alternative, hanem default választás modern stack-en. A WordPress sem tűnt el — sok use case-en továbbra is jó. De ha Next.js / Nuxt / SvelteKit frontend van, a backend-CMS-kérdés három név körül forog: Sanity, Strapi, Contentful. Plus a „markdown-files git-ben" megközelítés, amit gyakran alábecsülnek.
Ebben a cikkben deep-dive a három platformról, pricing, real-time preview-képességek, GDPR-szempontok, és 5 magyar piaci use case-ajánlás. A 2026 Q1-es állapotot tükrözi.
A „headless" jelentése: a CMS a content-tárolásra és a content-management-UI-ra fókuszál, nincs benne presentation layer. A frontend egy külön technológia (Next.js, Nuxt, SvelteKit, mobil app) kéri le az adatot REST vagy GraphQL API-n.
Három nagy szereplő (Sanity, Strapi, Contentful) + sok niche-megoldás (Storyblok, Hygraph, Payload, Directus). Plus a markdown-git megközelítés (mint a Corevanix saját blog-ja).
A Sanity 2017-ben indult, és mára a fejlesztők egyik kedvence. Schema-as-code, real-time editing, custom Studio UI.
A Sanity két fő komponensből áll:
A schema TypeScript / JavaScript-ben deklarált, git-be commitelhető.
// schemas/post.ts
import { defineType, defineField } from 'sanity';
export const postType = defineType({
name: 'post',
title: 'Blog Post',
type: 'document',
fields: [
defineField({
name: 'title',
title: 'Title',
type: 'string',
validation: (Rule) => Rule.required().max(120),
}),
defineField({
name: 'slug',
type: 'slug',
options: { source: 'title' },
}),
defineField({
name: 'body',
type: 'array',
of: [{ type: 'block' }, { type: 'image' }, { type: 'code' }],
}),
defineField({
name: 'publishedAt',
type: 'datetime',
}),
],
});
// All posts published in the last 30 days, with author info
*[_type == "post" && publishedAt > dateTime(now()) - 60*60*24*30]
| order(publishedAt desc)
| [0..9]
{
_id,
title,
slug,
"authorName": author->name,
"imageUrl": mainImage.asset->url,
"readingTime": pt::text(body)
}
A GROQ pontosan ezt csinálja egy query-vel, amire SQL-ben 3-4 JOIN kellene.
| Tier | Havi cost | Limits |
|---|---|---|
| Free | $0 | 3 user, 10k doc, 100k API requests, 5GB bandwidth |
| Growth | $99 | 20 user, 100k doc, 1M API, 100GB bandwidth |
| Enterprise | Custom (~$1k+) | Unlimited |
A Strapi self-hosted open-source CMS. Saját Postgres / MySQL / SQLite backend. A 2024-es v5 release óta a kódbázis is jelentősen jobb (TypeScript-first, modular).
// src/api/post/content-types/post/schema.json
{
"kind": "collectionType",
"collectionName": "posts",
"info": { "singularName": "post", "pluralName": "posts" },
"attributes": {
"title": { "type": "string", "required": true },
"slug": { "type": "uid", "targetField": "title" },
"body": { "type": "richtext" },
"publishedAt": { "type": "datetime" },
"author": { "type": "relation", "relation": "manyToOne", "target": "api::author.author" }
}
}
| Opció | Cost |
|---|---|
| Self-hosted | $0 license + saját infra (~$20-50/hó VPS) |
| Strapi Cloud Pro | $99/hó |
| Strapi Cloud Team | $499/hó |
| Strapi Enterprise | Custom |
# docker-compose.yml
version: '3'
services:
strapi:
image: strapi/strapi:5
environment:
DATABASE_CLIENT: postgres
DATABASE_HOST: db
DATABASE_NAME: strapi
DATABASE_USERNAME: strapi
DATABASE_PASSWORD: ${DB_PASSWORD}
volumes:
- ./public/uploads:/srv/app/public/uploads
ports:
- "1337:1337"
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: strapi
POSTGRES_USER: strapi
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Az „enterprise" headless CMS. Nagy ügyfelek (Spotify, BMW, Lyft), érett platform, SLA-val.
| Tier | Havi cost | Limits |
|---|---|---|
| Free | $0 | 5 user, 25 content types, 100k API call |
| Lite | $300 | Standard team |
| Premium | $1000+ | Multi-environment, EU residency |
| Enterprise | Custom | Unlimited, dedicated support |
| Szempont | Sanity | Strapi | Contentful |
|---|---|---|---|
| Self-hosting | Studio igen, content cloud | Igen, full | Nem |
| Pricing belépő | $99/hó | $0 self + $20-50 VPS | $300/hó |
| Free tier hasznosság | Magas | Magas (self) | Alacsony |
| Real-time preview | Excellent | Jó | Jó |
| Custom UI | Excellent (Studio) | Jó | Limitált |
| Lokalizáció | Built-in, jó | Built-in plugin | Built-in, jó |
| Image transformation | Built-in CDN | Plugin / self | Built-in CDN |
| GDPR / EU host | EU region opció | Self-hosted EU | EU region (Premium) |
| Csapat-onboarding | Közepes | Közepes | Könnyű |
| Migration-export | JSON export | DB export | JSON export |
| Multi-environment | Igen (dataset-ek) | Plugin | Built-in |
| API-flavor | GROQ / GraphQL | REST + GraphQL | REST + GraphQL |
| Vendor lock-in | Közepes | Alacsony | Magas |
| Visual Editing | Excellent (Vercel-integration) | Plugin | Limited |
| AI Assist | Built-in | Plugin | Built-in (Premium) |
Setup: Egyszerű content (cikk, FAQ, landing). Magyar+angol nyelv. Editorial flow 1-2 fős marketing-csapatra. Heti 2-5 új cikk.
Ajánlás: Sanity.
Indoklás: A free tier itt bőven elég (10k document max). A Studio testre szabható a marketing-team workflow-jához. Visual Editing live-preview a Vercel frontend-en — a marketing kolléga látja a változást azonnal.
Setup-idő: 1-2 hét.
Setup: 500+ termék, gyakori frissítés, marketing-csapat akarja szerkeszteni. Kép-asszet menedzsment fontos.
Ajánlás: Sanity vagy Strapi.
Setup-idő: 2-4 hét.
Setup: 3+ brand domain, közös kép-katalógus, központi marketing. Role-based access kötelező (brand-A user nem szerkesztheti brand-B-t).
Ajánlás: Contentful.
Indoklás: Az enterprise tier multi-environment management-jét máshol nehéz pótolni. A role-based access és audit log production-szintű.
Setup-idő: 3-6 hét.
Setup: Csapatszintű content, technical writers, internal-only. SSO-integráció (MS Entra ID, Google Workspace).
Ajánlás: Strapi self-hosted (vagy Notion API — Notion gyakran better fit ide, ha nem akarsz custom UI-t).
Indoklás: Belső use case-en a self-hosted GDPR-előny domináns. A Notion natív collaboration-ja viszont 2026-ban olyan jó, hogy gyakran nem éri meg custom-build.
Setup: 15-50 cikk, kategória-szerkezet, SEO-fókusz. Saját developer csapat.
Ajánlás: Sanity vagy Strapi. Vagy: Markdown-fájlokat git-be (mint mi csináljuk).
Indoklás:
A markdown-git megoldásban a build során automatikus a markdown-feldolgozás (remark, gray-matter), a content git-be commitelt, és a frontend ezt build-time olvassa. Részletes implementációs minta: a Corevanix saját blog-rendszerünk.
Egy harmadik út: ne használj CMS-t, hanem markdown-fájlokat tárolj a git repo-ban. Előnyök:
Hátrányok:
A leggyakoribb migration. Ok: WordPress lassú, biztonsági kockázatok, vagy a frontend Next.js-re vált.
Migration-tools:
Migration-idő: 2-4 hét egy 100-500 post-os blogra. Image-asset migration a leglassabb (~80% of effort).
A 2024-es Contentful-áremelés után gyakori. A schema-export + custom mapping script-tel megoldható.
Ritka, de előfordul. A GROQ → REST/GraphQL conversion a fő munka.
Tipp: Migration előtt mindig próbálj ki párhuzamos run-t 2 hétre. A két rendszer egymás mellett, a frontend a régiről olvas, az újra is write-ol (shadow mode). Cutover csak ha a két rendszer szinkronban.
A $300/hó belépő tier sok KKV-nak túl drága. A free tier limited (25 content types). Inkább Sanity vagy Strapi.
A self-hosted Strapi karbantartása (upgrade, backup, security patch) folyamatos. Ha nincs erre kapacitás, Sanity vagy Strapi Cloud.
Sanity excellent-en integrálódik a modern JS frameworkkkel, de WordPress-ből vagy Drupal-ból „mellé" nem szerencsés. Use case-mismatch.
A WordPress vagy egy static-site-generator (Astro, Hugo, Eleventy) sok use case-en jobb. A headless overhead nem éri meg.
Témához kapcsolódó saját cikkeink: Next.js 16 production-ready checklist — frontend production-setup. Webshop konverziós ráta javítása — e-commerce CMS-választás context. Mobil app GDPR compliance — adat-residency-elvek.
Nincs „legjobb" CMS — projekttől és csapattól függ. A magyar KKV-piacon Sanity a default-választás a legtöbb új projekten 2026-ban. Enterprise-szegmensben Contentful, GDPR-prioritáson Strapi vagy markdown-git.
A CMS-választás 1 hét scope a discovery-fázisban: editor-team interjú, content-volumen-becslés, multi-locale-szükséglet-mapping, IT-csapat-skill-audit. Utána a setup 2-4 hét.
Ha webfejlesztési projektet tervezel, beszéljük át a CMS-választást a discovery során. Az 1 hetes audit (200-300k Ft) gyakran megspóroltatja a 6-12 hónapos rossz CMS-választás 5-10M Ft-os utólagos cost-ját.
A szerzőről
Corevanix Kft.
Tech partner
Modern tech partner — SAP/ERP, webfejlesztés, AI automatizáció és mobil app fejlesztés egy szakmai csapatban. KKV-tól enterprise projektig.
LinkedIn →
25 konkrét pont, ami Next.js 16 alapú projekt go-live előtt nem maradhat ki. Security, performance, SEO, accessibility és monitoring kategóriákban.

Tíz konkrét technikai optimalizáció, ami mérhetően növeli a webshop konverziót. Performance, UX, trust signal, checkout-flow és A/B tesztelhető elemek.