export async function getStaticProps() {
const res = await fetch('https://api.magazinul-tau.ro/graphql', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `
query GetProducts {
products(first: 10) {
nodes {
id
name
slug
... on SimpleProduct { price }
}
}
}
`,
}),
});
const { data } = await res.json();
return {
props: { products: data.products.nodes },
revalidate: 60, // ISR la 60 de secunde pentru a proteja baza de date PHP
};
}Toată lumea se udă după Next.js cu WordPress headless, dar puțini îți spun când devine o gaură neagră de bugete și de nervi. Am trecut prin tranziția asta cu un magazin WooCommerce care a crescut de la 15k la 120k vizitatori lunari și am învățat pe pielea mea unde e limita. Hai să vorbim pe cifre și dureri concrete, nu pe povești de marketing.
Iluzia vitezei și costul ascuns
Pe hârtie, headless sună incredibil: viteză brutală, securitate maximă și un stack modern cu React. În realitate, dacă ai sub 50k de vizitatori unici pe lună și un catalog sub 2.000 de produse, headless e overkill curat. Am avut un client cu un magazin mic, cam 8.000 de useri pe lună, care a insistat să facem trecerea pe Next.js pentru că "așa e modern". Am economisit poate 30% la timpul de încărcare pe mobil, dar am pierdut trei săptămâni doar ca să legăm modulele de curierat din România și procesatorul de plăți (care aveau doar pluginuri gata făcute de PHP, nu și librării JS sau API-uri documentate calumea pentru checkout custom).
Fiecare plugin de WooCommerce pe care îl instalezi și "doar funcționează" în PHP devine o problemă de integrare în React. Vrei recenzii? Trebuie să le tragi prin API și să le randezi manual. Vrei cupoane de reducere complexe? Mult noroc la reconstruit logica de checkout în Next.js.
Breakpoint-ul real: Când devine profitabil?
Din experiența mea de peste 10 ani, pragul unde merită să spargi monolitul PHP este pe la 80.000 - 100.000 de vizitatori unici pe lună, sau în următoarele scenarii specifice:
- Trafic masiv din campanii de tip influencer drop: Când îți intră 5.000 de oameni deodată în 2 minute de pe Instagram. WooCommerce pe PHP crapă din cauza interogărilor grele la baza de date (chiar și cu Redis). În schimb, Next.js cu pagini statice generate la build (ISR - Incremental Static Regeneration) servește paginile instantaneu din CDN, fără să atingă baza de date.
- Omnichannel real: Când ai nevoie ca același backend de WooCommerce să alimenteze site-ul web, o aplicație mobilă (React Native) și eventual un sistem POS din magazinul fizic.
- Echipa dedicată de dev: Dacă ai un buget lunar de mentenanță de peste 2.000 de euro. Altfel, orice mic update de design te va costa enorm pentru că necesită un developer de React, nu doar un băiat care știe să mute widget-uri în Elementor.
Trade-off-ul sincer pe care nu ți-l spune nimeni
Să fim sinceri. PHP-ul nu e mort. O temă custom de WooCommerce scrisă curat (fără 50 de pluginuri inutile), rulată pe un VPS bun cu LiteSpeed Enterprise și Redis, poate scoate un timp de încărcare de sub 1.2 secunde.
Dacă alegi Next.js, câștigi un UX incredibil (tranziții de pagini instantanee) și securitate (baza de date WordPress e ascunsă în spatele unui firewall, nu e expusă direct). Dar pierzi simplitatea. SEO devine mai complicat pentru că trebuie să expui sitemap-ul și metadatele Yoast prin GraphQL și să le randezi corect în Next.js.
Dacă magazinul tău produce deja peste 15.000 - 20.000 de euro profit curat pe lună și ești limitat de performanța serverului PHP în timpul campaniilor de Black Friday, fă pasul. Dacă ești sub pragul ăsta, investește banii ăia în marketing și optimizarea bazei de date actuale.
Voi ați încercat să treceți vreun client pe headless? Cum ați rezolvat problema cu checkout-ul și pluginurile românești de curierat?