The React Framework

Overview

Next.js

Getting Started

Visit https://nextjs.org/learn to get started with Next.js.

Documentation

Visit https://nextjs.org/docs to view the full documentation.

Who is using Next.js?

Next.js is used by the world's leading companies. Check out the Next.js Showcase to learn more.

Community

The Next.js community can be found on GitHub Discussions, where you can ask questions, voice ideas, and share your projects.

To chat with other community members you can join the Next.js Discord.

Our Code of Conduct applies to all Next.js community channels.

Contributing

Please see our contributing.md.

Authors

Comments
  • Warning: Prop className did not match.

    Warning: Prop className did not match.

    Examples bug report

    Example name

    with-styled-components

    Describe the bug

    Also posted here: #2538

    Using css prop introduced with styled-components v4 causes Warning: Prop className did not match..

    To Reproduce

    Add any HTML element with css prop.

    Expected behavior

    Correctly styled rendering on the server side without any warnings.

    Screenshots

    57497472-7b657c00-72e0-11e9-84c5-e7e5fa0d351c

    System information

    • OS: Windows
    • Chrome
    • Version of Next.js: 8.1.0

    Additional context

    Here is an example I created to demonstrate the issue: https://codesandbox.io/embed/jlwvwyy0ow

    Open this and refresh once the building is done: https://jlwvwyy0ow.sse.codesandbox.io/

    good first issue type: needs investigation 
    opened by th0th 273
  • Static Generation / SSG Improvements

    Static Generation / SSG Improvements

    Summary

    Allow Next.js to become fully hybrid by providing methods to do both static generation and server-side rendering on a per-page basis.

    • Two new per-page data fetching methods
      • getStaticProps - Opt-in to static generation (SSG) at next build time.
      • getServerSideProps - Opt-in to server-side rendering (SSR) which renders on-demand.
    • A new method for statically generating (SSG) a set of routes from dynamic sources
      • getStaticPaths - Return list of parameters for dynamic routes to do static generation (SSG)

    This RFC exclusively discusses API additions. All new functionality is completely backwards compatible and can be incrementally adopted. This RFC introduces no deprecations.

    Background

    When building websites or web applications you generally have to choose between 2 strategies: Static generation (SSG) or server-side rendering (SSR).

    Next.js instead lets you build hybrid applications that allow you to choose per-page which strategy is used. Starting with Next.js 9, pages without getInitialProps get statically optimized and output as .html files upon next build.

    However, you might want to do data fetching while generating static pages for your specific use case.

    For example, to statically generate marketing pages from a CMS or a blog section of the site.

    Using getInitialProps would opt you into SSR in that case.

    Next.js currently has a next export command, that makes the application fully SSG, losing the hybrid nature of Next.js.

    If you use next export with getInitialProps there is another problem that surfaces. getInitialProps is called at build time (which is great), but then when you use next/link to move between pages getInitialProps is called client-side, instead of using the next export result.

    This also means the data source (CMS / API endpoint) is called directly on client-side transitions, if your data source is down, client-side transitions break while moving between pages.

    We've collaborated with heavy users of SSG and next export in Next.js like HashiCorp (thanks @jescalan) and extensively investigated the right constraints for introducing two new data fetching methods: getStaticProps and getServerSideProps. But also a way to provide parameters to statically generate static pages for dynamic routes: getStaticPaths (replacement for exportPathMap that is per-page).

    These new methods have many advantages over the getInitialProps model as there is a clear distinction between what will become SSG vs SSR.

    • getStaticProps marks the page to be statically generated at build time (when running next build)
    • getStaticPaths allows for returning a list of parameters to generate at build time for dynamic routes
    • getServerSideProps marks the page to be server-side rendered on every request and is the most similar to the current getInitialProps behavior when using a server.

    Separating these methods also allows us to provide the correct context object that can be typed using TypeScript. When you opt for a specific rendering strategy you get the correct values, currently with getInitialProps you have to guess what is available on SSG vs SSR when using TypeScript.

    Furthermore, by making these methods explicit, it'll allow us to document the different trade-offs more clearly.

    Implementation

    Note that all these methods are top-level on the page component file and can't be nested, similar to getInitialProps.

    getStaticProps

    Using getStaticProps means the page will be rendered statically at build time (SSG).

    This new method will allow you to do data fetching for a page that will be statically generated into a .html file at next build time.

    Next.js will also automatically generate a JSON file that holds the result of getStaticProps at next build time. This is being used for client-side routing.

    When client-side routing through next/link or next/router, Next.js will fetch this JSON file to get the props needed to render the page client-side.

    Properties are returned under a props key so that other options can be introduced in the future.

    // pages/index.js
    
    // getStaticProps is only called server-side
    // In theory you could do direct database queries
    export async function getStaticProps(context) {
      return {
        // Unlike `getInitialProps` the props are returned under a props key
        // The reasoning behind this is that there's potentially more options
        // that will be introduced in the future.
        // For example to allow you to further control behavior per-page.
        props: {}
      };
    }
    

    The context will contain:

    • params - The parameters when on a dynamic route.

    getStaticPaths

    This is an extension on getStaticProps usage for dynamic routes.

    getStaticPaths replaces the need for having a exportPathMap and works per-page.

    Since you might want to statically generate a list of urls that have a dynamic parameter, like in the example below a slug. Next.js will provide a getStaticPaths method that allows for returning a list of urls. Since it's a async method you can also fetch that list from a data source like your CMS.

    // pages/blog/[slug].js
    
    // `getStaticProps` gets a `params` object holding the dynamic parameters
    // For `/blog/hello-world` it would look like `{ slug: 'hello-world }`
    export async function getStaticProps({ params }) {
      return {
        props: {}
      };
    }
    
    // `getStaticPaths` allows the user to return a list of parameters to
    // render to HTML at build time.
    export async function getStaticPaths() {
      return {
        paths: [
          // This renders /blog/hello-world to HTML at build time
          { params: { slug: "hello-world" } }
        ]
      };
    }
    

    Fallback

    In many cases you might not want to pre-render every possible route in your application at build-time (for example if you have millions of products). For this reason Next.js will automatically generate a fallback page that is a render of the page without data (so that a loading state can be shown) for when the page hasn’t been generated yet.

    The exact behavior of serving will be:

    • Incoming request
      • Next.js checks if the path was generated at build time
        • If the path was generated
          • serve directly
        • If the path was not generated
          • Serve the fallback
            • Next.js renders the page (with data) in the background and adds it to the list of generated pages
            • Subsequent request to the same path will serve the generated page
            • This ensures that users always have a fast experience and never have slow TTFB from server-rendering while preserving fast builds and static-generation properties

    In case you want paths that weren’t generated at build time to result in a 404 that is also possible by returning fallback: false from getStaticPaths

    // `getStaticPaths` allows the user to return a list of parameters to
    // render to HTML at build time.
    export async function getStaticPaths() {
      return {
        // Opt-out of the described fallback behavior
        fallback: false,
        paths: [
          // This renders /blog/hello-world to HTML at build time
          { params: { slug: "hello-world" } }
        ]
      };
    }
    

    getServerSideProps

    When using getServerSideProps, the page is not statically generated (SSG) and instead renders on-demand on every request to the server (SSR).

    Next.js will also automatically expose an API endpoint that returns the result of calling getServerSideProps. This is being used for client-side routing.

    When client-side routing through next/link or next/router, Next.js will fetch this exposed API endpoint to get the JSON data that is turned into the props needed to render the page client-side.

    This method is the most similar to the current getInitialProps, with the main difference being getServerSideProps is always executed server-side instead of in the browser. Either on server-side rendering or the API fetch when client-side routing.

    Similarly to getStaticProps the properties are returned under a props key.

    // pages/index.js
    
    // getServerSideProps is only called server-side
    // In theory you could do direct database queries
    export async function getServerSideProps(context) {
      return {
        // Unlike `getInitialProps` the props are returned under a props key
        // The reasoning behind this is that there's potentially more options
        // that will be introduced in the future.
        // For example to allow you to further control behavior per-page.
        props: {}
      };
    }
    

    The context will contain:

    • params - The parameters on a dynamic route
    • req - The HTTP request object
    • res - The HTTP response object
    • query - The query string (not entirely sure about this one, but probably needed)

    Authored by @timneutkens, @Timer, @ijjk, @lfades. Collaborated with @rauchg, @jescalan and others 🚀

    opened by timneutkens 250
  • Add login / authentication example

    Add login / authentication example

    With:

    • re-usable authentication helper across pages
    • session synchronization among tabs
    • simple passwordless email backend hosted on now.sh

    I think this will be hugely helpful to a lot of newcomers.

    opened by rauchg 209
  • Next.js API routes (and pages) should support reading files

    Next.js API routes (and pages) should support reading files

    Feature request

    Is your feature request related to a problem? Please describe.

    It's currently not possible to read files from API routes or pages.

    Describe the solution you'd like

    I want to be able to call fs.readFile with a __dirname path and have it "just work".

    This should work in Development and Production mode.

    Describe alternatives you've considered

    This may need to integrate with @zeit/webpack-asset-relocator-loader in some capacity. This plugin handles these types of requires.

    However, it's not a necessity. I'd be OK with something that only works with __dirname and __filename (no relative or cwd-based paths).

    Additional context

    Example:

    // pages/api/test.js
    import fs from 'fs'
    import path from 'path'
    
    export default (req, res) => {
      const fileContent = fs.readFileSync(
        path.join(__dirname, '..', '..', 'package.json'), 
        'utf8'
      )
      // ...
    }
    

    Note: I know you can cheat the above example ☝️ with require, but that's not the point. 😄

    kind: story area: standalone mode 
    opened by Timer 146
  • Next 9.5.1 out of memory after some hot reloads

    Next 9.5.1 out of memory after some hot reloads

    Bug report

    Describe the bug

    Since updating to 9.5.x (from 9.4.x), i get an out of memory error after 10 something hot reloads:

    FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

    it did rarely happen in 9.4.1, but it happens very consistantly in 9.5.x

    To Reproduce

    thats probably tricky. it happens on big projects and might be related to some bug in the hot reload / rebuild. Maybe it happens when there are some import circles?

    Expected behavior

    nextjs should not go out-of-memory

    System information

    • OS:macOS
    • Browser: chrome
    • Version of Next.js: 9.5.1
    • Version of Node.js: 12.13.1

    Additional information

    we are using a custom server with typescript

    please add a complete reproduction 
    opened by macrozone 144
  • Top-level app component and animated route transitions

    Top-level app component and animated route transitions

    Having animated route transitions would be nice, as this is one of the many benefits through client-side routing. Doing so should be left up to the user in my opinion (some people prefer CSS transitions over more fine-grained control with react-motion etc). As I understand it, one would need to modify the top-level App component.

    The client entry file seems to look for a globally assigned __NEXT_DATA__.app variable but I can't find any documentation on that.

    opened by dlindenkreuz 135
  • Build error next.js 6.0.0

    Build error next.js 6.0.0

    I just upgraded to [email protected], I use a custom server, when I try to run dev, I get an error.

    npm run dev
    
    > [email protected] dev /Users/foo/gitlab/next-project/backend
    > babel-node ./src/server.js
    
    /Users/foo/gitlab/next-project/backend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:328
            throw e;
            ^
    
    Error: Plugin 0 specified in "/Users/foo/gitlab/next-project/backend/node_modules/next/babel.js" provided an invalid property of "default" (While processing preset: "/Users/foo/gitlab/next-project/backend/node_modules/next/babel.js")
        at Plugin.init (/Users/foo/gitlab/next-project/backend/node_modules/babel-core/lib/transformation/plugin.js:131:13)
        at Function.normalisePlugin (/Users/foo/gitlab/next-project/backend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:152:12)
        at /Users/foo/gitlab/next-project/backend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:184:30
        at Array.map (<anonymous>)
        at Function.normalisePlugins (/Users/foo/gitlab/next-project/backend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:158:20)
        at OptionManager.mergeOptions (/Users/foo/gitlab/next-project/backend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:234:36)
        at /Users/foo/gitlab/next-project/backend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:265:14
        at /Users/foo/gitlab/next-project/backend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:323:22
        at Array.map (<anonymous>)
        at OptionManager.resolvePresets (/Users/foo/gitlab/next-project/backend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! [email protected] dev: `babel-node ./src/server.js`
    npm ERR! Exit status 1
    npm ERR! 
    npm ERR! Failed at the [email protected] dev script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /Users/foo/.npm/_logs/2018-04-30T08_41_09_819Z-debug.log
    

    UPDATE all this passed after upgrading all babel packages to v7

    Now this is the new error.... See below for complete error message

    ERROR  Failed to compile with 1 errors                                                                                                                                                                                               10:32:07
    
     error  in ./pages/_document.js
    
    Module build failed: Error: [BABEL] /Users/foo/gitlab/zyombo/backend/pages/_document.js: .value is not a valid Plugin property
    
    opened by paschaldev 125
  • trailing slash in link for legit page works for client side navigation but leads to not found bundle and 404 on hard refresh (ssr)

    trailing slash in link for legit page works for client side navigation but leads to not found bundle and 404 on hard refresh (ssr)

    trailing slash in link for legit page works for client side navigation but leads to not found bundle and 404 on hard refresh (ssr)

    Bug report

    Describe the bug

    let me know if title needs further clarification.

    all relevant issues has been closed with reasoning that its been fixed in 6-canary (I believe it is not) or by improved serve (which is true only in perhaps production static export).

    I'm rewriting my existing blog to next.js and i previously used trailing slashes. Latest serve can help with it once i build my next.js powered blog. But in order to fix dev env i need either to get rid of trailing slashes and utilize 301 Moved Permanently in prod; or live with broken trailing slash support in dev.

    To Reproduce

    Here is minimal reproducible case (link to repro repo is below snippet):

    // pages/index.js
    import Link from "next/link";
    
    export default () => (
      <Link href="/about/">
        <a>About</a>
      </Link>
    );
    
    // pages/index.js
    export default () => "about";
    

    Minimal reproducible repo https://github.com/iamstarkov/next.js-trailing-slash-bug-demo

    1. clone repo git clone https://github.com/iamstarkov/next.js-trailing-slash-bug-demo
    2. change directory cd next.js-trailing-slash-bug-demo
    3. install deps yarn
    4. run dev: yarn dev
    5. open http://localhost:3000/
    6. open devtools' network tab
    7. observe http://localhost:3000/_next/static/development/pages/about.js being 200ed
    8. observe http://localhost:3000/_next/on-demand-entries-ping?page=/about/ being 200ed
    9. observe http://localhost:3000/about/ being 404ed
    10. observe persistent attempts to resolve http://localhost:3000/about/
    11. observe in the terminal Client pings, but there's no entry for page: /about/
    12. refresh the page
    13. observe 404 page.
    14. remove trailing slash in the url or click http://localhost:3000/about
    15. observe page being 200ed
    16. to ensure error persistence repeat steps 5-15 once.

    Expected behavior

    1. /about/ shouldnt be resolved as 404 not found
    2. /about/ should be resolved as 200 ok
    3. Server should not print Client pings, but there's no entry for page: /about/
    4. both /about and /about/ should work the same way

    Screenshots

    N/A

    System information

    • OS: macOS High Sierra 10.13.6 (17G65)
    • Browser (should not matter, but can repro'ed in chrome 69.0.3497.100 and safari Version 12.0 (13606.2.11) (was the same for safari 11)
    • Version of Next.js: 7.0.0 (could repro on 5.x and 6.x)

    Additional context

    Add any other context about the problem here.

    If you change this code in https://github.com/zeit/next.js/blob/459c1c13d054b37442126889077b7056269eeb35/server/on-demand-entry-handler.js#L242-L249

    or node_modules/next/dist/server/on-demand-entry-handler.js locally

              const { query } = parse(req.url, true)
              const page = normalizePage(query.page)
    +         console.log('query.page', query.page);
    +         console.log('page', page);
    +         console.log('Object.keys(entries)', Object.keys(entries));
              const entryInfo = entries[page]
    
              // If there's no entry.
              // Then it seems like an weird issue.
              if (!entryInfo) {
                const message = `Client pings, but there's no entry for page: ${page}`
    

    and restart next dev and open http://localhost:3000/ and click about link then:

    • for /about
      query.page /about
      page /about
      Object.keys(entries) [ '/', '/about' ]
      
    • for /about/:
      query.page /about/
      page /about/
      Object.keys(entries) [ '/', '/about' ]
      Client pings, but there's no entry for page: /about/
      

    I think the problem (at least part of it) is in inability of onDemandEntryHandler's middleware to find page in entries if page has trailing slash.

    I hope my 2 hours of investigation and preparation can help with fixing this issue.

    kind: story 
    opened by iamstarkov 124
  • Custom Cache-Control response header for `/_next/image`

    Custom Cache-Control response header for `/_next/image`

    Bug report

    Describe the bug

    When requesting /_next/image(.*), I'm getting this Response header:

    Cache-Control: public, max-age=60
    

    And it's fine... What's not fine is that I'm getting the same exact Response headers even when I use custom headers in next.config.js, i.e.:

    module.exports = {
      async headers() {
        return [
          {
            // This works, and returns appropriate Response headers:
            source: '/(.*).jpg',
            headers: [
              {
                key: 'Cache-Control',
                value:
                  'public, max-age=180, s-maxage=180, stale-while-revalidate=180',
              },
            ],
          },
          {
            // This doesn't work for 'Cache-Control' key (works for others though):
            source: '/_next/image(.*)',
            headers: [
              {
                key: 'Cache-Control',
                // Instead of this value:
                value: 'public, max-age=180, s-maxage=180, stale-while-revalidate=180',
                // Cache-Control response header is `public, max-age=60` in production
                // and `public, max-age=0, must-revalidate` in development
              },
            ],
          },
        ]
      },
    }
    
    

    To Reproduce

    Try this next.config.js above, with an image that uses common <img> tag like this:

    <img src="/YOUR_IMAGE_IN_PUBLIC_FOLDER.jpg">
    

    And another tag that uses the new next/image component, with the same or whatever image url, for example:

    <Image src="/YOUR_IMAGE_IN_PUBLIC_FOLDER.jpg">
    

    And try requesting those images in the browser, and look into Devtools -> Network tab, the Response headers, and see that for common <img> tag it's actually changed, whereas for new <Image> component it is not.

    Expected behavior

    For /_next/image(.*) urls, I expected to see Headers that I setup, i.e. Cache-Control: public, max-age=180, s-maxage=180, stale-while-revalidate=180.

    Screenshots

    Common <img>:

    image

    New <Image>:

    image

    System information

    • OS: not applicable / any
    • Browser (if applies): not applicable / any
    • Version of Next.js: 10.0.3
    • Version of Node.js: 12.18.0
    • Deployment: both next start on development machine, and actual Vercel deployment (screenshots demonstrate the case with local machine, but I've confirmed that the same is happening on a Vercel deployment)

    Additional context

    Originally I created an issue using "Feature request" template, and it got translated into "Idea discussion": https://github.com/vercel/next.js/discussions/19896 (how to delete/close it pls? doesn't seem to be possible), - initially I wasn't sure if it's even possible to setup custom headers, and how that supposed to work, though I just needed that functionality. But later, upon discovering that there's such a functionality already, I figured out that actually /_next/image overrides both custom headers in next.config.js and headers property of Vercel config, i.e. it's not just some idea of a feature that is "not implemented", but it's actual bug.

    kind: story 
    opened by jerrygreen 113
  • Add support to transpile modules inside node_modules

    Add support to transpile modules inside node_modules

    Now some of us ships NPM packages (specially components) written in ES2015 without transpiling them.

    That's a pretty good thing specially if they are gonna used in a project like Next.js or CRA (which does transpiling). They offer benefits like:

    • No need to transpile before shipping to NPM
    • Get the benefit of Webpack 2's tree-shaking

    But we can't do this now we exclude everything inside node_modules from babel transpiling.

    So, here's the proposed solution.

    We have an entry in next.config.js to include modules which needs to go through babel. See:

    module.exports = {
       transpileModules: [
         "my-component",
         "redux/src"
       ]
    }
    
    kind: story area: Compiler 
    opened by arunoda 113
  • Allow next/head to render react components

    Allow next/head to render react components

    ℹ️ There is an easy "workaround" you can apply instead of using React components, which are NOT supported within next/head as of NextJS 10.2

    Fixes: #17721 Fixes: #17842

    Essentially, >=9.5.4 breaks compatibility for having react components within Head. While it's true that NextJS never truly supported this...

    title, meta or any other elements (e.g. script) need to be contained as direct children of the Head element, or wrapped into maximum one level of <React.Fragment> or arrays—otherwise the tags won't be correctly picked up on client-side navigations.

    ...this is a fundamental React principle and we should support the concept of component composition. For example,

    const HomePage = () => (
        <>
            <Head>
                <CustomTitle />
                <ThirdPartyScripts />
            </Head>
            <div>Homepage</div>
        </>
    )
    

    I tracked the issue to https://github.com/vercel/next.js/pull/16758/files#diff-f0591f99e1e66f02b12d5f64977b579eR86 where apparently we serialize head data in the window object now: window.__NEXT_DATA__, which doesn't handle components. I'm not sure the best way to handle that, but I created logic in head-manager.ts to handle react components and their potential children.

    TODO

    • [x] Allow custom components in Head to not throw runtime errors (initial render/page load)
    • [ ] Allow custom components in Head to render on client navigation
    • [x] Update Tests
      • [x] Ensure component children aren't duplicated (only rendered once)
      • [ ] Ensure component children aren't orphaned 🤔
    area: documentation type: next 
    opened by jflayhart 107
  • Symlinked client side components throwing webpack errors

    Symlinked client side components throwing webpack errors

    Verify canary release

    • [X] I verified that the issue exists in the latest Next.js canary release

    Provide environment information

    Operating System: Platform: darwin Arch: arm64 Version: Darwin Kernel Version 21.3.0: Wed Jan 5 21:37:58 PST 2022; root:xnu-8019.80.24~20/RELEASE_ARM64_T6000 Binaries: Node: 16.14.2 npm: 8.5.0 Yarn: 1.22.19 pnpm: N/A Relevant packages: next: 13.1.2-canary.0 eslint-config-next: 13.1.2-canary.0 react: 18.2.0 react-dom: 18.2.0

    Which area(s) of Next.js are affected? (leave empty if unsure)

    App directory (appDir: true)

    Link to the code that reproduces this issue

    https://codesandbox.io/p/github/joshdegouveia/nextjs-symlink-bug/draft/solitary-meadow?file=%2FREADME.md&workspace=%257B%2522activeFileId%2522%253A%2522clcilo0bk000d7oflf45o0zzr%2522%252C%2522openFiles%2522%253A%255B%2522%252FREADME.md%2522%255D%252C%2522sidebarPanel%2522%253A%2522EXPLORER%2522%252C%2522gitSidebarPanel%2522%253A%2522COMMIT%2522%252C%2522spaces%2522%253A%257B%2522clcilo28b001d3b6lebutr2aw%2522%253A%257B%2522key%2522%253A%2522clcilo28b001d3b6lebutr2aw%2522%252C%2522name%2522%253A%2522Default%2522%252C%2522devtools%2522%253A%255B%257B%2522type%2522%253A%2522PREVIEW%2522%252C%2522taskId%2522%253A%2522dev%2522%252C%2522port%2522%253A3000%252C%2522key%2522%253A%2522clcilogbi00bg3b6ld3msc2rb%2522%252C%2522isMinimized%2522%253Afalse%257D%252C%257B%2522type%2522%253A%2522TASK_LOG%2522%252C%2522taskId%2522%253A%2522dev%2522%252C%2522key%2522%253A%2522clcilofer008j3b6l4wq5l1pq%2522%252C%2522isMinimized%2522%253Afalse%257D%255D%257D%257D%252C%2522currentSpace%2522%253A%2522clcilo28b001d3b6lebutr2aw%2522%252C%2522spacesOrder%2522%253A%255B%2522clcilo28b001d3b6lebutr2aw%2522%255D%257D

    To Reproduce

    • Create an NextJS app and enable the app directory feature
    • Create an empty folder in the app folder
    • Create a client side ('use client') component (page.tsx) outside of the app directory
    • Symlink the client side component into your empty folder by navigating to the folder and running the following command: ln -s ..[path_to_component]/page.tsx .
    • Start the dev server and navigate to the route with the symlinked component

    Describe the Bug

    IMPORTANT: This bug is was introduced between these two tags https://github.com/vercel/next.js/compare/v13.0.7-canary.1...v13.0.7-canary.3 - it's not reproducible in v13.0.7-canary.1 and below.

    When navigating to a route with a symlinked client side component a webpack error is thrown webpack_error

    NOTE: This error is only thrown when symlinking client side components, removing use client resolves the issue.

    Expected Behavior

    The symlinked client side component should render

    Which browser are you using? (if relevant)

    No response

    How are you deploying your application? (if relevant)

    No response

    template: bug 
    opened by joshdegouveia 0
  • disable prerender in appdir

    disable prerender in appdir

    inside of a /app/page.tsx I have

    export const dynamic = "force-dynamic";
    
    const SearchPage = async () => {
      const fileName = "../data/repoInfo.json";
      const fileText = await readFile(fileName, { encoding: "utf-8" });
      const components = JSON.parse(fileText) as Component[];
      return <ComponentSearch components={components} />;
    };
    

    How can I disable prerender on this file since the data file does not exist at build time?

    Originally posted by @stephen-dahl in https://github.com/vercel/next.js/discussions/41745#discussioncomment-4585806

    opened by stephen-dahl 0
  • Allow using Bun as a package manager for create-next-app.

    Allow using Bun as a package manager for create-next-app.

    This doesn't work yet, but maybe someone will help finish it 😅

    Was just imagining a world where I could bunx create-next-app@latest --use-bun for blazingly fast installs.

    area: documentation area: create-next-app created-by: Next.js team 
    opened by leerob 1
  • Change `NextInstance.fetch` Signature

    Change `NextInstance.fetch` Signature

    Updates the signature for the NextInstance.fetch to reduce errors during testing due to optional parameter confusion. Previously, you could write:

    next.fetch('/some/path', { method: 'HEAD' })
    

    Which looks correct, but what's actually being sent is:

    GET /some/path?method=HEAD
    

    What should have been used was:

    next.fetch('/some/path', '', { method: 'HEAD' })
    // HEAD /some/path
    

    Because of the naming of this method, the signature was changed to better align with the WHATWG fetch spec which enables the preferred pattern:

    next.fetch('/some/path', { method: 'HEAD' })
    // HEAD /some/path
    

    A new utility method withQuery was added to next-test-utils which can be used as such to add query parameters easily to urls for testing:

    import { withQuery } from 'next-test-utils'
    
    next.fetch(withQuery('/some/path', { with: 'query' }), { method: 'DELETE' })
    // DELETE /some/path?with=query
    
    created-by: Next.js team 
    opened by wyattjoh 1
  • `next` TypeScript Plugin Breaks Intellisense Autocomplete

    `next` TypeScript Plugin Breaks Intellisense Autocomplete

    Verify canary release

    • [X] I verified that the issue exists in the latest Next.js canary release

    Provide environment information

        Operating System:
          Platform: darwin
          Arch: arm64
          Version: Darwin Kernel Version 22.2.0: Fri Nov 11 02:04:44 PST 2022; root:xnu-8792.61.2~4/RELEASE_ARM64_T8103
        Binaries:
          Node: 18.12.1
          npm: 8.19.3
          Yarn: 1.22.19
          pnpm: 3.8.1
        Relevant packages:
          next: 13.1.2-canary.0
          eslint-config-next: 13.1.1
          react: 18.2.0
          react-dom: 18.2.0
    

    Which area(s) of Next.js are affected? (leave empty if unsure)

    App directory (appDir: true), TypeScript

    Link to the code that reproduces this issue

    https://codesandbox.io/s/epic-maria-g3n3ym?file=/tsconfig.json

    To Reproduce

    1. Use Next.js TypeScript plugin via compilerOptions.plugins = [{ "name": "next" }] in tsconfig.json
    2. Use Workspace TypeScript version in VS Code via ctrl/cmd-shift-P and TypeScript: Select TypeScript Version... -> Use Workspace Version
    3. Attempt autocomplete eg. with the text "styl" and then ctrl-spacebar -> 💥 "No suggestions."

    Screenshot (broken):

    Screenshot 2023-01-04 at 20 43 27

    Screenshot (working, without next TS Plugin configured, but with @mrmckeb's typescript-plugin-css-modules configured):

    Screenshot 2023-01-04 at 20 36 16

    Screenshot (Workspace Version of TS selected)

    Screenshot 2023-01-04 at 20 34 58

    Describe the Bug

    If the Workspace Version of TypeScript is used in VS Code (which some users have configured) along with the Next.js "next" TypeScript plugin in tsconfig.json, then IntelliSense autocompletion fails

    Expected Behavior

    IntelliSense autocompletion should still work

    Which browser are you using? (if relevant)

    No response

    How are you deploying your application? (if relevant)

    No response

    template: bug area: TypeScript 
    opened by karlhorky 0
  • [EXAMPLES] Update with-apollo-neo4j-graphql

    [EXAMPLES] Update with-apollo-neo4j-graphql

    We replace neo4j-graphql-js with @neo4j/graphql and update Apollo server to version 4.

    This refactor also changes the code from Javascript to Typescript.

    Bug

    • [ ] Related issues linked using fixes #number
    • [ ] Integration tests added
    • [ ] Errors have a helpful link attached, see contributing.md

    Feature

    • [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
    • [ ] Related issues linked using fixes #number
    • [ ] e2e tests added
    • [ ] Documentation added
    • [ ] Telemetry added. In case of a feature if it's used or not.
    • [ ] Errors have a helpful link attached, see contributing.md

    Documentation / Examples

    • [x] Make sure the linting passes by running pnpm build && pnpm lint
    • [x] The "examples guidelines" are followed from our contributing doc
    area: examples 
    opened by mjfwebb 0
Releases(v13.1.2-canary.0)
  • v13.1.2-canary.0(Jan 4, 2023)

    Core Changes

    • Add special error message for class component in server component: #44265
    • Update license year: #44403
    • Move core files to src folder and move JS files to TypeScript: #44405
    • refactor: add warning helper for removed experimental option: #44213
    • types: remove config.experimental.profiling: #44507
    • chore: addresses leftover from #44045: #44080
    • Fix cookie parsing removing extra =: #44218
    • Update server-external-packages to include aws-crt: #44214
    • Collapse sequences of call stack frames from React and Next.js in the error overlay: #44137
    • Update json5 dependency to latest: #44548

    Documentation Changes

    • Update custom-app.md: #44351
    • Update next/head docs.: #44454
    • uses spelling: #44399
    • Update Turbopack docs.: #44468
    • Fix link to next-image-to-legacy-image codemod: #44471
    • Add module transpilation docs: #44518
    • Update TypeScript API Route example: #44517
    • Update config-shared docs link: #44547

    Example Changes

    • Update with-sentry README.md Next.js version: #44374
    • fix link to index page in Image Component Example: #44388
    • Update get-api-cookie.ts: #44466
    • Update .gitignore in pwa example: #44391
    • Use the stable GraphQL Yoga v3 in the GraphQL example: #44488
    • [examples] add @types/testing-library__jest-dom package: #44533

    Misc Changes

    • docs: add pnpm to template readme: #44427
    • Added actual error message to log output: #44453
    • Fix isolated tests on windows and update azure config: #44457
    • docs: Update GitHub CLI clone command in developing.md: #44509
    • Cache package lock when running tests to speed up installation: #44520
    • Test server component error recovery in dev: #44155
    • Fix taskr watching core files
    • add testonly variants for all test modes and refactored test as alias of testheadless: #44528
    • Use test timings token when available: #44549
    • Remove un-used app-dir test fixture: #44546
    • Fix prettierignore_staged for compiled: #44550

    Credits

    Huge thanks to @shuding, @chogyejin, @smeubank, @h4x0rlol, @leerob, @arch-user-france1, @konojunya, @nora-soderlund, @IDrumsey, @dirheimerb, @timneutkens, @BrandNewLifeJackie26, @hyeongrok7874, @ardatan, @chibicode, @JanKaifer, @hanneslund, @abir-taheer, @SukkaW, @promer94, @feugy, @fli, @seawatts, and @awareness481 for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.1.1(Dec 24, 2022)

    Core Changes

    • Exclude srcset from svg image: #44308
    • Fix CSS resource path not matched in __entry_css_files__: #44310
    • Fix next/image 404 when basePath and trailingSlash defined: #44312

    Documentation Changes

    • Remove experimental for modularizeImports from docs and example: #44311

    Example Changes

    • Updated dependencies for with-tailwindcss example: #44289

    Misc Changes

    • Use turbo for packing files in test setup: #44074

    Credits

    Huge thanks to @JanKaifer, @Nutlope, @styfle, and @chibicode for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.1.1-canary.1(Dec 24, 2022)

    Core Changes

    • Fix next/image 404 when basePath and trailingSlash defined: #44312

    Documentation Changes

    • Remove experimental for modularizeImports from docs and example: #44311

    Credits

    Huge thanks to @chibicode and @styfle for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.1.1-canary.0(Dec 23, 2022)

    Core Changes

    • Exclude srcset from svg image: #44308
    • Fix CSS resource path not matched in __entry_css_files__: #44310

    Example Changes

    • Updated dependencies for with-tailwindcss example: #44289

    Misc Changes

    • Use turbo for packing files in test setup: #44074

    Credits

    Huge thanks to @JanKaifer, @Nutlope, and @styfle for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.1.0(Dec 22, 2022)

    Core Changes

    • Fix windows slashes for app client entry: #44052
    • Hash both pitch and main loader for server CSS imports: #44063
    • Add tracing for testing tools: #44046
    • Run packing in tests in parallel: #44048
    • feat: app dir error-global component: #44066
    • Fix ignoring dev warning for preload component: #44065
    • refactor(next-swc): introduce next-binding to consolidate dependencies.: #43473
    • Add lodash to server components external packages: #44022
    • Fix dev session stopped handling: #44112
    • Add jsdoc/no-types eslint rule for TypeScript files: #44049
    • Revert "Remove useState from next/image (#43587)": #44094
    • should not contain pages css in app dir: #44151
    • Upgrade undici to 5.14.0 to fix fetch redirect bug: #44133
    • build(cargo): fix turbopack + next-swc build: #43983
    • Align onRecoverableError callback between pages and app dir: #44161
    • build(cargo): update turbopack: #44167
    • Update styled-jsx: #44070
    • Fix crash in GraalVM: #44176
    • Also check error.message as digest for recoverable errors in pages: #44185
    • Move options to stable: #44195
    • Move transpilePackages out of experimental: #44194
    • Fix CSS resources being duplicated in app dir: #44168
    • Add telemetry for stable features: #44201
    • Add warning for experimental flags that have moved: #44202
    • build(cargo): bump up turbopack: #44206
    • Bump @vercel/[email protected]: #44193
    • Disable Image Optimization API when next.config.js has unoptimized: true: #44205
    • Honour distDir in type generation: #44207
    • Only once for the next/head usage in app dir: #44233
    • Enable allowMiddlewareResponseBody by default: #44224
    • Move modularizeImports out of experimental: #44240
    • Update config validation for latest turbopack changes: #44223
    • build(cargo): update turbopack: #44241
    • update turbopack for bugfixes: #44251

    Documentation Changes

    • docs: Add explanation about font-display: #44001
    • Test that adding query can be detected by useSearchParams: #43969
    • Add static test for useSelectedLayoutSegments: #43955
    • Docs: Update deployment.md with Firebase, Amplify and Cloudflare: #44092
    • Add test for rewriting in middleware in app-dir: #43971
    • docs: Add missing type to import statement: #44111
    • docs: update next/dynamic docs: #44067
    • Update disabling-http-keep-alive.md for server-side only: #43374
    • docs: fix spelling error: #44191
    • Write tests for navigation between app-dir and pages: #43881
    • Add docs for middleware flags: #44235

    Example Changes

    • Updates with-supertokens example: #44042
    • Fix styled-components setup in turbo example: #44165
    • update with-turbopack example for postcss/tailwind support: #44261

    Misc Changes

    • Run packing in tests in parallel
    • Revert "Run packing in tests in parallel"
    • Remove extra turbo test: #44073
    • Implement new core test API: #44086
    • Refactor more tests to createNextDescribe: #44104
    • Add types as a default dependency into tests: #44140
    • Suggest contributors to use shallow clone: #44158
    • Update pnpm new-test to use createNextDescribe: #44147
    • Update README templates to include snippet on next/font: #44088
    • Wrap CSS variable in var: #44153
    • Ensure next.url is used instead of next.appPort: #44163
    • test: add test for notFound during streaming: #44078
    • Fix test template example: #44170
    • Remove devcontainer network host argument: #44157
    • Fix pnpm install on Azure: #44179
    • Enable ReactRefreshLogBox scss test: #44180
    • Increase recommended git clone depth: #44181
    • Document how chain works in BrowserInterface and chain to browser.eval: #44085
    • Remove browser.refresh in app tests: #44186
    • Move tests into their test folder: #44183
    • Add test checking that repeated edits won't cause hydration issues: #44189
    • Update labeler.json with current next.js team members: #44231

    Credits

    Huge thanks to @shuding, @hanneslund, @rishabhpoddar, @JanKaifer, @huozhi, @timneutkens, @kwonoj, @IamManchanda, @styfle, @nyedidikeke, @jaslong, @jueungrace, @longzheng, @akshitsinha, @Brooooooklyn, @gish, and @sokra for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.8-canary.5(Dec 22, 2022)

  • v13.0.8-canary.4(Dec 22, 2022)

  • v13.0.8-canary.3(Dec 21, 2022)

    Core Changes

    • Disable Image Optimization API when next.config.js has unoptimized: true: #44205
    • Honour distDir in type generation: #44207
    • Only once for the next/head usage in app dir: #44233
    • Enable allowMiddlewareResponseBody by default: #44224
    • Move modularizeImports out of experimental: #44240
    • Update config validation for latest turbopack changes: #44223
    • build(cargo): update turbopack: #44241

    Documentation Changes

    • Write tests for navigation between app-dir and pages: #43881
    • Add docs for middleware flags: #44235

    Misc Changes

    • Move tests into their test folder: #44183
    • Add test checking that repeated edits won't cause hydration issues: #44189
    • Update labeler.json with current next.js team members: #44231

    Credits

    Huge thanks to @styfle, @JanKaifer, @shuding, @huozhi, @timneutkens, @sokra, and @kwonoj for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.8-canary.2(Dec 20, 2022)

    Core Changes

    • Fix crash in GraalVM: #44176
    • Also check error.message as digest for recoverable errors in pages: #44185
    • Move options to stable: #44195
    • Move transpilePackages out of experimental: #44194
    • Fix CSS resources being duplicated in app dir: #44168
    • Add telemetry for stable features: #44201
    • Add warning for experimental flags that have moved: #44202
    • build(cargo): bump up turbopack: #44206
    • Bump @vercel/[email protected]: #44193

    Documentation Changes

    • docs: fix spelling error: #44191

    Misc Changes

    • Fix pnpm install on Azure: #44179
    • Enable ReactRefreshLogBox scss test: #44180
    • Increase recommended git clone depth: #44181
    • Document how chain works in BrowserInterface and chain to browser.eval: #44085
    • Remove browser.refresh in app tests: #44186

    Credits

    Huge thanks to @Brooooooklyn, @hanneslund, @JanKaifer, @huozhi, @gish, @shuding, @kwonoj, and @styfle for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.8-canary.1(Dec 20, 2022)

    Core Changes

    • Add tracing for testing tools: #44046
    • Run packing in tests in parallel: #44048
    • feat: app dir error-global component: #44066
    • Fix ignoring dev warning for preload component: #44065
    • refactor(next-swc): introduce next-binding to consolidate dependencies.: #43473
    • Add lodash to server components external packages: #44022
    • Fix dev session stopped handling: #44112
    • Add jsdoc/no-types eslint rule for TypeScript files: #44049
    • Revert "Remove useState from next/image (#43587)": #44094
    • should not contain pages css in app dir: #44151
    • Upgrade undici to 5.14.0 to fix fetch redirect bug: #44133
    • build(cargo): fix turbopack + next-swc build: #43983
    • Align onRecoverableError callback between pages and app dir: #44161
    • build(cargo): update turbopack: #44167
    • Update styled-jsx: #44070

    Documentation Changes

    • docs: Add explanation about font-display: #44001
    • Test that adding query can be detected by useSearchParams: #43969
    • Add static test for useSelectedLayoutSegments: #43955
    • Docs: Update deployment.md with Firebase, Amplify and Cloudflare: #44092
    • Add test for rewriting in middleware in app-dir: #43971
    • docs: Add missing type to import statement: #44111
    • docs: update next/dynamic docs: #44067
    • Update disabling-http-keep-alive.md for server-side only: #43374

    Example Changes

    • Updates with-supertokens example: #44042
    • Fix styled-components setup in turbo example: #44165

    Misc Changes

    • Remove extra turbo test: #44073
    • Implement new core test API: #44086
    • Refactor more tests to createNextDescribe: #44104
    • Add types as a default dependency into tests: #44140
    • Suggest contributors to use shallow clone: #44158
    • Update pnpm new-test to use createNextDescribe: #44147
    • Update README templates to include snippet on next/font: #44088
    • Wrap CSS variable in var: #44153
    • Ensure next.url is used instead of next.appPort: #44163
    • test: add test for notFound during streaming: #44078
    • Fix test template example: #44170
    • Remove devcontainer network host argument: #44157

    Credits

    Huge thanks to @hanneslund, @rishabhpoddar, @JanKaifer, @huozhi, @timneutkens, @kwonoj, @IamManchanda, @styfle, @nyedidikeke, @jaslong, @jueungrace, @longzheng, and @akshitsinha for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.8-canary.0(Dec 15, 2022)

    Core Changes

    • Fix windows slashes for app client entry: #44052
    • Hash both pitch and main loader for server CSS imports: #44063

    Misc Changes

    • Run packing in tests in parallel
    • Revert "Run packing in tests in parallel"

    Credits

    Huge thanks to @shuding for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.7(Dec 16, 2022)

    Core Changes

    • Update react next tag: #43617
    • fix(jest): pattern when detecting packages to transpile in next/jest: #43546
    • Adding head element checking for root layout: #43597
    • Revert: 'Minimized runtime errors in app dir': #43648
    • fix: properly handle trailingSlash: true and rewrites: #43641
    • @next/font fallback fonts order fix: #43633
    • Update cache handling for app: #43659
    • Remove resolved app directory todos: #43672
    • Fix typo in comment: #43685
    • perf: disable prefetching for links in viewport in development for app routes: #43730
    • Remove additional <div> at each segment level in app: #43717
    • Revert "Adding head element checking for root layout": #43760
    • fix ci pnpm lock error: #43767
    • Force reflow when setting scrollBehavior: #43673
    • Remove __webpack_exports__ from error overlay: #43715
    • Fix chunk hash logic in hot-reloader for server components: #43778
    • Assign layer to app client entries: #43197
    • Remove notifications emitted during pnpm dev: #43801
    • Display error digest if presented: #43742
    • Fix HMR issue after patching the client module: #43819
    • Implement loadable with lazy and suspense for next dynamic: #42589
    • Do not attach CSS checksum for production build: #43827
    • Provide error hints for invalid layout props via the TS plugin: #43835
    • Refactor code: #43828
    • Unhandled errors and rejections opens as minimized in app dir error overlay: #43844
    • docs: add readme with development instructions for next/swc: #43834
    • Use proxy to ensure Flight is referencing to the latest module during development: #43823
    • memory: fix 2 memory leaks in next-dev: #43859
    • Refactoring in @next/font: #43848
    • build(cargo): bump up swc_core, turbopack: #43652
    • Move prefetch bailout to start of the prefetch function for pages: #43731
    • Alias next/head to noop for rsc and add upgration warning: #43885
    • Update freebsd build: #43866
    • Fix error message for invalid runtime option in app dir: #43900
    • fix: forwarding props to no ssr dynamic: #43901
    • Improve type checking error message for invalid props: #43903
    • Improve type checking error message for invalid props: #43903
    • Support for named slots in type checking: #43906
    • Fix next/dynamic types for resolving named export module: #43923
    • Add auto completion for prop names and types to the TS plugin: #43909
    • Skip creating VSCode config and .gitignore if running in CI: #43935
    • Add helpful error for createContext used in Server Components: #43747
    • Increase stack trace limit on the server: #43800
    • Refactor image optimization util: #43868
    • useSearchParams - bailout to client rendering during static generation: #43603
    • Open server component errors fullscreen: #43887
    • next-dev: restart dev server exceeds the memory limits: #43958
    • Fix: status log when NEXT_TELEMETRY_DISABLED env is set: #43948
    • Erase dynamic ssr:false imports on server: #43974
    • use a function expression to access arguments binding: #43987
    • Added support for query params on not found pages: #43836
    • Update no-img-element lint rule: #43982
    • Fix: fix pages in Route Groups returning 500 with output: "standalone": #43746
    • Add default head for app dir: #43963
    • Fix browser navigation buttons not working with shallow routing and middleware: #43919
    • Fast refresh should recover from event handler errors in app dir: #43882
    • Fix module error for findDOMNode on edge: #43998
    • Adding data attr to inlined font definition: #44008
    • Replace taskr.watch for core compilation: #44027
    • Fix .images.remotePatterns[0].port warning: #44032
    • Fix app client entry key for windows: #44011
    • feat: enables 'edge' as a possible runtime for API routes: #44045

    Documentation Changes

    • docs: Add notes about NEXT_MANUAL_SIG_HANDLE: #43686
    • Changes vercel/examples links from linking to GitHub repo to template marketplace: #43780
    • docs(migrating): fix broken react-router link: #43843
    • Update compiler.md: #43872
    • Add docs for missing support on custom routes: #44007
    • docs: fix wording: #44020
    • not ie 11 is dead: #44029

    Example Changes

    • Add with-cloudinary example: #43250
    • examples(with-turbopack): Fix styling page default active stylingNav: #42739
    • Fixed broken Cloudinary example: #43646
    • Convert with-why-did-you-render example to TypeScript: #43736
    • chore(examples): Remove deprecated function from chakra: #43784
    • chore(examples): Update convex example: #43741
    • Update dependencies for Convex demo: #43855
    • Convert with-gsap, with-mqtt-js, with-mux-video examples to Typescript: #43874
    • Fix with-webassembly example and convert to Typescript: #43677
    • corrected /examples/github-pages readme: #43766
    • chore: add repro links in "verify canary" comment: #43979
    • Move Google Analytics script to the : #43838

    Misc Changes

    • Apply publish step optimizations: #43620
    • Update create-next-app template: #43482
    • Update test config: #43661
    • Update flakey app logbox test: #43682
    • Update flakey GSSP preview test: #43702
    • Fix typos in 1.bug_report.yml: #43697
    • Disable jest autorun in this repo: #43727
    • Build test binary in Docker image: #43745
    • Update bug report template to make it clear we require repro: #43735
    • Add tests for server component HMR: #43779
    • Add tests for rendering null and undefined in RSC: #43768
    • Remove swcMinify from Next config in CNA template: #43782
    • Remove serverComponents from next.conf.js because it's unused: #43805
    • Add test for providing correct params to layouts: #43775
    • Fix test binary generation and update test config: #43790
    • Lock pnpm version during publish: #43820
    • ci(actions): pin prod-test action image: #43748
    • Upgrade playwright to 1.28.1: #43818
    • modify rd email: #43837
    • Test imports of all file types: #43751
    • test: client component under server component with ssr:false: #43853
    • Delete duplicate SECURITY.md: #43856
    • Clarify e2e dependency on yarn in contributin docs: #43287
    • test: use react latest: #43884
    • Update @next/font data: #43883
    • Update flakey dev context tests: #43951
    • Add VSCode settings and recommended extensions for Next.js repository: #43954
    • Add Web Tooling team to codeowners: #43981
    • Update docs change files list: #43984
    • Fix e2e deploy test setup: #43990

    Credits

    Huge thanks to @Nutlope, @huozhi, @m7yue, @BRKalow, @Andarist, @hanneslund, @jueungrace, @balazsorban44, @ijjk, @mmaaaaz, @Alfred-Mountfield, @soonoo, @JanKaifer, @feedthejim, @Brooooooklyn, @shuding, @manovotny, @maxproske, @AnujSsStw, @thomasballinger, @kwonoj, @aaronbrown-vercel, @saseungmin, @styfle, @timneutkens, @aziyatali, @labyrinthitis, @padmaia, @mattpr, @gnoff, @wyattjoh, @aarnadlr, @DuCanhGH, @kleintorres, @janicklas-ralph, @theevilhead, @Nfinished, and @feugy for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.7-canary.7(Dec 15, 2022)

    Core Changes

    • Adding data attr to inlined font definition: #44008
    • Replace taskr.watch for core compilation: #44027
    • Fix .images.remotePatterns[0].port warning: #44032
    • Fix app client entry key for windows: #44011
    • feat: enables 'edge' as a possible runtime for API routes: #44045

    Documentation Changes

    • Add docs for missing support on custom routes: #44007
    • docs: fix wording: #44020
    • not ie 11 is dead: #44029

    Credits

    Huge thanks to @ijjk, @janicklas-ralph, @theevilhead, @Nfinished, @styfle, @huozhi, and @feugy for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.7-canary.6(Dec 13, 2022)

    Core Changes

    • Update no-img-element lint rule: #43982
    • Fix: fix pages in Route Groups returning 500 with output: "standalone": #43746
    • Add default head for app dir: #43963
    • Fix browser navigation buttons not working with shallow routing and middleware: #43919
    • Fast refresh should recover from event handler errors in app dir: #43882
    • Fix module error for findDOMNode on edge: #43998

    Example Changes

    • Move Google Analytics script to the : #43838

    Misc Changes

    • Fix e2e deploy test setup: #43990

    Credits

    Huge thanks to @styfle, @aarnadlr, @DuCanhGH, @huozhi, @kleintorres, and @hanneslund for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.7-canary.5(Dec 13, 2022)

    Core Changes

    • Fix error message for invalid runtime option in app dir: #43900
    • fix: forwarding props to no ssr dynamic: #43901
    • Improve type checking error message for invalid props: #43903
    • Improve type checking error message for invalid props: #43903
    • Support for named slots in type checking: #43906
    • Fix next/dynamic types for resolving named export module: #43923
    • Add auto completion for prop names and types to the TS plugin: #43909
    • Skip creating VSCode config and .gitignore if running in CI: #43935
    • Add helpful error for createContext used in Server Components: #43747
    • Increase stack trace limit on the server: #43800
    • Refactor image optimization util: #43868
    • useSearchParams - bailout to client rendering during static generation: #43603
    • Open server component errors fullscreen: #43887
    • next-dev: restart dev server exceeds the memory limits: #43958
    • Fix: status log when NEXT_TELEMETRY_DISABLED env is set: #43948
    • Erase dynamic ssr:false imports on server: #43974
    • use a function expression to access arguments binding: #43987
    • Added support for query params on not found pages: #43836

    Documentation Changes

    • Update compiler.md: #43872

    Example Changes

    • Convert with-gsap, with-mqtt-js, with-mux-video examples to Typescript: #43874
    • Fix with-webassembly example and convert to Typescript: #43677
    • corrected /examples/github-pages readme: #43766
    • chore: add repro links in "verify canary" comment: #43979

    Misc Changes

    • Update @next/font data: #43883
    • Update flakey dev context tests: #43951
    • Add VSCode settings and recommended extensions for Next.js repository: #43954
    • Add Web Tooling team to codeowners: #43981
    • Update docs change files list: #43984

    Credits

    Huge thanks to @shuding, @huozhi, @aziyatali, @maxproske, @labyrinthitis, @hanneslund, @styfle, @timneutkens, @feedthejim, @padmaia, @mattpr, @balazsorban44, @gnoff, and @wyattjoh for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.7-canary.4(Dec 9, 2022)

    Core Changes

    • Provide error hints for invalid layout props via the TS plugin: #43835
    • Refactor code: #43828
    • Unhandled errors and rejections opens as minimized in app dir error overlay: #43844
    • docs: add readme with development instructions for next/swc: #43834
    • Use proxy to ensure Flight is referencing to the latest module during development: #43823
    • memory: fix 2 memory leaks in next-dev: #43859
    • Refactoring in @next/font: #43848
    • build(cargo): bump up swc_core, turbopack: #43652
    • Move prefetch bailout to start of the prefetch function for pages: #43731
    • Alias next/head to noop for rsc and add upgration warning: #43885
    • Update freebsd build: #43866

    Documentation Changes

    • docs(migrating): fix broken react-router link: #43843

    Example Changes

    • Update dependencies for Convex demo: #43855

    Misc Changes

    • modify rd email: #43837
    • Test imports of all file types: #43751
    • test: client component under server component with ssr:false: #43853
    • Delete duplicate SECURITY.md: #43856
    • Clarify e2e dependency on yarn in contributin docs: #43287
    • test: use react latest: #43884

    Credits

    Huge thanks to @shuding, @aaronbrown-vercel, @JanKaifer, @hanneslund, @huozhi, @saseungmin, @styfle, @feedthejim, @thomasballinger, @kwonoj, and @timneutkens for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.7-canary.3(Dec 7, 2022)

    Core Changes

    • Revert "Adding head element checking for root layout": #43760
    • fix ci pnpm lock error: #43767
    • Force reflow when setting scrollBehavior: #43673
    • Remove __webpack_exports__ from error overlay: #43715
    • Fix chunk hash logic in hot-reloader for server components: #43778
    • Assign layer to app client entries: #43197
    • Remove notifications emitted during pnpm dev: #43801
    • Display error digest if presented: #43742
    • Fix HMR issue after patching the client module: #43819
    • Implement loadable with lazy and suspense for next dynamic: #42589
    • Do not attach CSS checksum for production build: #43827

    Documentation Changes

    • Changes vercel/examples links from linking to GitHub repo to template marketplace: #43780

    Example Changes

    • Convert with-why-did-you-render example to TypeScript: #43736
    • chore(examples): Remove deprecated function from chakra: #43784
    • chore(examples): Update convex example: #43741

    Misc Changes

    • Update bug report template to make it clear we require repro: #43735
    • Add tests for server component HMR: #43779
    • Add tests for rendering null and undefined in RSC: #43768
    • Remove swcMinify from Next config in CNA template: #43782
    • Remove serverComponents from next.conf.js because it's unused: #43805
    • Add test for providing correct params to layouts: #43775
    • Fix test binary generation and update test config: #43790
    • Lock pnpm version during publish: #43820
    • ci(actions): pin prod-test action image: #43748
    • Upgrade playwright to 1.28.1: #43818

    Credits

    Huge thanks to @JanKaifer, @shuding, @manovotny, @hanneslund, @jueungrace, @maxproske, @AnujSsStw, @thomasballinger, @ijjk, and @kwonoj for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.7-canary.2(Dec 6, 2022)

    Core Changes

    • Remove resolved app directory todos: #43672
    • Fix typo in comment: #43685
    • perf: disable prefetching for links in viewport in development for app routes: #43730
    • Remove additional <div> at each segment level in app: #43717

    Documentation Changes

    • docs: Add notes about NEXT_MANUAL_SIG_HANDLE: #43686

    Misc Changes

    • Update test config: #43661
    • Update flakey app logbox test: #43682
    • Update flakey GSSP preview test: #43702
    • Fix typos in 1.bug_report.yml: #43697
    • Disable jest autorun in this repo: #43727
    • Build test binary in Docker image: #43745

    Credits

    Huge thanks to @ijjk, @mmaaaaz, @Alfred-Mountfield, @soonoo, @JanKaifer, @feedthejim, and @Brooooooklyn for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.7-canary.1(Dec 3, 2022)

    Core Changes

    • Adding head element checking for root layout: #43597
    • Revert: 'Minimized runtime errors in app dir': #43648
    • fix: properly handle trailingSlash: true and rewrites: #43641
    • @next/font fallback fonts order fix: #43633
    • Update cache handling for app: #43659

    Example Changes

    • Fixed broken Cloudinary example: #43646

    Misc Changes

    • Update create-next-app template: #43482

    Credits

    Huge thanks to @Andarist, @Nutlope, @hanneslund, @jueungrace, and @balazsorban44 for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.7-canary.0(Dec 2, 2022)

    Core Changes

    • Update react next tag: #43617
    • fix(jest): pattern when detecting packages to transpile in next/jest: #43546

    Example Changes

    • Add with-cloudinary example: #43250
    • examples(with-turbopack): Fix styling page default active stylingNav: #42739

    Misc Changes

    • Apply publish step optimizations: #43620

    Credits

    Huge thanks to @Nutlope, @huozhi, @m7yue, and @BRKalow for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.6(Dec 2, 2022)

    Core Changes

    • test(integration): allow to run --turbo dev server tests dynamically : #42967
    • Ensure loaderFile is included in webpack cache key: #43315
    • Improve @next/font error handling: #43298
    • Improve RSC plugin to provide better errors: #42435
    • fix appDir returning 404 in production with "output": "standalone": #43268
    • Fix outputting un-necessary trace files for edge functions: #43304
    • fix: apply default export interop to pages/_app: #43335
    • Fix package resolution issue in app dir: #43349
    • Get correct chunks in flight-manifest on Windows: #43334
    • Resolve RSC / HTML rendering errors in error overlay: #43332
    • App directory next/link dynamic href dev error: #43074
    • Add ref forwarding for next/image: #43193
    • Always transform styled-jsx for rsc and error with client-only condition: #43386
    • dynamic = 'error' should only throw if page didn't get exported: #43377
    • fix output: "standalone" returning 500 error on certain pages when built without pages/: #43336
    • Fix "apply() is only allowed in ready status (state: idle)" HMR errors: #43242
    • Add gSP and gSSP checks for both server and client layers in the SWC transform: #43391
    • Make sure the TS plugin works for src/app: #43412
    • Remove stack trace from full reload warning: #43453
    • Upgrade compiled undici: #43481
    • Fix missing cleanup process in flight plugin globals: #43297
    • Fix matchers in middleware manifest: #43549
    • rsc: bundle legacy head as client component: #43425
    • Remove useState from next/image: #43587
    • Group redirect status imports: #43480
    • Fix Failed to copy traced files for Edge functions and handle its files with middleware-manifest.json: #43326
    • Update next/link default legacyBehavior: #42623
    • fix: Dynamic Usage Error when using previewData with generateStaticParams and appDir: #43395
    • Minimized runtime errors in app dir: #43511

    Documentation Changes

    • Add link back to font video in Font docs.: #43440
    • docs: update known Safari bug: #43513
    • Add yarn berry dependency upgrade example for Next 12 to 13 upgrade documentation.: #43472
    • Clarify that publicRuntimeConfig and serverRuntimeConfig do not work with Output File Tracing: #43443
    • adding note that edge api routes are not supported with ISR: #43572
    • Improve docs for URL Imports: #43615

    Example Changes

    • chore(examples): Deprecate cms-strapi: #43325
    • Add example commands for creating reproductions: #43375
    • updates with-supertokens example: #43379
    • Fix with-docker-compose example: #43419
    • chore(examples): fix CLI commands for MobX examples: #43534
    • Simplify and convert with-vercel-fetch example to TypeScript: #43403
    • chore(examples): reference main prop in README.md in Firebase example: #43434
    • chore(examples): Update active-class-name example: #43581
    • Fix deploy button in with-xata example: #43608

    Misc Changes

    • Avoid turbo cache miss on root package change: #43309
    • Add .pnpm-store to .gitignore: #43366
    • Update @next/font/google fonts: #43385
    • Catch errors when calculating avg font width: #43503
    • chore: update issue verifier: #43339
    • chore: fix issue validator
    • chore: move comments of issue validator
    • chore: hardcode path for issue validator
    • chore: add area dropdown to bug report template: #43228
    • chore: fix issue verifier issues
    • Merge branch 'canary' of https://github.com/vercel/next.js into canary
    • chore: fix issue verifier
    • chore: don't comment twice
    • chore: disable auto-labeling
    • Fix "infer pnpm with example" test outside test suite: #43487
    • chore: add issue labeler: #43599
    • chore: fix issue labeler: #43606
    • Changed output mode on app directory test application: #43607
    • Fix output: standalone test for app directory: #43618

    Credits

    Huge thanks to @kwonoj, @hanneslund, @ijjk, @shuding, @DuCanhGH, @chibicode, @artechventure, @JanKaifer, @huozhi, @colinking, @rishabhpoddar, @maxproske, @wyattjoh, @leerob, @alantoa, @Haschikeks, @balazsorban44, @matthew-heath, @AaronJY, @dtinth, @styfle, @leoortizz, @ValentinH, @brvnonascimento, @joshuaslate, @SferaDev, and @timeyoutakeit for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.6-canary.4(Dec 2, 2022)

    Documentation Changes

    • adding note that edge api routes are not supported with ISR: #43572
    • Improve docs for URL Imports: #43615

    Example Changes

    • chore(examples): Update active-class-name example: #43581
    • Fix deploy button in with-xata example: #43608

    Misc Changes

    • chore: add issue labeler: #43599
    • chore: fix issue labeler: #43606
    • Changed output mode on app directory test application: #43607
    • Fix output: standalone test for app directory: #43618

    Credits

    Huge thanks to @balazsorban44, @joshuaslate, @wyattjoh, @SferaDev, @timeyoutakeit, and @styfle for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.6-canary.3(Dec 1, 2022)

    Core Changes

    • Fix missing cleanup process in flight plugin globals: #43297
    • Fix matchers in middleware manifest: #43549
    • rsc: bundle legacy head as client component: #43425
    • Remove useState from next/image: #43587
    • Group redirect status imports: #43480
    • Fix Failed to copy traced files for Edge functions and handle its files with middleware-manifest.json: #43326
    • Update next/link default legacyBehavior: #42623
    • fix: Dynamic Usage Error when using previewData with generateStaticParams and appDir: #43395
    • Minimized runtime errors in app dir: #43511

    Documentation Changes

    • Add link back to font video in Font docs.: #43440
    • docs: update known Safari bug: #43513
    • Add yarn berry dependency upgrade example for Next 12 to 13 upgrade documentation.: #43472
    • Clarify that publicRuntimeConfig and serverRuntimeConfig do not work with Output File Tracing: #43443

    Example Changes

    • chore(examples): fix CLI commands for MobX examples: #43534
    • Simplify and convert with-vercel-fetch example to TypeScript: #43403
    • chore(examples): reference main prop in README.md in Firebase example: #43434

    Misc Changes

    • Catch errors when calculating avg font width: #43503
    • chore: update issue verifier: #43339
    • chore: fix issue validator
    • chore: move comments of issue validator
    • chore: hardcode path for issue validator
    • chore: add area dropdown to bug report template: #43228
    • chore: fix issue verifier issues
    • Merge branch 'canary' of https://github.com/vercel/next.js into canary
    • chore: fix issue verifier
    • chore: don't comment twice
    • chore: disable auto-labeling
    • Fix "infer pnpm with example" test outside test suite: #43487

    Credits

    Huge thanks to @leerob, @hanneslund, @shuding, @alantoa, @Haschikeks, @balazsorban44, @matthew-heath, @huozhi, @maxproske, @AaronJY, @dtinth, @styfle, @leoortizz, @DuCanhGH, @ValentinH, and @brvnonascimento for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.6-canary.2(Nov 29, 2022)

    Core Changes

    • App directory next/link dynamic href dev error: #43074
    • Add ref forwarding for next/image: #43193
    • Always transform styled-jsx for rsc and error with client-only condition: #43386
    • dynamic = 'error' should only throw if page didn't get exported: #43377
    • fix output: "standalone" returning 500 error on certain pages when built without pages/: #43336
    • Fix "apply() is only allowed in ready status (state: idle)" HMR errors: #43242
    • Add gSP and gSSP checks for both server and client layers in the SWC transform: #43391
    • Make sure the TS plugin works for src/app: #43412
    • Remove stack trace from full reload warning: #43453
    • Upgrade compiled undici: #43481

    Example Changes

    • updates with-supertokens example: #43379
    • Fix with-docker-compose example: #43419

    Misc Changes

    • Update @next/font/google fonts: #43385

    Credits

    Huge thanks to @hanneslund, @JanKaifer, @huozhi, @DuCanhGH, @colinking, @rishabhpoddar, @maxproske, @shuding, and @wyattjoh for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.6-canary.1(Nov 25, 2022)

    Core Changes

    • fix: apply default export interop to pages/_app: #43335
    • Fix package resolution issue in app dir: #43349
    • Get correct chunks in flight-manifest on Windows: #43334
    • Resolve RSC / HTML rendering errors in error overlay: #43332

    Example Changes

    • chore(examples): Deprecate cms-strapi: #43325
    • Add example commands for creating reproductions: #43375

    Misc Changes

    • Add .pnpm-store to .gitignore: #43366

    Credits

    Huge thanks to @chibicode, @artechventure, @shuding, @hanneslund, and @JanKaifer for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.6-canary.0(Nov 24, 2022)

    Core Changes

    • test(integration): allow to run --turbo dev server tests dynamically : #42967
    • Ensure loaderFile is included in webpack cache key: #43315
    • Improve @next/font error handling: #43298
    • Improve RSC plugin to provide better errors: #42435
    • fix appDir returning 404 in production with "output": "standalone": #43268
    • Fix outputting un-necessary trace files for edge functions: #43304

    Misc Changes

    • Avoid turbo cache miss on root package change: #43309

    Credits

    Huge thanks to @kwonoj, @hanneslund, @shuding, and @DuCanhGH for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.5(Nov 23, 2022)

    Core Changes

    • Remove unnecessary async function when preloading async components: #42957
    • Add force-static handling for app dir: #43061
    • Add experimental outputFileTracingIgnores config: #43103
    • Leverage outputFileTracingIgnores for next-server trace as well: #43108
    • Remove unstable_revalidate: #43119
    • types: better type definition for internal utils: #43070
    • Eagerly build swc binaries on change: #43142
    • chore: Update swc_core to v0.43.23: #42977
    • fix(next-swc/relay): make pages directory optional: #43116
    • Remove the timestamp query for CSS resources: #43185
    • Update experimental skipTrailingSlashRedirect handling: #43201
    • Avoid bundling appDir rendering into pages edge SSR bundle: #43184
    • Alias esm next document to avoid mismatch react context: #43192
    • Fix middleware not executed when pages directory is empty: #43205
    • Remove app routes from _devPagesManifest: #43188
    • Fix HMR error: "Cannot read properties of null (reading 'length')": #43145
    • fix(ts): re-export PageComponent and LayoutComponent types: #43226
    • Fix app routes are not correctly matched when src directory is used: #43234
    • chore: add firebase-admin to default serverComponentsExternalPackages list: #43249
    • Fix React.cache() in layout/page file: #43187
    • build(cargo): bump up turbopack: #43273
    • fix(next-swc): aarch64 build: #43275
    • Add fallback aliases for React: #43203
    • fix: apply default export interop to next/error: #43238
    • Remove unused use-sync-external-store dependency: #43281
    • Imageloader: collect images serverside to include images from staticp…: #41554
    • Update precompiled react: #43288
    • Resolve next api for layouts to esm for edge runtime: #43302
    • Refactor code: #43291
    • Show error for invalid page props in the TS plugin: #43300
    • docs: add error link when missing appDir: true: #43293

    Documentation Changes

    • Add note in next/link docs about anchor props: #43064
    • Remove unneeded async in docs.: #43161
    • Add JWT example to error page.: #43162
    • Updated typo in the documentation: #43160
    • Add missing quote in next/script example: #43196
    • Add a note about the auto-created empty directory: #43219
    • docs: Add default browserslist configuration as a starting point: #43260

    Example Changes

    • chore: Updating Tigris example to use stable release: #43058
    • examples(with-ant-design): bump antd v5.0.0: #43062
    • fix: Wrong link to source in "responsive" image example: #43081
    • chore(examples): with-msw update msw: #43224
    • Fix With Passport example: #43232
    • chore(examples): update Next.js in with-redux-reducer: #43237
    • Updates supertokens example app SSR behaviour: #43218
    • docs: add missing AppProps import: #43136
    • Convert more jsx/styled-components examples to TypeScript: #43117
    • Convert with-videojs, with-yoga, with-zones examples to TypeScript: #43280

    Misc Changes

    • Fix e2e deploy test for Node.js v18: #43109
    • Update tests config: #43204
    • fix: create-next-app copies files it shouldn't: #43131
    • Add links to PR template: #43239
    • Update some flakey test cases: #43247
    • Update flakey app HMR tests: #43253
    • Add support for next.js development in docker: #43138

    Credits

    Huge thanks to @hanneslund, @adilansari, @chunsch, @bennettdams, @maxproske, @SukkaW, @kdy1, @orionmiz, @leerob, @shuding, @aziyatali, @NiedziolkaMichal, @huozhi, @colinking, @juliusmarminge, @andykenward, @Yutsuten, @balazsorban44, @FomichRoman, @rishabhpoddar, @arturbien, @ADTC, @JanKaifer, @ijjk, @kwonoj, @joliss, @Andarist, and @Laityned for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.5-canary.7(Nov 23, 2022)

    Core Changes

    • Remove unused use-sync-external-store dependency: #43281
    • Imageloader: collect images serverside to include images from staticp…: #41554
    • Update precompiled react: #43288
    • Resolve next api for layouts to esm for edge runtime: #43302
    • Refactor code: #43291
    • Show error for invalid page props in the TS plugin: #43300
    • docs: add error link when missing appDir: true: #43293

    Example Changes

    • Convert with-videojs, with-yoga, with-zones examples to TypeScript: #43280

    Misc Changes

    • Add support for next.js development in docker: #43138

    Credits

    Huge thanks to @JanKaifer, @maxproske, @Andarist, @Laityned, @huozhi, @shuding, and @balazsorban44 for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.5-canary.6(Nov 23, 2022)

    Core Changes

    • build(cargo): bump up turbopack: #43273
    • fix(next-swc): aarch64 build: #43275
    • Add fallback aliases for React: #43203
    • fix: apply default export interop to next/error: #43238

    Documentation Changes

    • docs: Add default browserslist configuration as a starting point: #43260

    Example Changes

    • Convert more jsx/styled-components examples to TypeScript: #43117

    Credits

    Huge thanks to @kwonoj, @joliss, @shuding, @balazsorban44, and @maxproske for helping!

    Source code(tar.gz)
    Source code(zip)
  • v13.0.5-canary.5(Nov 22, 2022)

    Core Changes

    • fix(ts): re-export PageComponent and LayoutComponent types: #43226
    • Fix app routes are not correctly matched when src directory is used: #43234
    • chore: add firebase-admin to default serverComponentsExternalPackages list: #43249
    • Fix React.cache() in layout/page file: #43187

    Documentation Changes

    • Add a note about the auto-created empty directory: #43219

    Example Changes

    • chore(examples): with-msw update msw: #43224
    • Fix With Passport example: #43232
    • chore(examples): update Next.js in with-redux-reducer: #43237
    • Updates supertokens example app SSR behaviour: #43218
    • docs: add missing AppProps import: #43136

    Misc Changes

    • Add links to PR template: #43239
    • Update some flakey test cases: #43247
    • Update flakey app HMR tests: #43253

    Credits

    Huge thanks to @andykenward, @Yutsuten, @balazsorban44, @FomichRoman, @rishabhpoddar, @arturbien, @shuding, @ADTC, @JanKaifer, and @ijjk for helping!

    Source code(tar.gz)
    Source code(zip)
Owner
Vercel
Develop. Preview. Ship. Creators of Next.js.
Vercel
Fast, unopinionated, minimalist web framework for node.

Fast, unopinionated, minimalist web framework for node. const express = require('express') const app = express() app.get('/', function (req, res) {

null 59.5k Jan 5, 2023
The Intuitive Vue Framework

Build your next Vue.js application with confidence using Nuxt: a framework making web development simple and powerful. Links ?? Documentation: https:/

Nuxt 41.8k Jan 9, 2023
A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀

A progressive Node.js framework for building efficient and scalable server-side applications. Description Nest is a framework for building efficient,

nestjs 53.2k Dec 31, 2022
Realtime MVC Framework for Node.js

Website Get Started Docs News Submit Issue Sails.js is a web framework that makes it easy to build custom, enterprise-grade Node.js apps. It is design

Balderdash 22.4k Dec 31, 2022
Fast and low overhead web framework, for Node.js

An efficient server implies a lower cost of the infrastructure, a better responsiveness under load and happy users. How can you efficiently handle the

Fastify 26k Jan 2, 2023
The Simple, Secure Framework Developers Trust

@hapi/hapi The Simple, Secure Framework Developers Trust Build powerful, scalable applications, with minimal overhead and full out-of-the-box function

hapi.js 14.1k Dec 31, 2022
A framework for real-time applications and REST APIs with JavaScript and TypeScript

A framework for real-time applications and REST APIs with JavaScript and TypeScript Feathers is a lightweight web-framework for creating real-time app

Feathers 14.3k Jan 1, 2023
🚀 The Node.js Framework highly focused on developer ergonomics, stability and confidence

Sponsored by FOSS United is a non-profit foundation that aims at promoting and strengthening the Free and Open Source Software (FOSS) ecosystem in Ind

AdonisJS Framework 13.4k Dec 31, 2022
:rocket: Progressive microservices framework for Node.js

Moleculer Moleculer is a fast, modern and powerful microservices framework for Node.js. It helps you to build efficient, reliable & scalable services.

MoleculerJS 5.5k Jan 4, 2023
MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers

Derby The Derby MVC framework makes it easy to write realtime, collaborative applications that run in both Node.js and browsers. Derby includes a powe

DerbyJS 4.7k Dec 23, 2022
Node.js framework

Node.js framework Total.js framework is a framework for Node.js platfrom written in pure JavaScript similar to PHP's Laravel or Python's Django or ASP

Total.js 4.2k Jan 2, 2023
:evergreen_tree: Modern Web Application Framework for Node.js.

Trails is a modern, community-driven web application framework for Node.js. It builds on the pedigree of Rails and Grails to accelerate development by

Trails 1.7k Dec 19, 2022
Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.

Functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS. Ecosystem Name Description @marblejs/core F

Marble.js 2.1k Dec 16, 2022
🦄 0-legacy, tiny & fast web framework as a replacement of Express

tinyhttp ⚡ Tiny web framework as a replacement of Express ?? tinyhttp now has a Deno port (work in progress) tinyhttp is a modern Express-like web fra

v 1 r t l 2.4k Jan 3, 2023
Catberry is an isomorphic framework for building universal front-end apps using components, Flux architecture and progressive rendering.

Catberry What the cat is that? Catberry was developed to help create "isomorphic/Universal" Web applications. Long story short, isomorphic/universal a

Catberry.js 801 Dec 20, 2022
A serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gateway, Lambda)

---- Sorry, this project is not maintained anymore. ---- dawson is a serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gate

dawson 717 Dec 30, 2022
Framework for setting up RESTful JSON APIs with NodeJS.

Restberry works with both Express and Restify! Framework for setting up RESTful JSON APIs with NodeJS. Define your models and setup CRUD API calls wit

Restberry 117 Jul 5, 2021
Component based MVC web framework for nodejs targeting good code structures & modularity.

Component based MVC web framework for nodejs targeting good code structures & modularity. Why fortjs Based on Fort architecture. MVC Framework and fol

Ujjwal Gupta 47 Sep 27, 2022
Proof of concept for the Quark.js web framework

Quark.js Proof of Concept Proof of concept for the Quark.js web framework. Examples Express.js Implimentation using express.js as a web server: im

Quark.js 3 Feb 18, 2022