Wat is Next.js? Een begrijpelijke gids voor appbouwers
Next.js is een framework om websites en webapps met React te bouwen. React geeft je de bouwstenen van een interface — knoppen, formulieren, lijsten. Next.js voegt de rest van de website eromheen toe: pagina’s en URL’s, pagina’s op de server renderen zodat ze klaar zijn om te lezen, gegevens laden, en backendcode draaien in hetzelfde project. Het is open source, gemaakt door het bedrijf Vercel, en een van de meest gebruikte manieren om React-sites te bouwen.
Waarom Next.js ertoe doet als je met AI bouwt
Wanneer je een app beschrijft aan een AI-builder, moet die een technische basis kiezen. Die keuze bepaalt dingen waar je later om geeft:
- Zichtbaarheid in zoekmachines. Een openbare site die in Google moet scoren, heeft baat bij het verzenden van echte HTML, wat Next.js goed doet.
- Waar de backend staat. Next.js laat frontendpagina’s en servercode (zoals „sla dit formulier op” of „roep de betaal-API aan”) in één project leven.
- Hosting. Een Next.js-app met serverfuncties heeft een server nodig om op te draaien, terwijl een gewone Vite-app als statische bestanden kan worden aangeboden.
Mythex start nieuwe projecten standaard met Vite + React + TypeScript + Tailwind, en gebruikt Next.js wanneer je erom vraagt — „Gebruik Next.js” in je eerste prompt is genoeg (hoe de techniek wordt gekozen). Het helpt dus te weten wanneer dat de moeite waard is.
Een dagelijkse vergelijking
Als React een doos met hoogwaardige Lego-blokjes is, dan is Next.js een Lego-set met de handleiding, de bouwplaat en de onderdelen voor deuren en leidingen er al bij.
Je zou hetzelfde huis met losse blokjes kunnen bouwen — je moet dan zelf beslissen hoe de kamers met elkaar verbonden zijn, waar de voordeur komt en hoe het water binnenkomt. Next.js neemt die beslissingen voor je op een standaardmanier, zodat elk Next.js-project op dezelfde manier is opgebouwd en een nieuwe ontwikkelaar (of een AI) snel de weg vindt.
Wat Next.js aan React toevoegt
| Functie | Wat het voor jou betekent |
|---|---|
| Bestandsgebaseerde routing | Elke pagina is een bestand. Een bestand op app/pricing/page.tsx wordt de pagina /pricing. Geen extra instellingen. |
| Server-rendering | Pagina’s kunnen per verzoek op de server tot HTML worden opgebouwd, zodat ze snel verschijnen en zoekmachines ze kunnen lezen. |
| Statische generatie | Pagina’s die zelden veranderen, kunnen vooraf één keer worden gebouwd en heel snel worden aangeboden. |
| Server Components | Delen van een pagina kunnen alleen op de server draaien — de database rechtstreeks lezen — en stuurden kant-en-klare HTML naar de browser, geen code. |
| Route handlers en server actions | Backendcode, zoals een API-endpoint of een formulierverwerker, leeft in hetzelfde project als de pagina’s. |
| Ingebouwde optimalisaties | Afbeeldingen verkleinen, lettertypen laden en code opsplitsen worden voor je afgehandeld. |
Next.js organiseert pagina’s op twee manieren. De App Router (de map app/) is de nieuwere en ondersteunt Server Components. De Pages Router (de map pages/) is de oorspronkelijke en wordt nog steeds ondersteund. Nieuwe projecten gebruiken over het algemeen de App Router. Als de code van je AI-builder of een tutorial er vreemd uitziet, is dit vaak de reden.
Een uitgewerkt voorbeeld: een openbare gids met lokale koffiezaken
Stel je voor: een site met koffiezaken in je stad, met een pagina per zaak, die je in zoekresultaten wilt zien.
Een Next.js-pagina voor één koffiezaak zou ongeveer er zo uit kunnen zien:
// app/cafes/[slug]/page.tsx → /cafes/blue-door, /cafes/hilltop ...
export default async function CafePage({ params }) {
const { slug } = await params;
const cafe = await db.cafe.findUnique({ where: { slug } });
return (
<main>
<h1>{cafe.name}</h1>
<p>{cafe.address}</p>
</main>
);
}
Wat er gebeurt wanneer iemand (of Google) /cafes/blue-door bezoekt:
- Next.js koppelt de URL aan dat bestand. De map
[slug]betekent „elke koffiezaak”. - Het onderdeel draait op de server, leest de koffiezaak uit de database en bouwt de HTML.
- De browser ontvangt een volledige pagina met de naam en het adres van de zaak al erin — zonder te wachten tot JavaScript de gegevens ophaalt.
Met een client-side React-app zou de browser eerst een bijna lege pagina krijgen, dan JavaScript downloaden, dan de koffiezaak ophalen en dan tonen. Zoekmachines kunnen dat vaak aan, maar een volledig opgebouwde pagina is betrouwbaarder. Zie SEO voor met AI gebouwde websites.
Vergelijk dat met een dashboard voor medewerkers achter een login: zoekmachines kunnen dat sowieso niet zien, dus server-rendering levert er weinig voordeel op, en een eenvoudigere Vite-app is vaak de betere keuze.
Belangrijke termen
| Term | Betekenis |
|---|---|
| Framework | Een structuur met conventies die bepaalt hoe een app is georganiseerd. Next.js is een framework; React is een bibliotheek. |
| SSR (server-side rendering) | De HTML van een pagina op de server bouwen bij elk bezoek. |
| SSG (static site generation) | Pagina’s vooraf, bij het deployen, naar HTML bouwen. |
| CSR (client-side rendering) | De browser bouwt de pagina met JavaScript nadat hij is geladen. Zo werkt een gewone Vite + React-app. |
| SPA (single-page application) | Een app die één keer laadt en weergaven in de browser wisselt zonder volledige paginaverversingen. |
| Hydratatie | De browser „wekt” de door de server verstuurde HTML zodat knoppen en formulieren interactief worden. |
| Route | Een URL-pad zoals /pricing en de code die het beantwoordt. |
Veelvoorkomende misverstanden
- „Next.js vervangt React.” Dat doet het niet. Het gebruikt React. Je onderdelen zijn nog steeds React-onderdelen.
- „Next.js is altijd de betere keuze.” Het is krachtiger, maar ook meer om te begrijpen. Server-rendering, caching en het verschil tussen code voor de server en code voor de client zijn veelvoorkomende bronnen van verwarrende bugs. Voor een app die vooral achter een login zit, is een gewone React-app vaak eenvoudiger.
- „Next.js draait alleen op Vercel.” Het is open source en kan op elke Node.js-server of in een Docker-container draaien. Een volledig statische export is mogelijk als je geen serverfuncties gebruikt.
- „Next.js garandeert goede SEO.” Het maakt leesbare pagina’s makkelijker. Rankings hangen nog steeds af van titels, inhoud, snelheid en links.
- „Servercode in Next.js is automatisch privé.” Code die voor de client is bedoeld, belandt in de browser. Geheimen moeten in code die alleen op de server draait en in omgevingsvariabelen blijven.
Wat je aan je AI-builder kunt vragen
- „Gebruik Next.js met de App Router” — in je eerste prompt, als je dat wilt.
- „Welke pagina’s worden op de server gerenderd, welke zijn statisch en welke draaien in de browser — en waarom?”
- „Maak de openbare marketing- en overzichtspagina’s server-gerenderd of statisch, met goede titels en beschrijvingen.”
- „Houd API-sleutels in code die alleen op de server draait en in omgevingsvariabelen. Laat me zien waar elk ervan wordt gelezen.”
- „Heeft deze app Next.js nodig, of zou een Vite + React-app eenvoudiger zijn voor wat we bouwen?”
Next.js in Mythex
Mythex gebruikt standaard Vite + React + TypeScript + Tailwind en schakelt naar Next.js wanneer je dat in je prompt vraagt; het vroeg noemen bespaart credits vergeleken met later wisselen. Je ziet de app in de live Preview, en Publiceren zet hem live op een URL zonder dat je zelf hosting hoeft in te richten. De documentatie van Mythex vermeldt dat client-gerenderde single-page apps een zwakkere SEO hebben dan server-gerenderde of statische HTML, dus als voor een marketingsite zoekmachines belangrijk zijn, is het de moeite waard dat meteen te zeggen (SEO voor je app).
Veelgestelde vragen
Wat is Next.js in eenvoudige bewoordingen?
Next.js is een framework bovenop React. React bouwt de onderdelen van een gebruikersinterface; Next.js voegt de rest van een website eromheen toe — pagina’s en URL’s, rendering op de server, het laden van gegevens en backendcode — zodat je een volledige webapp in één project kunt bouwen.
Wat is het verschil tussen React en Next.js?
React is een bibliotheek om interfaceonderdelen te bouwen. Next.js is een framework dat React gebruikt en routing, server-rendering, statische pagina’s en code aan de serverkant toevoegt. Elke Next.js-app is een React-app, maar niet elke React-app gebruikt Next.js.
Is Next.js beter voor SEO?
Dat kan. Next.js kan zoekmachines en bezoekers volledig opgebouwde HTML sturen vanaf de server of vanuit vooraf gebouwde statische pagina’s, terwijl een gewone client-side React-app een vrijwel lege pagina stuurt die JavaScript daarna vult. Goede titels, beschrijvingen en inhoud blijven belangrijker dan het framework.
Heb ik Vercel nodig om Next.js te gebruiken?
Nee. Next.js is open source en gemaakt door Vercel, maar het kan draaien op elke server die Node.js draait, in een Docker-container, of als statische export voor sites die geen serverfuncties nodig hebben. Sommige functies zijn op Vercel makkelijker in te stellen.
Moet ik Next.js of Vite gebruiken voor mijn app?
Voor een app achter een login, zoals een dashboard of interne tool, is een Vite + React-app eenvoudiger en werkt die goed. Next.js is het waard wanneer je inhoud nodig hebt die zoekmachines makkelijk kunnen lezen, veel publieke pagina’s, of serverge-renderde pagina’s in hetzelfde project als je backendcode.