In comparison, PHP is dead simple: create some files, write some PHP code, and then deploy it. No muss, no fuss. Routing isn’t much of a worry and the server renders the app by default.
Next.js is a small framework that ships with a number of cool features, including:
- Server-rendered by default
- Automatic code splitting for faster page loads
- Simple client-side routing (page based)
- Webpack-based dev environment which supports Hot Module Replacement(HMR)
- Able to implement with Express or any other Node.js HTTP server
- Customizable with your own Babel and Webpack configurations
The newest version, Next.js 3 has even more fun goodies to play around with. Dynamic import allows for a codebase that can be split up into several sections that can later be dynamically loaded. The community-driven static export feature allows users to create a truly static site with no need for a server to deploy it.
In pure functionality, things have improved dramatically in small but important ways. For one, the startup time is now twice as fast. The color scheme in error messages has changed to be more readable. (Look, aesthetics are important, okay?)
And, also important, the core bundle size for Next.js has decreased, which is always good for your battery life. Other big changes include improved hot module replacement and an opt-in utility that makes it easier to dynamically load Reactive components.