Stará rovnica

Väčšina webov stále beží na WordPress, PHP alebo Symfony s oddeleným REST API. Frontend je React alebo Vue, backend je Node.js alebo Laravel, databáza je MySQL niekde na serveri. Funguje to. Ale platíš za to — infraštruktúrou, časom na správu, zložitosťou nasadenia.

Nuxt 4 túto rovnicu mení.

Čo je vlastne Nuxt

Nuxt je fullstack framework postavený na Vue.js. Nie len frontend. Server API routes v Nuxte znamenajú, že nepotrebuješ separátny backend — žiadny Express, žiadny Fastify, žiadny Laravel. Jeden projekt, jeden repozitár, celý stack.

Rendering je hybridný — môžeš miešať SSR (server-side rendering), SSG (staticky generované stránky) a CSR (čisto klientský rendering) podľa potreby. Blog článok? SSG — vygeneruj raz, servíruj z CDN. Realitný portál s filtráciou? SSR — čerstvé dáta pri každom requeste.

Prečo Vue a nie React

Nie preto, že Vue je "lepší". Oboje sú skvelé frameworky a React má väčší ekosystém. Vue má miernejšiu krivku učenia, prirodzenejší <template> systém a výborné komponenty (Vuetify) pre admin rozhrania s formulármi, tabuľkami a dialógmi.

Pre Modulo CMS admin — kde robíš CRUD nad používateľmi, článkami, nehnuteľnosťami — je Vue s Vuetify produktívnejší. Menej boilerplate, viac hotového.

Nuxt 4 vs Nuxt 3

Nie revolúcia. Evolúcia správnym smerom.

Najdôležitejšia zmena: srcDir: 'app/' — aplikačný kód žije v podpriečinku app/, nie v roote projektu. Čistejšia štruktúra, jednoduchšie monorepo. Lepší Cloudflare runtime support priamo v Nitro (server engine Nuxtu). Výkonnostné zlepšenia pri hydratácii a build čase.

Nuxt + Cloudflare = edge-native

Nitro má natívny preset pre Cloudflare Workers a Pages. Kód sa kompiluje do jedného JS bundlu, ktorý beží priamo na Cloudflare edge — nie na vzdialenom serveri v Amsterdame, ale v dátovom centre najbližšom k používateľovi.

Výsledok: response time pod 50ms kdekoľvek na svete. Bez konfigurácie load balancerov, bez nastavovania CDN vrstvy, bez proxy pravidiel. Stačí pnpm build a git push.

V Modulo CMS konkrétne

Modulo CMS je monorepo s dvoma Nuxt projektmi:

  • Admin (Nuxt 3 + Vuetify) — správa obsahu, používateľov, rolí. Port 3001.
  • Web (Nuxt 4) — verejná časť pre návštevníkov. Port 3000.

Oba zdieľajú rovnakú Cloudflare D1 databázu. Admin píše, web číta. Žiadna synchronizácia, žiadne webhooky, žiadne cache invalidation — databáza je pravda pre oba.

Server API routes v admin Nuxte sú serverové funkcie — server/api/blog/index.get.ts vráti zoznam článkov, server/api/blog/[slug].put.ts uloží úpravy. TypeScript end-to-end, bez externého API servera.

Pre klienta to znamená

Web beží rýchlo bez drahej serverovej infraštruktúry. Kód je štandardný TypeScript/Vue — nie proprietárna platforma, nie zanikajúci ekosystém. Každý Vue vývojár vie v ňom pracovať.

Nuxt 4 nie je hype. Je to pragmatická voľba pre tímy, ktoré chcú moderný fullstack vývoj bez zbytočnej komplexity.