Zwei Architekturen für Magento im direkten Vergleich
Wer eine neue Magento-Storefront plant, steht meist vor der Grundsatzfrage Hyvä oder PWA Studio. Der eine Ansatz rendert PHP direkt im Magento-Monolithen, der andere trennt Frontend und Backend vollständig und kommuniziert ausschließlich über GraphQL. Dieser Artikel vergleicht Architektur, Hosting-Aufwand, Performance, Team-Skillset und Erweiterbarkeit konkret und zeigt, wann welcher Ansatz sinnvoll ist.
Inhaltsverzeichnis
- 1. Zwei Architekturphilosophien
- 2. Rendering: Server-seitiges PHP vs. React-Hydration
- 3. Hosting und Infrastruktur-Aufwand
- 4. Entwicklerteam und Skillset
- 5. Erweiterbarkeit und Modul-Kompatibilität
- 6. Performance und Core Web Vitals
- 7. Caching-Strategien im Vergleich
- 8. SEO und Time-to-Market
- 9. Entscheidungskriterien: wann was
- 10. Zusammenfassung
- 11. FAQ
1. Zwei Architekturphilosophien
Bevor man Hyvä vs. PWA Studio an einzelnen Metriken misst, lohnt sich der Blick auf die Grundidee hinter beiden Ansätzen. Hyvä ist ein serverseitig gerendertes Theme, das komplett innerhalb des Magento-Monolithen lebt: phtml-Templates, ViewModels und Blöcke laufen im selben PHP-Prozess wie Katalog, Checkout und Admin. Es gibt keine zweite Anwendung, keinen zweiten Build-Prozess, keine zweite Laufzeitumgebung. Die Storefront ist ein Rendering-Layer von Magento, nicht daneben.
PWA Studio verfolgt das genaue Gegenteil: eine vollständig entkoppelte Storefront aus React, GraphQL und Node.js, die Magento ausschließlich über die GraphQL-API anspricht. Backend und Frontend werden getrennt entwickelt, getrennt gebaut und getrennt deployt. Diese Entscheidung zwischen Monolith und Decoupled-Frontend ist der Kern jeder Hyvä PWA Studio Vergleich-Diskussion, weil sie fast alle nachgelagerten Fragen zu Hosting, Team-Skillset und Performance bereits vorwegnimmt. Man kauft mit PWA Studio explizit mehr Flexibilität für Omnichannel-Szenarien ein, bezahlt dafür aber mit zusätzlicher Komplexität an jeder einzelnen Stelle der Architektur.
2. Rendering: Server-seitiges PHP vs. React-Hydration
Bei Hyvä erzeugt ein ViewModel die Daten, das phtml-Template rendert daraus direkt vollständiges HTML, und dieses HTML verlässt den Server bereits fertig. Alpine.js kommt erst danach ins Spiel, und zwar nur für die Interaktivität einzelner Inseln wie Akkordeons, Mini-Cart oder Mobile-Navigation. Es gibt kein virtuelles DOM, keine Reconciliation, keine Hydration im eigentlichen Sinn - der Browser bekommt Markup, das er sofort anzeigen kann, und Alpine.js reichert es minimal an.
PWA Studio hingegen baut die komplette UI als React-Komponentenbaum. Daten kommen über GraphQL-Queries, die der Peregrine-Layer gegen Magentos GraphQL-Endpunkt abfeuert, und der Browser muss React, den Apollo-Client und den gesamten Komponentenbaum laden, parsen, ausführen und hydratisieren, bevor die Seite tatsächlich interaktiv ist. Genau dieser Unterschied im Rendering-Modell ist einer der am meisten unterschätzten Punkte in jedem Hyvä vs. PWA Studio Vergleich: Hyvä liefert fertiges HTML, PWA Studio liefert die Bauanleitung für HTML, das erst im Browser entsteht.
Ein konkretes Beispiel macht den Unterschied greifbar. Für eine Produkt-Hero-Sektion würde PWA Studio typischerweise folgende GraphQL-Query gegen den Magento-Endpunkt schicken:
# PWA Studio: GraphQL query fired by the Peregrine data layer
# to fetch hero data for a single product page
query ProductHero($urlKey: String!) {
products(filter: { url_key: { eq: $urlKey } }) {
items {
uid
name
sku
price_range {
minimum_price {
final_price { value currency }
regular_price { value currency }
}
}
small_image { url label }
stock_status
}
}
}
Das Ergebnis dieser Query landet als JSON im Apollo-Cache, React re-rendert die betroffenen Komponenten, und erst dann sieht der Nutzer Preis und Bild. Diese Kette aus Query, Netzwerk-Roundtrip, Cache-Update und Re-Render ist bei serverseitigem Rendering schlicht nicht vorhanden - Hyvä hat das Ergebnis bereits, bevor die Antwort den Server verlässt.
3. Hosting und Infrastruktur-Aufwand
Hyvä benötigt keine zusätzliche Infrastruktur. Das Theme läuft im selben PHP-FPM-Prozess wie der Rest von Magento, wird über den normalen setup:static-content:deploy-Workflow ausgeliefert und braucht außer einem Tailwind-Build-Schritt während der Entwicklung keine eigene Laufzeitumgebung im Produktivbetrieb. Ein Server, ein Deployment, ein Satz Monitoring-Dashboards.
PWA Studio verlangt dagegen eine eigene Node.js-Hosting-Schicht für das Rendering der Storefront, eine separate Webpack-Build-Pipeline mit eigenen Abhängigkeiten, und häufig einen Service Worker für Offline- und Caching-Funktionalität. Das bedeutet: ein zweiter Deployment-Pfad neben dem Magento-Backend, eine zweite Umgebung, die überwacht, skaliert und gepatcht werden muss, und ein Build-Prozess, der bei größeren Storefronts leicht mehrere Minuten dauert. Die Build-Komplexität zeigt sich schon an einer typischen package.json:
{
"name": "venia-storefront",
"scripts": {
"build": "webpack --config webpack.config.js --mode production",
"watch": "webpack --config webpack.config.js --mode development --watch",
"storybook": "start-storybook -p 6006"
},
"dependencies": {
"@apollo/client": "^3.8.0",
"@magento/peregrine": "^15.0.0",
"@magento/venia-ui": "^11.0.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router-dom": "^5.3.0"
},
"devDependencies": {
"webpack": "^5.88.0",
"webpack-cli": "^5.1.0",
"workbox-webpack-plugin": "^7.0.0",
"babel-loader": "^9.1.0"
}
}
Diese zweite Codebasis mit eigenem Build, eigenem Node-Runtime und eigenem Release-Zyklus ist der Hauptgrund, warum die Total Cost of Ownership bei PWA Studio dauerhaft höher liegt als bei Hyvä. Wer Hyvä oder PWA Studio nur nach den initialen Entwicklungskosten bewertet, übersieht regelmäßig, dass die Node-Schicht auf Dauer eigenes Ops-Personal und eigene Sicherheitsupdates braucht, während Hyvä einfach im bestehenden Magento-Betrieb mitläuft.
4. Entwicklerteam und Skillset
Ein Hyvä-Team braucht PHP 8.x, Tailwind CSS und ein grundlegendes Verständnis von Alpine.js. Das sind Fähigkeiten, die in praktisch jeder Magento-Agentur ohnehin vorhanden sind, weil sie sich stark mit dem Backend-Skillset überschneiden. Ein Backend-Entwickler, der bereits Blöcke, Plugins und Layout-XML kennt, ist nach kurzer Einarbeitung produktiv im Frontend, weil phtml letztlich PHP mit eingebettetem HTML ist.
PWA Studio verlangt ein komplett anderes Profil: React, GraphQL-Resolver, Redux beziehungsweise die Peregrine-Talon-Hooks, Node.js und Webpack-Konfiguration. Das ist ein spezialisiertes Frontend-Team, das auf dem Arbeitsmarkt schwerer zu finden und in der Regel teurer ist als ein PHP-Team. Zusätzlich entsteht Koordinationsaufwand zwischen zwei getrennten Teams, weil jede neue Backend-Funktion erst als GraphQL-Schema-Erweiterung modelliert werden muss, bevor das Frontend-Team sie überhaupt konsumieren kann. Dieser Abstimmungsaufwand zwischen zwei Teams mit unterschiedlichen Toolchains ist ein Faktor, der in oberflächlichen Hyvä PWA Studio Vergleich-Artikeln oft fehlt, in der Praxis aber die Projektlaufzeit spürbar verlängert.
5. Erweiterbarkeit und Modul-Kompatibilität
Hyvä nutzt die Geschäftslogik bestehender Magento-PHP-Module direkt weiter. Ein Extension-Anbieter liefert Blöcke, Repositories und Layout-XML - Hyvä greift über ViewModels genau auf diese Schicht zu, ohne dass eine zusätzliche API-Schicht dazwischen existiert. Die überwiegende Mehrheit der Community- und Marketplace-Erweiterungen funktioniert nach einer schlanken Kompatibilitätsschicht ohne Neuentwicklung der Business-Logik.
Bei PWA Studio sieht das anders aus: Jede Erweiterung, die im Storefront sichtbar sein soll, braucht einen eigenen GraphQL-Resolver auf Backend-Seite und eine eigene RootComponent samt Talon-Hook auf Frontend-Seite. Selbst eine ausgereifte, seit Jahren bewährte Erweiterung muss für PWA Studio im Zweifel komplett neu als headless-fähiges Modul gebaut werden. Das erklärt, warum viele Magento-Extension-Hersteller PWA-Studio-Kompatibilität separat und oft kostenpflichtig anbieten, während Hyvä-Kompatibilität meist über generische Fallback-Templates automatisch mitgeliefert wird.
Am Beispiel der Produkt-Hero-Daten aus Abschnitt 2 zeigt sich der Unterschied konkret. Statt einer GraphQL-Query mit Resolver und RootComponent baut Hyvä ein ViewModel, das direkt gegen das Produkt-Repository arbeitet:
<?php
declare(strict_types=1);
namespace Mironsoft\ProductHero\ViewModel;
use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Framework\View\Element\Block\ArgumentInterface;
use Magento\Framework\Registry;
/**
* Provides hero data for the current product detail page,
* reading directly from the catalog repository (no GraphQL layer needed).
*/
final class ProductHero implements ArgumentInterface
{
/**
* @param ProductRepositoryInterface $productRepository Catalog product repository.
* @param Registry $registry Current product registry.
*/
public function __construct(
private readonly ProductRepositoryInterface $productRepository,
private readonly Registry $registry,
) {
}
/**
* Returns the final price of the currently viewed product.
*
* @return float
*/
public function getFinalPrice(): float
{
$product = $this->registry->registry('current_product');
return (float) $product->getFinalPrice();
}
/**
* Returns the stock status label for display.
*
* @return string
*/
public function getStockStatus(): string
{
$product = $this->registry->registry('current_product');
return $product->isSalable() ? 'IN_STOCK' : 'OUT_OF_STOCK';
}
}
Im Template wird diese ViewModel-Klasse direkt injiziert und ohne Netzwerk-Roundtrip gerendert, Alpine.js übernimmt lediglich das clientseitige Verhalten, etwa das Umschalten von Galeriebildern:
<?php
/** @var \Mironsoft\ProductHero\ViewModel\ProductHero $productHero */
$productHero = $viewModels->require(\Mironsoft\ProductHero\ViewModel\ProductHero::class);
?>
<div x-data="{ activeImage: 0 }" class="product-hero">
<p class="price" x-text="'€ ' + '<?= (float) $productHero->getFinalPrice() ?>'"></p>
<span class="stock" x-text="'<?= $productHero->getStockStatus() ?>'"></span>
<button x-on:click="activeImage = (activeImage + 1) % 3" type="button">
Next image
</button>
</div>
6. Performance und Core Web Vitals
Time to First Byte verhält sich bei beiden Ansätzen grundlegend anders. Bei Hyvä liefert Varnish gecachte Antworten typischerweise in 20 bis 80 Millisekunden, ungecachte PHP-FPM-Antworten liegen meist zwischen 150 und 400 Millisekunden, abhängig von der Seiten-Komplexität. Bei PWA Studio hängt die TTFB zusätzlich davon ab, wie das Rendering der Node-Schicht konfiguriert ist und wie schnell der GraphQL-Server antwortet - bei client-lastigem Rendering kommt oft ein zusätzlicher Netzwerk-Hop zum GraphQL-Endpunkt hinzu, bevor überhaupt sichtbarer Inhalt entsteht.
Bei den Core Web Vitals zeigt sich der Unterschied noch deutlicher. Largest Contentful Paint wird bei Hyvä primär von Bildgröße und Netzwerklatenz bestimmt, weil der Text- und Layout-Inhalt sofort im HTML vorhanden ist. Bei PWA Studio hängt LCP zusätzlich davon ab, wie lange der Browser braucht, um das React-Bundle herunterzuladen, zu parsen, auszuführen und zu hydratisieren, bevor der sichtbare Inhalt tatsächlich final gerendert ist. Interaction to Next Paint leidet bei React zusätzlich unter Re-Render-Kosten größerer Komponentenbäume, während Alpine.js durch seine gezielte, scoped Reaktivität in der Regel deutlich weniger Hauptthread-Arbeit pro Interaktion erzeugt.
Cumulative Layout Shift ist bei beiden Ansätzen beherrschbar, solange Bildabmessungen und Platzhalter korrekt reserviert werden. Bei PWA Studio kommt jedoch ein zusätzliches Risiko hinzu: Wenn die initiale Server-Antwort nicht vollständig vorgerendert ist, kann die Hydration einen sichtbaren Sprung verursachen, sobald React den anfänglichen Platzhalter durch den finalen Inhalt ersetzt - ein Effekt, den es bei Hyväs direktem PHP-Rendering strukturell nicht gibt.
7. Caching-Strategien im Vergleich
Hyvä setzt vollständig auf Magentos native Varnish Full Page Cache. Die komplette HTML-Antwort wird pro URL und Kundengruppe zwischengespeichert, Cache-Tags sorgen dafür, dass beim Speichern eines Produkts oder einer Kategorie nur die betroffenen Seiten invalidiert werden. Dieser Mechanismus ist seit Jahren erprobt, gut dokumentiert und funktioniert ohne zusätzliche Konfiguration außerhalb der ohnehin vorhandenen Magento-Infrastruktur.
PWA Studio kann keine vollständige HTML-Antwort auf dieselbe Weise cachen, weil der Inhalt größtenteils clientseitig aus GraphQL-Antworten zusammengesetzt wird. Stattdessen kommen Persisted Queries zum Einsatz, bei denen vorregistrierte Query-IDs anstelle des vollständigen Query-Strings übertragen werden, um Payload-Größe zu reduzieren, sowie Service-Worker-Caching über Workbox für statische Assets und wiederkehrende API-Antworten. Beide Mechanismen benötigen deutlich mehr manuelle Pflege bei Invalidierung, sobald sich Katalogdaten ändern, weil es keine zentrale Cache-Tag-Instanz wie Varnish gibt.
# Varnish VCL snippet used by Hyvä-based Magento storefronts
# Full page cache with tag-based invalidation on catalog changes
sub vcl_recv {
if (req.method == "PURGE") {
return (hash);
}
unset req.http.Cookie;
return (hash);
}
sub vcl_hash {
hash_data(req.http.X-Magento-Vary);
return (lookup);
}
sub vcl_backend_response {
if (beresp.http.X-Magento-Tags) {
set beresp.ttl = 86400s;
set beresp.http.Cache-Control = "public, max-age=86400";
}
}
Der praktische Unterschied: Ein Hyvä-Storefront invalidiert betroffene Seiten sofort und zentral über einen einzigen Cache-Layer, während PWA Studio mehrere, lose gekoppelte Cache-Schichten - Apollo-Client-Cache, Service Worker, gegebenenfalls ein zusätzlicher GraphQL-Cache-Server - synchron halten muss.
8. SEO und Time-to-Market
Für Suchmaschinen ist Hyväs vollständig serverseitig gerendertes HTML unkompliziert: Googlebot sieht denselben Inhalt wie ein Nutzer ohne JavaScript, ohne dass ein Rendering-Budget verbraucht wird. Bei PWA Studio muss sichergestellt sein, dass die initiale Antwort bereits ausreichend Inhalt enthält, damit Crawler nicht auf eine vollständige JavaScript-Ausführung angewiesen sind - ein Punkt, der in der Vergangenheit wiederholt zu SEO-Problemen bei React-basierten Decoupled-Storefronts geführt hat.
Beim Time-to-Market liegt Hyvä ebenfalls vorn, weil ein einziges Codebase mit dem gewohnten Magento-Deployment-Prozess ausreicht und bestehende Extensions in aller Regel ohne Zusatzaufwand weiterlaufen. PWA Studio verlängert Projektlaufzeiten, weil für jede kundenspezifische Anforderung sowohl ein GraphQL-Schema-Update als auch eine passende React-Komponente entstehen muss, bevor überhaupt etwas sichtbar ist. Bei knappen Launch-Terminen ist das ein entscheidender Faktor in der Hyvä vs. PWA Studio-Abwägung.
9. Entscheidungskriterien: wann was
Für die meisten klassischen B2C- und B2B-Shops mit einem bestehenden Magento-PHP-Team, moderatem Budget und einem primären Vertriebskanal Web ist Hyvä die naheliegende Wahl. Die niedrigere Total Cost of Ownership, die kürzere Time-to-Market und die direkte Wiederverwendung vorhandener Extensions überwiegen in diesem Szenario fast immer die theoretische Flexibilität von PWA Studio.
PWA Studio rechtfertigt seinen Mehraufwand vor allem dann, wenn echte Omnichannel-Anforderungen bestehen: eine mobile App, ein Kiosk-System und der Web-Storefront sollen dieselbe GraphQL-API teilen, oder ein bereits vorhandenes, spezialisiertes React-Team soll die Storefront eigenständig weiterentwickeln, losgelöst vom Magento-Release-Zyklus. Wer hingegen primär organischen Suchverkehr und schnelle Ladezeiten priorisiert, sollte die zusätzliche Hydration-Schicht von PWA Studio kritisch hinterfragen.
| Dimension | Hyvä | PWA Studio | Praktische Auswirkung |
|---|---|---|---|
| Hosting-Infrastruktur | Innerhalb Magento, kein Zusatz-Server | Eigene Node.js-Schicht nötig | Ein Deployment vs. zwei getrennte Pipelines |
| Rendering-Modell | Server-seitiges PHP, fertiges HTML | React-Hydration im Browser | Sofort sichtbarer Inhalt vs. Hydration-Wartezeit |
| Team-Skillset | PHP, Tailwind, Alpine.js | React, GraphQL, Node, Webpack | Überschneidung mit Backend-Team vs. Spezialteam |
| TTFB (typisch) | 20-400 ms je nach Cache-Status | Höher durch GraphQL-Roundtrip | Direkter Effekt auf LCP und Core Web Vitals |
| Erweiterbarkeit | Bestehende PHP-Module direkt nutzbar | Resolver + RootComponent je Extension | Deutlich geringerer Integrationsaufwand bei Hyvä |
| Deployment-Pipeline | Ein Build, ein Release-Zyklus | Zwei Codebases, zwei Release-Zyklen | Höhere Koordinations- und Betriebskosten |
Mironsoft
Hyvä-Entwicklung, Architektur-Beratung und Migration von Luma oder PWA Studio
Unsicher, ob Hyvä oder PWA Studio zu eurem Projekt passt?
Wir analysieren euer Projekt anhand von Team-Skillset, SEO-Anforderungen, Budget und Omnichannel-Bedarf und geben eine klare, belastbare Architekturempfehlung, statt eine Standardlösung zu verkaufen.
Architektur-Audit
Fundierte Entscheidungsgrundlage für Hyvä oder PWA Studio anhand eurer konkreten Anforderungen
Hyvä-Umsetzung
Vollständige Theme-Entwicklung mit ViewModels, Tailwind und Alpine.js
Performance-Check
Core-Web-Vitals-Messung und Caching-Konzept für eure bestehende Storefront
10. Zusammenfassung
Der Vergleich Hyvä vs. PWA Studio läuft immer wieder auf dieselbe Grundfrage hinaus: Braucht das Projekt die Entkopplung, die PWA Studio bietet, oder überwiegen die Vorteile eines einzigen, serverseitig gerenderten Codebases? Hyvä liefert fertiges HTML direkt aus PHP, benötigt keine zusätzliche Node-Infrastruktur, nutzt bestehende Magento-Extensions ohne Zusatzaufwand weiter und erreicht in der Regel niedrigere TTFB-Werte und bessere Core Web Vitals, weil keine Hydration-Schicht dazwischenliegt.
PWA Studio spielt seine Stärken dort aus, wo mehrere Frontends dieselbe GraphQL-API teilen sollen oder ein dediziertes React-Team unabhängig vom Magento-Release-Zyklus arbeiten muss. Für die meisten klassischen Magento-Shops mit einem primären Web-Kanal ist der zusätzliche Hosting-, Team- und Wartungsaufwand von PWA Studio jedoch schwer zu rechtfertigen, wenn Hyvä dieselben Geschäftsanforderungen mit deutlich geringerer Komplexität abdeckt.
Hyvä vs. PWA Studio - Das Wichtigste auf einen Blick
Architektur
Hyvä rendert PHP direkt im Magento-Monolithen. PWA Studio trennt Frontend und Backend vollständig und kommuniziert nur über GraphQL.
Hosting & Infrastruktur
Hyvä braucht keine Zusatz-Infrastruktur. PWA Studio verlangt eine eigene Node.js-Schicht, Webpack-Build und Service-Worker-Betrieb.
Team & Skillset
Hyvä nutzt PHP, Tailwind und Alpine.js - überschneidet sich mit dem Backend-Team. PWA Studio braucht ein spezialisiertes React/GraphQL/Node-Team.
Performance & SEO
Hyvä liefert sofort sichtbares HTML mit niedrigerer TTFB. PWA Studio benötigt Hydration, was LCP und INP zusätzlich belastet.