WordPress zu Next.js Migration: Financial SaaS spart $420K ARR
WordPress zu Next.js Migration: Finanzdienstleistungs-SaaS spart $420K ARR
Ende 2024 kam ein Series-C-Finanzdienstleistungs-SaaS-Unternehmen zu uns mit einem Problem, das ihnen echtes Geld kostete. Ihre Marketing-Website, ihr Kundenportal und ihr Dokumentations-Hub liefen alle auf WordPress mit einem Wirrwarr von Premium-Plugins, einem $420K/Jahr teuren Enterprise-CMS-Lizenzstapel und Seitenladezeiten, die ihr Compliance-Team nervös machten. Sie mussten zu einer modernen Headless-Architektur wechseln, ohne auch nur eine Sekunde Ausfallzeit – denn in Finanzdienstleistungen bedeutet Ausfallzeit behördliche Überprüfung, verlorenes Vertrauen und sehr teure Anrufe von sehr ernsthaften Leuten.
Das ist die vollständige Geschichte, wie wir es geschafft haben.
Inhaltsverzeichnis
- Der Ausgangspunkt: Ein WordPress-Monolith unter Druck
- Warum Headless Next.js die richtige Wahl war
- Die Migrationsarchitektur
- Zero-Downtime-Strategie: Der parallele Betrieb
- Leistungsergebnisse: 3x schneller und noch mehr
- Die $420K Lizenzierungseinsparungen Aufschlüsselung
- Technischer Deep Dive: Wichtige Implementierungsdetails
- Lessons Learned auf die harte Tour
- Zeitplan und Teamstruktur
- FAQ

