Next.js is een framework dat gebouwd werd bovenop React.js. Het waardeert React voor wat het is en negeert het voor wat het niet is.
Net zoals bij Create-React-App, kan je een Next.js applicatie opzetten met 1 commando.
Een pagina toevoegen is zo eenvoudig als een bestand aanmaken in de "pages"-directory, waarin je een component toevoegt die omschrijft hoe die pagina er moet uit zien.
Next.js zal deze pagina statisch aanmaken op de server (at build-time) en deze pagina doorsturen naar de client op elke request, zoals het vroeger gebeurde. Indien je data nodig hebt die reeds op de server bestaat (at build-time), kan Next.js op basis van deze data statische pagina's voorzien, die dan on request kunnen doorgestuurd worden naar de client.
Indien de pagina data nodig heeft, waarover de server nog niet beschikt tijdens het builden van de applicatie (data die bijvoorbeeld op het moment moet berekend of samengesteld worden), dan biedt Next.js verschillende opties. Je kan Next.js de pagina laten samenstellen op de server, wanneer de request komt, of je kan de data opvragen in de client, zoals een traditionele SPA.
Next.js biedt dus de flexibiliteit om data te injecteren in je applicatie, wanneer je die nodig hebt: at build-time, op de server, of terwijl gebruikers je applicatie gebruiken.
Als extra optie kan je ook je applicaties statisch builden, daarna on request een pagina opnieuw genereren om die vervolgens statisch aan te bieden.