Next.js: Difference between revisions

Content deleted Content added
Apeltsi (talk | contribs)
Update preview version
top: logo class = skin-invert
 
(8 intermediate revisions by 7 users not shown)
Line 2:
{{Infobox software
| name = Next.js
| logo = Next.js wordmark.svg
| logo class = skin-invert
| logo alt = The Next.js logo, a stylization of its name
| logo captionalt = VercelThe Next.js Logowordmark
| logo caption = Vercel Next.js wordmark
| author = Guillermo Rauch<ref name=simplify>{{cite web |first=Matt |last=Asay |title=How Next.js aims to simplify front-end development |url=https://www.techrepublic.com/article/how-next-js-aims-to-simplify-front-end-development/ |access-date=2020-10-20 |website=[[TechRepublic]] |date=21 April 2020 |language=en |archive-date=2020-06-03 |archive-url=https://web.archive.org/web/20200603082105/https://www.techrepublic.com/article/how-next-js-aims-to-simplify-front-end-development/ |url-status=dead}}</ref>
| developer = [[Vercel]] and the open-source community<ref>{{cite web |url=https://github.com/vercel/next.js |title=vercel/next.js |website=GitHub |access-date=2019-03-17 |archive-date=2019-03-16 |archive-url=https://web.archive.org/web/20190316035131/https://github.com/vercel/next.js |url-status=live}}</ref>
Line 10 ⟶ 11:
| latest release version = {{wikidata|property|edit|reference|P348}}
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}
| latest preview version = v15.34.0-canary.2074 <ref>{{cite web |url=https://github.com/vercel/next.js/releases/tag/v15.34.0-canary.2074 |title=Release v15.34.0-canary.2074 · vercel/next.js |website=GitHub |publisher=Vercel |access-date=2025-0306-2410 }}</ref>
| programming language = [[JavaScript]], [[TypeScript]], and [[Rust (programming language)|Rust]]
| platform = [[Web platform]]
| size = 17.0 [[Megabyte|MB]]
| genre = [[Web application framework]]
| license = [[MIT License]]
Line 19:
}}
 
'''Next.js''' is an [[open-source]] [[Web framework|web development framework]] created by the private company [[Vercel]] providing [[React (JavaScript librarysoftware)|React]]-based web applications with [[server-side rendering]] and [[static rendering]].
 
React documentation mentions Next.js among "Recommended Toolchains" advising it to developers when "building a server-rendered website with Node.js".<ref name="React documentation">{{cite web |title=Recommended Toolchains |url=https://reactjs.org/docs/create-a-new-react-app.html#recommended-toolchains |access-date=10 July 2021 |website=React documentation |language=en-US |format=HTML}}</ref> Where traditional React apps can only render their content in the client-side browser, Next.js extends this functionality to include applications rendered on the server-side.
 
The copyright and trademarks for Next.js are owned by '''Vercel''',<ref>{{cite web |url=https://vercel.com/design/brands#next.js |title=Next.js Brand Guidelines |date=26 August 2022}}</ref> which also maintains and leads its open-source development.<ref>{{cite web |title=Develop. Preview. Ship. For the best frontend teams – Vercel |url=https://vercel.com/home |url-status=live |archive-url=https://web.archive.org/web/20211006015250/https://vercel.com/home |archive-date=2021-10-06 |access-date=2020-09-22 |website=vercel.com |language=en-US |format=HTML}}</ref>
 
== Background ==
Next.js is a [[React (web frameworksoftware)|React]] framework that enables several extra features, including [[server-side rendering]] and [[static rendering]].<ref name=compareStatic>{{cite web |date=2020-07-02 |title=Differences Between Static Generated Sites And Server-Side Rendered Apps |url=https://www.smashingmagazine.com/2020/07/differences-static-generated-sites-server-side-rendered-apps/ |access-date=2020-10-19 |website=[[Smashing Magazine]] |language=en}}</ref> React is a [[JavaScript library]] that is traditionally used to build web applications rendered in the client's browser with JavaScript.<ref name=thakkar1>{{cite web |last=Thakkar |first=Mohit |title=Next.js |date=2020 |url=https://doi.org/10.1007/978-1-4842-5869-9_3 |work=Building React Apps with Server-Side Rendering: Use React, Redux, and Next to Build Full Server-Side Rendering Applications |pages=93–137 |editor-last=Thakkar |editor-first=Mohit |place=Berkeley, CA |publisher=[[Apress]] |language=en |doi=10.1007/978-1-4842-5869-9_3 |isbn=978-1-4842-5869-9 |s2cid=241224880 |access-date=2020-10-20}}</ref> Developers recognize several problems with this strategy however, such as not catering to users who do not have access to JavaScript or have disabled it, potential security issues, significantly extended page loading times, and harm to the site's overall [[search engine optimization]].<ref name=thakkar1 /> Frameworks such as Next.js sidestep these problems by allowing some or all of the website to be rendered on the server-side before being sent to the client.<ref name=thakkar1 /><ref name=thakkar2>{{cite web |last=Thakkar |first=Mohit |title=Adding Server-Side Rendering to Your React Application |date=2020 |url=https://doi.org/10.1007/978-1-4842-5869-9_4 |work=Building React Apps with Server-Side Rendering: Use React, Redux, and Next to Build Full Server-Side Rendering Applications |pages=139–152 |editor-last=Thakkar |editor-first=Mohit |place=Berkeley, CA |publisher=[[Apress]] |language=en |doi=10.1007/978-1-4842-5869-9_4 |isbn=978-1-4842-5869-9 |s2cid=216333955 |access-date=2020-10-20}}</ref> Next.js is one of the most popular frameworks for React.<ref>{{cite web |first=Matt |last=Asay |title=Why front-end development may be the new frontier |url=https://www.techrepublic.com/article/why-front-end-development-may-be-the-new-frontier/ |access-date=2020-10-20 |website=[[TechRepublic]] |date=2 December 2019 |language=en}}</ref> It is one of several recommended "toolchains" available when starting a new app, all of which provide a layer of abstraction to aid in common tasks.<ref name="SmashingStyle">{{cite web |last=Lukman |first=Adebiyi Adedotun |date=2020-09-17 |title=Comparing Styling Methods In Next.js |url=https://www.smashingmagazine.com/2020/09/comparison-styling-methods-next-js/ |access-date=2020-10-20 |website=[[Smashing Magazine]] |language=en}}</ref> Next.js requires [[Node.js]] and can be initialized using [[npm]].
 
[[Google]] has contributed to the Next.js project, including 43 pull requests in 2019.<ref name="insiders">{{cite web |last=Asay |first=Matt |date=February 1, 2020 |title=An insider's look at Google's web framework contributions to Next.js and more |url=https://www.techrepublic.com/article/insiders-look-at-googles-web-framework-contributions-to-next-js-and-more/ |access-date=2020-10-19 |website=[[TechRepublic]] |language=en-US}}</ref> As of October 2024, the framework is used by many large websites, including [[Walmart]], [[Apple Inc|Apple]], [[Nike, Inc.|Nike]], [[Netflix]], [[TikTok]], [[Uber]], [[Lyft]], [[Starbucks]] and [[Spotify]].<ref name=thakkar1 /><ref>{{cite web |title=Spotify.com Technology Stack |url=https://www.wappalyzer.com/lookup/spotify.com/ |website=Wappalyzer |access-date=15 October 2024}}</ref> In early 2020, '''Vercel''' raised $21 million in Series A funding to support improvements to the software.<ref name=simplify /> The framework's original author, Guillermo Rauch, is currently the CEO of [[Vercel]], and the project's lead maintainer is Tim Neutkens.<ref>{{cite web |last=Donovan |first=Ryan |date=2020-10-07 |title=Static site generation with single page app functionality? That's what's coming Next(.js) |url=https://stackoverflow.blog/2020/10/07/qa-with-the-creators-of-next-js-on-version-9-5/ |access-date=2020-10-20 |website=Stack Overflow Blog |language=en-US |format=html}}</ref>
 
== Development history ==
Line 35:
Next.js 2.0 was announced in March 2017 including several improvements that made it easier to work with small websites. It also increased the build efficiency and improved the scalability of the hot-module replacement feature.<ref>{{Cite web|last=Krill|first=Paul|date=2017-03-28|title=Next.js 2.0 plays better with React and JavaScript|url=https://www.infoworld.com/article/3185385/nextjs-20-plays-better-with-react-and-javascript.html|access-date=2020-10-20|website=[[InfoWorld]]|language=en}}</ref>
 
Version 7.0 was released in September 2018 with improved error handling and support for React's context [[API]] for improved dynamic route handling. This was also the first version to upgrade to [[Webpack]] 4.<ref>{{Cite web |last=Krill |first=Paul |date=2018-09-21 |title=Next.js 7 framework compiles faster, supports WebAssembly |url=https://www.infoworld.com/article/3307190/nextjs-7-framework-compiles-faster-supports-webassembly.html |access-date=2020-10-20 |website=[[InfoWorld]] |language=en-US}}</ref>
 
Version 8.0 was released in February 2019 and was the first version to offer [[Serverless computing|serverless]] deployment of applications, in which the code is split up into [[lambda function (computer programming)|lambda function]]s that are run on demand. The version also reduced the time and resources required for static exports and improved [[Prefetch input queue|prefetch]] performance.<ref>{{Cite web |last=Krill |first=Paul |date=2019-02-14 |title=Next.js 8 now supports serverless apps |url=https://www.infoworld.com/article/3340817/nextjs-8-now-supports-serverless-apps.html |access-date=2020-10-20 |website=[[InfoWorld]] |language=en-US}}</ref>
 
Version 9.3, announced in March 2020, included various optimizations and global [[Sass (stylesheet language)|Sass]] and CSS module support.<ref>{{Cite web|last=Krill|first=Paul|date=2020-03-12|title=Next.js upgrade emphasizes static site generation|url=https://www.infoworld.com/article/3532316/nextjs-upgrade-emphasizes-static-site-generation.html|access-date=2020-10-20|website=[[InfoWorld]]|language=en}}</ref>
Line 45:
On June 15, 2021 Next.js version 11 was released, introducing among others: [[Webpack]] 5 support, preview of real-time collaborative coding functionality "Next.js Live", and experimental function of automatic conversion from Create React App to Next.js compatible form "Create React App Migration".<ref>{{cite web|title=Next.js 11|url=https://nextjs.org/blog/next-11|accessdate=2021-07-10}}</ref>
 
On October 26, 2021, Next.js 12 was released, adding a [[Rust (programming language)|Rust]] compiler, making the compilation faster, [[AVIF]] support, Edge Functions & Middleware, and Native ESM & URL Imports.<ref>{{Cite web|title=Next.js 12|url=https://nextjs.org/blog/next-12|access-date=2021-10-27|website=nextjs.org|language=en}}</ref>
 
On October 26, 2022, '''Vercel''' released Next.js 13. This major release brought about a new routing pattern in [[Software release life cycle|beta]], with the addition of the App Router that includes support for layouts, React Server Components, streaming, and a new set of data fetching methods. Furthermore, '''Vercel''' announced a new toolchain for front-end development called Turbo, including Turbopack as a successor to Webpack, Turborepo for [[Incremental build (build system)|incremental build]] systems.<ref>{{Cite web |last=Orbán |first=Balázs |date=2022-10-25 |title=Next.js 13 |url=https://nextjs.org/blog/next-13 |access-date=2023-06-09 |website=nextjs.org |language=en-US}}</ref>
 
In May 2023, '''Vercel''' released Next.js 13.4. This brought with it the stable version of App Router, which allows developers to use it in production.<ref>{{Cite web|last1=Markbåge|first1=Sebastian|last2=Neutkens|first2=Tim|date=2023-05-04|title=Next.js 13.4|url=https://nextjs.org/blog/next-13-4|access-date=2023-06-07|website=nextjs.org|language=en-US}}</ref>
 
In October 2023, '''Vercel''' released Next.js 14, which comes with improved memory management with using edge runtime.<ref name=":0">{{Cite web |last= |first= |date=2023-12-08 |title=Next.js 14.0.0 |url=https://github.com/vercel/next.js/releases/tag/v14.0.0 |access-date=2023-11-26 |website=nextjs.org |language=en-US}}</ref>
 
In October 2024, '''Vercel''' released Next.js 15. Next.jsIt Improvementintroduces oversthe Next.jsRust-based 14bundler areTurbopack as(which Follows:is faster than Webpack), support for the React 19, and asynchronous request APIs.<ref>{{Cite web |last= |first= |date=2023-12-08 |title=Next.js 14.0.0 |url=https://github.com/vercel/next.js/releases/tag/v15.0.0 |access-date=2023-11-26 |website=nextjs.org |language=en-US}}</ref><ref>{{Cite web |date=2024-10-24 |title=Next.js 15 arrives with faster bundler |url=https://www.infoworld.com/article/3587112/next-js-15-arrives-with-faster-bundler.html |access-date=2025-04-14 |website=InfoWorld |language=en-US}}</ref>
 
# Support React 19
# Turbopack Stability and Performance
# Caching Semantics Overhaul
# Enhance Developer Experience (DX)
# Partial Prerendering (PPR)
# Async Request APIs
# New Form Component
# Image and Static Generation Improvements
# Server Actions and Middleware
# Self-Hosting and Deployment
 
== Styling and features ==