Der Ausgangspunkt: Ein WordPress-Monolith unter Druck
Lassen Sie mich das Bild zeichnen. Dieses Unternehmen – wir nennen es FinEdge (NDA, Sie verstehen) – hatte etwa 12.000 Seiten mit Inhalten über drei unterschiedliche Webprojekte verteilt:
- Marketing-Website – Produktseiten, Landing Pages, Blog mit 2.400+ Beiträgen
- Kundenportal – Account-Dashboards, Onboarding-Flows, Dokumentenverwaltung
- Dokumentations-Hub – API-Docs, Compliance-Leitfäden, Integrations-Tutorials
Alle drei liefen auf einer einzigen WordPress-Multisite-Installation, gehostet auf WP Engines Enterprise-Tier. Die Plugin-Situation war... etwas. Sie führten 47 aktive Plugins aus, darunter WPGraphQL, Advanced Custom Fields Pro, Yoast SEO Premium, WP Rocket, Gravity Forms und ein benutzerdefiniertes Plugin ihrer vorherigen Agentur, das die SOC-2-Compliance-Protokollierung für Inhaltsänderungen handhabte.
Die realen Schmerzpunkte:
- Durchschnittliche Seitenladezeiten von 4,2 Sekunden auf Mobilgeräten (Google CrUX-Daten)
- Core Web Vitals fehlgeschlagen auf 68% der Seiten – LCP war schlecht bei 5,1s Median
- $420K/Jahr in Lizenzierung über WP Engine Enterprise-Hosting, Premium-Plugins, einen WAF, CDN und eine separate Staging-Umgebung
- Content-Editoren warteten 8-12 Sekunden darauf, dass das WordPress-Admin während Spitzenlastzeiten reagierte
- Sicherheits-Patches erforderten jede zwei Wochen dedizierte DevOps-Zeit – die Finanzdienstleistungsregelierer scherzen nicht
- Keine Preview-Deployments – das Content-Team musste zu Staging pushen und 4 Minuten auf Cache-Invalidierung warten
Ihr VP of Engineering sagte uns während des Discovery-Calls: „Wir geben mehr für unsere Website-Infrastruktur aus als für zwei Senior-Engineers. Und es ist immer noch langsam."
Warum Headless Next.js die richtige Wahl war
Wir evaluierten mehrere Optionen während der Architekturphase. Hier ist, was auf dem Tisch stand:
| Option | Vorteile | Nachteile | Geschätzte jährliche Kosten |
|---|---|---|---|
| WordPress (optimiert) | Vertraut dem Team, keine Migration notwendig | Immer noch langsam, Lizenzierung unverändert | $420K |
| Webflow Enterprise | Visuelles Bearbeiten, schnelle Bereitstellung | Begrenzt für Portal-/App-Anforderungen, Vendor Lock-in | $180K |
| Next.js + Sanity | Blitzschnell, flexibel, Echtzeit-Vorschau | Migrationsbemühung, Team-Einarbeitung | $38K |
| Next.js + Contentful | Starke Enterprise-Features, gutes DX | Per-User-Preisgestaltung skaliert schlecht | $95K |
| Astro + Storyblok | Großartig für statische Inhalte, leichtgewichtig | Weniger reif für dynamische Portal-Anforderungen | $42K |
Wir landeten bei Next.js 14 (App Router) mit Sanity als Headless-CMS. Hier ist warum:
- FinEdges Portal hatte dynamische, authentifizierte Routen, die serverseitiges Rendering brauchten. Next.js handhabt dies nativ mit React Server Components.
- Sanity's Echtzeit-Zusammenarbeit und GROQ-Abfragesprache gaben Content-Editoren eine dramatisch bessere Erfahrung als WordPress.
- Das Preismodell (Sanity's Growth-Plan bei $99/Monat + Vercel Pro) bedeutete, dass die Infrastrukturkosten von $420K auf etwa $38K jährlich sanken.
- Ihr Engineering-Team kannte bereits React. Die Einarbeitungszeit für Next.js wurde in Tagen gemessen, nicht in Monaten.
Wir zogen Astro für den Dokumentations-Hub seriously in Betracht, da es größtenteils statischer Inhalt ist, aber die operative Einfachheit, alles in einem Framework zu halten, gewann. Wenn die Docs-Website ein eigenständiges Projekt gewesen wäre, wäre Astro die Wahl gewesen.
Die Migrationsarchitektur
Hier ist die übergeordnete Architektur, die wir entworfen haben:
┌─────────────────┐ ┌──────────────────┐
│ Sanity CMS │────▶│ Next.js on │
│ (Content) │ │ Vercel (Edge) │
└─────────────────┘ └──────────────────┘
│ │
│ ▼
│ ┌──────────────────┐
│ │ Cloudflare │
│ │ (DNS + WAF) │
│ └──────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌──────────────────┐
│ Media Pipeline │ │ End Users │
│ (Cloudinary) │ └──────────────────┘
└─────────────────┘
Die Schlüsselkomponenten:
Content-Schicht
- Sanity als primäres CMS für Marketing-Inhalte, Blogbeiträge und Dokumentation
- Benutzerdefinierte Sanity-Schemata, die ihren bestehenden WordPress-Content-Typen entsprechen
- Portable Text für Rich-Content (ersetzt WordPress's Gutenberg-Blöcke)
Anwendungsschicht
- Next.js 14 mit App Router, bereitgestellt auf Vercel's Pro-Plan
- React Server Components für die Marketing-Website und Docs
- Client-Komponenten nur dort, wo Interaktivität wirklich benötigt wird (Formulare, Dashboards, interaktive Charts)
- Middleware für Authentifizierung auf Portal-Routen, integriert mit ihrem bestehenden Auth0-Setup
Infrastruktur-Schicht
- Vercel für Hosting und Edge-Funktionen
- Cloudflare für DNS-Management und zusätzliche WAF-Regeln (Finanzdienstleistungs-Compliance-Anforderung)
- Cloudinary für Bildoptimierung und -transformation – ersetzte 3 WordPress-Bild-Plugins

Zero-Downtime-Strategie: Der parallele Betrieb
Das war der Teil, der mich nachts wach hielt. FinEdge konnte sich nicht einmal ein paar Minuten Ausfallzeit leisten. Ihr Kundenportal verarbeitet Finanztransaktionen, und jede Unterbrechung löst obligatorische Incident-Reports bei Regulierungsbehörden aus.
So haben wir es gemacht:
Phase 1: Content-Synchronisierung (Wochen 1-3)
Wir bauten eine benutzerdefinierte WordPress-zu-Sanity-Synchronisierungs-Pipeline auf, die während des gesamten Migrationszeitraums kontinuierlich lief:
// Vereinfachte Version unseres WP-zu-Sanity Sync Worker
import { createClient } from '@sanity/client'
import WPGraphQL from './wp-graphql-client'
const sanity = createClient({
projectId: process.env.SANITY_PROJECT_ID,
dataset: 'production',
token: process.env.SANITY_WRITE_TOKEN,
apiVersion: '2024-10-01',
useCdn: false,
})
async function syncPosts(since: string) {
const posts = await WPGraphQL.getModifiedPosts(since)
const transaction = sanity.transaction()
for (const post of posts) {
const sanityDoc = transformWPToSanity(post)
transaction.createOrReplace(sanityDoc)
}
await transaction.commit()
console.log(`Synced ${posts.length} posts`)
}
// Ran alle 5 Minuten via Cron
Dies bedeutete, dass Content-Editoren während der gesamten Migration weiterhin in WordPress arbeiten konnten. Jede Änderung, die sie machten, wurde automatisch innerhalb von 5 Minuten zu Sanity synchronisiert.
Phase 2: Parallele Bereitstellung (Wochen 4-8)
Wir stellten die Next.js-Website auf einer Subdomain bereit (next.finedge.com) und betrieben beide Websites gleichzeitig. Unser QA-Prozess verglich jede einzelne Seite:
- Visuelle Regressionstests mit Playwright über 200+ kritische Seiten
- SEO-Parität-Überprüfungen (Meta-Tags, strukturierte Daten, kanonische URLs, Sitemaps)
- Performance-Benchmarks auf jeder Seiten-Template
- Barrierefreiheits-Audits (WCAG 2.1 AA – erforderlich für Finanzdienstleistungen)
Phase 3: Die Umschaltung (Woche 9)
Der eigentliche Switch war unauffällig – was genau das ist, was Sie wollen. Wir verwendeten Cloudflares Load Balancing, um den Verkehr schrittweise zu verschieben:
- Stunde 0: 5% des Verkehrs zu Next.js, 95% zu WordPress
- Stunde 2: 25% / 75% (Überwachung von Fehlerraten, Core Web Vitals)
- Stunde 6: 50% / 50%
- Stunde 12: 90% / 10%
- Stunde 24: 100% Next.js, WordPress im schreibgeschützten Modus
- Woche 2: WordPress stillgelegt
Null Fehler. Null Ausfallzeit. Die Monitoring-Dashboards waren langweilig grün.
Leistungsergebnisse: 3x schneller und noch mehr
Hier sind die echten Zahlen, gemessen 30 Tage nach der Migration unter Verwendung von Google CrUX-Daten und Vercel Analytics:
| Metrik | WordPress (Vorher) | Next.js (Nachher) | Verbesserung |
|---|---|---|---|
| LCP (p75) | 5.1s | 1.2s | 4,25x schneller |
| FID / INP (p75) | 280ms | 68ms | 4,1x schneller |
| CLS (p75) | 0.18 | 0.02 | 9x besser |
| TTFB (p75) | 1.8s | 0.12s | 15x schneller |
| Lighthouse Performance | 34 | 96 | +62 Punkte |
| Seiten bestehend CWV | 32% | 98% | +66% |
| Zeit bis interaktiv | 6.8s | 1.4s | 4,9x schneller |
Die „3x schneller" Schlagzeile verkauft es eigentlich unter Wert. Bei den meisten Metriken sahen wir 4-5x Verbesserungen. TTFB war der Star – von 1,8 Sekunden auf 120 Millisekunden dank Vercels Edge Network und ISR (Incremental Static Regeneration).
Organischer Traffic stieg in den ersten 90 Tagen nach der Migration um 31%. Ihr SEO-Team schrieb dies hauptsächlich auf Core Web Vitals Verbesserungen und schnellere Crawling-Raten von Googlebot zurück.
Die $420K Lizenzierungseinsparungen Aufschlüsselung
Lassen Sie uns über Geld sprechen. Hier ist genau, wohin die $420K gingen und was sie ersetzt hat:
| Posten | WordPress jährliche Kosten | Next.js jährliche Kosten | Einsparungen |
|---|---|---|---|
| WP Engine Enterprise-Hosting | $150,000 | — | $150,000 |
| Vercel Pro (Team-Plan) | — | $2,400 | — |
| Premium-Plugin-Lizenzen (47 Plugins) | $28,000 | — | $28,000 |
| Sanity Growth-Plan | — | $1,188 | — |
| Cloudinary Pro | — | $2,388 | — |
| Enterprise WAF (Sucuri) | $36,000 | — | $36,000 |
| Cloudflare Pro | — | $2,400 | — |
| Benutzerdefinierter WordPress-Wartungsvertrag | $96,000 | — | $96,000 |
| CDN (getrennt von WP Engine) | $24,000 | — | $24,000 |
| Staging-Umgebungs-Hosting | $18,000 | — | $18,000 |
| WordPress Sicherheits-Audits (vierteljährlich) | $48,000 | — | $48,000 |
| DevOps-Team-Zeit (teilweise FTE) | $120,000 | $30,000 | $90,000 |
| Summen | $520,000 | $38,376 | $481,624 |
Die tatsächlichen Einsparungen endeten näher bei $482K, nicht $420K. Die ursprüngliche $420K-Schätzung aus der Discovery-Phase war konservativ – wir hatten zunächst die Reduzierung der DevOps-Zeit oder die Eliminierung vierteljährlicher Sicherheits-Audits nicht berücksichtigt (Vercel und Cloudflare handhabten die meisten Dinge, die diese Audits abdeckten).
Die ROI-Mathematik ist unkompliziert. Unser Migrations-Projekt kostete FinEdge etwa $185K in Agenturgebühren über das 10-wöchige Engagement. Diese Investition zahlte sich in weniger als 5 Monaten aus.
Technischer Deep Dive: Wichtige Implementierungsdetails
Umgang mit 2.400 Blogbeiträgen mit ISR
Wir generierten nicht alle 2.400 Blogbeiträge zur Build-Zeit statisch. Das hätte Deployments schmerzhaft langsam gemacht. Stattdessen verwendeten wir ISR mit On-Demand-Revalidierung:
// app/blog/[slug]/page.tsx
import { sanityFetch } from '@/lib/sanity'
import { postQuery } from '@/lib/queries'
export const revalidate = 3600 // Revalidiere jede Stunde als Fallback
export async function generateStaticParams() {
// Generiere nur die Top 100 Beiträge nach Traffic vor
const topPosts = await sanityFetch({
query: `*[_type == "post"] | order(pageViews desc) [0...100] { "slug": slug.current }`
})
return topPosts.map((post) => ({ slug: post.slug }))
}
export default async function BlogPost({ params }) {
const post = await sanityFetch({
query: postQuery,
params: { slug: params.slug },
tags: [`post:${params.slug}`]
})
// ... Beitrag rendern
}
Wenn Content-Editoren in Sanity veröffentlichen oder aktualisieren, trifft ein Webhook unseren Revalidierungs-Endpunkt:
// app/api/revalidate/route.ts
import { revalidateTag } from 'next/cache'
import { NextRequest } from 'next/server'
export async function POST(req: NextRequest) {
const body = await req.json()
const secret = req.headers.get('x-sanity-webhook-secret')
if (secret !== process.env.SANITY_WEBHOOK_SECRET) {
return Response.json({ error: 'Unauthorized' }, { status: 401 })
}
// Revalidiere spezifischen Inhalt
if (body._type === 'post') {
revalidateTag(`post:${body.slug.current}`)
revalidateTag('posts-list')
}
return Response.json({ revalidated: true })
}
Content-Aktualisierungen erscheinen jetzt auf der Live-Website in weniger als 3 Sekunden. Vergleichen Sie das mit der 4-Minuten Cache-Invalidierung, die sie mit WordPress + WP Rocket hatten.
Authentifizierung für das Kundenportal
Die Portal-Routen brauchten serverseitige Authentifizierung. Wir verwendeten Next.js Middleware kombiniert mit ihrem bestehenden Auth0-Setup:
// middleware.ts
import { NextResponse } from 'next/server'
import { getSession } from '@auth0/nextjs-auth0/edge'
export async function middleware(req) {
if (req.nextUrl.pathname.startsWith('/portal')) {
const session = await getSession(req, NextResponse.next())
if (!session?.user) {
return NextResponse.redirect(new URL('/api/auth/login', req.url))
}
}
return NextResponse.next()
}
export const config = {
matcher: ['/portal/:path*']
}
Dies läuft am Edge, sodass unauthentifizierte Anfragen umgeleitet werden, bevor sie den Anwendungsserver erreichen. Schnell und sicher.
301 Redirect-Map
Wir hatten etwa 340 URLs, die ihre Struktur während der Migration änderten. Eine Finanzdienstleistungs-Website kann absolut keine kaputten Links haben – jeder eingehende Link von Compliance-Unterlagen, Partner-Websites und historischem Inhalt muss korrekt aufgelöst werden.
Wir bauten eine Redirect-Map in next.config.js auf und ergänzten sie mit einer dynamischen Redirect-Suche von Sanity für von Editoren verwaltete Redirects:
// next.config.js (Auszug)
module.exports = {
async redirects() {
return [
// Statische Redirects für bekannte URL-Änderungen
...require('./redirects.json').map(r => ({
source: r.from,
destination: r.to,
permanent: true,
})),
]
},
}
Sechs Monate nach dem Start zeigt Google Search Console null 404-Fehler aus der Migration. Jeder einzelne Redirect funktioniert.
Lessons Learned auf die harte Tour
1. WordPress Gutenberg-Blöcke sind schmerzhaft zu konvertieren
Wir unterschätzten den Aufwand, Gutenberg-Blöcke in Sanity's Portable Text zu konvertieren. FinEdge hatte 23 verschiedene Block-Typen verwendet, einschließlich benutzerdefinierter Blöcke ihrer vorherigen Agentur. Budget mindestens 20% mehr Zeit als Sie denken für Content-Transformation ein.
2. Content-Editor-Training ist nicht optional
Sanity's Studio ist intuitiv, aber es ist nicht WordPress. Wir führten drei 90-minütige Trainings-Sessions durch und erstellten ein benutzerdefiniertes Sanity Studio mit geführten Workflows. Das Content-Team ging in zwei Wochen von skeptisch zu enthusiastisch, aber diese Trainings-Investition war kritisch.
3. Finanzdienstleistungs-Compliance fügt Komplexität hinzu
Jeder Deployment brauchte einen Audit-Trail. Jede Content-Änderung musste protokolliert werden mit Zeitstempel und Benutzer-Attribution. Wir bauten ein benutzerdefiniertes Sanity-Plugin auf, das alle Dokumentmutationen in eine Append-only Audit-Tabelle in ihrer bestehenden PostgreSQL-Datenbank protokolliert. Dies nahm eine zusätzliche Woche, die nicht im ursprünglichen Scope war.
4. Formulare nicht vergessen
Gravity Forms handhabte 14 verschiedene Formular-Typen auf der WordPress-Website. Wir ersetzten sie durch React Hook Form + Zod Validierung am Frontend und Server Actions im Backend, mit Submissions zu ihrem bestehenden HubSpot CRM. Diese Migration allein dauerte eine volle Woche.
Zeitplan und Teamstruktur
Gesamtprojektdauer: 10 Wochen
| Woche | Fokus | Team |
|---|---|---|
| 1 | Architektur, Sanity-Schema-Design, Content-Audit | 2 Devs, 1 Architekt |
| 2-3 | Content-Sync-Pipeline, Sanity Studio Customization | 2 Devs, 1 Content Strategist |
| 4-5 | Marketing-Website-Build (Next.js) | 3 Devs |
| 6-7 | Portal-Migration, Authentifizierung, Formulare | 3 Devs |
| 8 | Dokumentations-Hub, SEO-Audit, Redirect-Map | 2 Devs, 1 SEO-Spezialist |
| 9 | QA, visuelle Regression, Performance-Tests | 2 Devs, 1 QA |
| 10 | Schrittweise Traffic-Umschaltung, Monitoring, WordPress Stilllegung | 2 Devs, 1 DevOps |
Die maximale Team-Größe war 4 Personen. Das meiste des Projekts lief mit 2-3 Entwicklern. Dies ist nicht ein 15-Personen-, 6-Monats-Engagement – es ist ein fokussiertes, erfahrenes Team, das eine gut geplante Migration ausführt.
Wenn Sie eine ähnliche Migration für Ihre Organisation in Betracht ziehen, haben wir unseren Headless-CMS-Entwicklungsansatz dokumentiert und unsere Preisstruktur ist transparent. Wir freuen uns auch, einen Anruf zu tätigen, um Ihre spezifische Situation zu besprechen – kontaktieren Sie uns hier.
FAQ
Wie lange dauert eine WordPress zu Next.js Migration typischerweise? Für eine Website dieser Komplexität (12.000 Seiten, Kundenportal, Dokumentations-Hub) sind 10 Wochen mit einem erfahrenen Team realistisch. Einfachere Marketing-Websites mit 100-500 Seiten können in 4-6 Wochen migriert werden. Die größte Variable ist Content-Komplexität – wie viele benutzerdefinierte Post-Typen, Block-Typen und Plugin-abhängige Features Sie ausführen.
Können Sie WordPress zu Next.js ohne Ausfallzeit migrieren? Ja, aber es erfordert Planung. Der Schlüssel ist, beide Systeme parallel zu laufen mit einer Content-Sync-Pipeline, dann DNS-level Traffic-Verschiebung zu verwenden, um Benutzer schrittweise zur neuen Website zu bringen. Wir haben dies erfolgreich für mehrere Clients getan. Die kritische Anforderung ist, dass Ihr Inhalt über beide Systeme während des Übergangszeitraums synchron bleibt.
Wie viel kostet eine WordPress zu Headless CMS Migration? Es hängt stark vom Scope ab. Eine unkomplizierte Marketing-Website Migration könnte $30K-$60K laufen. Eine Enterprise-Migration wie FinEdges – mit Kundenportal, Compliance-Anforderungen und 12.000 Seiten – war $185K. Die ROI-Berechnung ist wichtiger als der absolute Kosten. FinEdges Investition zahlte sich in weniger als 5 Monaten durch Lizenzierungseinsparungen allein aus.
Ist Next.js wirklich schneller als WordPress? In praktisch jedem Fall, ja – signifikant schneller. WordPress generiert HTML bei jeder Anfrage (es sei denn, stark gecacht), und selbst mit Caching-Plugins wie WP Rocket, sind Sie durch PHPs Antwortzeit und das Gewicht des WordPress-Ökosystems begrenzt. Next.js mit ISR oder statischer Generierung serviert vorgenerierte Seiten vom Edge. Wir sehen typischerweise 3-5x Verbesserungen in Core Web Vitals.
Welches Headless CMS sollte ich mit Next.js verwenden? Es hängt von Ihrem Team und den Anforderungen ab. Sanity zeichnet sich bei benutzerdefinierter Content-Modellierung und Echtzeit-Zusammenarbeit aus. Contentful ist stark für Enterprise-Teams, die einen strukturierteren, präskriptiveren Ansatz wollen, wird aber pro-Sitz teuer. Storyblok ist großartig, wenn visuelles Bearbeiten eine Priorität ist. Für einfachere Websites können sogar Markdown-Dateien in einem Git-Repo funktionieren. Wir evaluieren dies auf projektweise Basis – es gibt keine universelle Antwort.
Verlieren Sie SEO beim Migrieren von WordPress zu Next.js? Nicht wenn Sie es richtig machen. Die drei Dinge, die wichtig sind: umfassende 301-Redirect-Zuordnung, damit keine bestehenden URLs 404s zurückgeben, Beibehaltung aller Meta-Tags und strukturierten Daten, und Einreichung aktualisierter Sitemaps bei Google Search Console sofort nach Cutover. FinEdge sah einen 31%igen Anstieg des organischen Verkehrs innerhalb von 90 Tagen, hauptsächlich angetrieben durch Core Web Vitals Verbesserungen.
Was passiert mit WordPress-Plugins nach der Migration? Die Funktionalität jedes Plugins muss repliziert oder ersetzt werden. Einige sind unkompliziert – SEO-Plugins werden durch Metadaten in Ihren Next.js-Komponenten ersetzt, Caching-Plugins werden unnötig, und Form-Plugins werden durch React-Form-Bibliotheken ersetzt. Andere, wie benutzerdefinierte Compliance-Protokollierungs-Plugins, benötigen benutzerdefinierte Ersatz-Code. Dies ist warum ein gründliches Plugin-Audit während der Discovery unverzichtbar ist.
Können Content-Editoren nach dem Wechsel zu Headless immer noch einen visuellen Editor verwenden? Ja. Sanity Studio bietet eine anpassbare Bearbeitungsschnittstelle mit Echtzeit-Vorschau. Es ist anders als WordPress's Block-Editor, aber die meisten Content-Teams bevorzugen es nach der initialen Lernkurve. Sanity's Presentation-Tool bietet nun echte visuelle Bearbeitung mit Click-to-Edit-Funktionalität auf der Live-Vorschau. Wir richten auch Preview-Deployments auf Vercel ein, damit Editoren genau sehen können, wie ihr Inhalt vor dem Veröffentlichen aussieht.