(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[27965],{92814:function(e,t,i){(window.__NEXT_P=window.__NEXT_P||[]).push(["/contributors",function(){return i(46826)}])},46826:function(e,t,i){"use strict";i.r(t),i.d(t,{useTOC:function(){return h}});var r=i(651),n=i(64211),s=i(1089),a=i(15593),o=i(46542);function h(e){return[{value:"Core team",id:"core-team",depth:2},{value:"Special thanks",id:"special-thanks",depth:2},{value:"Other contributors",id:"other-contributors",depth:2},{value:"History",id:"history",depth:2},{value:"2016 – Initial release",id:"2016--initial-release",depth:3},{value:"2020 – Refactor and clean up",id:"2020--refactor-and-clean-up",depth:3},{value:"2021 – Multi-framework effort",id:"2021--multi-framework-effort",depth:3},{value:"2022 – Birth of Auth.js",id:"2022--birth-of-authjs",depth:3},{value:"2023 – Auth.js silent releases",id:"2023--authjs-silent-releases",depth:3},{value:"2024 – Growing the Auth.js ecosystem",id:"2024--growing-the-authjs-ecosystem",depth:3},{value:"Notes",id:"notes",depth:2}]}t.default=(0,n.c)(function(e){let{toc:t=h(e)}=e,i={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.h1,{children:"Contributors"}),"\n",(0,r.jsx)(i.p,{children:"Maintaining Auth.js as an open source project is very hard work. All the core team members have regular jobs and the library is maintained and developed out of good will in our free time. Donations can enable the core team to eventually work full time on Auth.js to provide more features and an even better developer experience!"}),"\n",(0,r.jsxs)("div",{className:"my-4 flex gap-2",children:[(0,r.jsx)("img",{src:"/img/etc/opencollective-logomark.svg",width:"64"}),(0,r.jsx)("img",{src:"/img/etc/opencollective-wordmark.svg",width:"250"})]}),"\n",(0,r.jsxs)(i.p,{children:["You can find us on ",(0,r.jsx)(i.a,{href:"https://opencollective.com/nextauth",children:"Open Collective"}),". We are very thankful for all of our existing contributors and would be delighted if you or your company would decide to join them."]}),"\n",(0,r.jsx)(i.h2,{id:t[0].id,children:t[0].value}),"\n",(0,r.jsx)(i.p,{children:"Without these people, the project could not have become one of the most used authentication libraries in its category."}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://github.com/balazsorban44",children:"Bal\xe1zs Orb\xe1n"})," - Lead Maintainer"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://github.com/ThangHuuVu",children:"Thang Vu"})," - Maintainer"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://github.com/ndom91",children:"Nico Domino"})," - Maintainer"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://github.com/lluia",children:"Lluis Agusti"})," - Maintainer"]}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:t[1].id,children:t[1].value}),"\n",(0,r.jsx)(i.p,{children:"Special thanks to Filip Skokan for their feedback and high-quality OAuth libraries that we build on, Lori Karikari for creating most of the original provider configurations, Fredrik Pettersen for creating the original Prisma Adapter, Gerald Nolan for adding support for Sign in with Apple, Jefferson Bledsoe for working on original testing automation, and Tom Grey for their work/guidance on the API Reference documentation."}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsx)(i.li,{children:(0,r.jsx)(i.a,{href:"https://github.com/panva",children:"Filip Skokan"})}),"\n",(0,r.jsx)(i.li,{children:(0,r.jsx)(i.a,{href:"https://github.com/LoriKarikari",children:"Lori Karikari"})}),"\n",(0,r.jsx)(i.li,{children:(0,r.jsx)(i.a,{href:"https://github.com/Fumler",children:"Fredrik Pettersen"})}),"\n",(0,r.jsx)(i.li,{children:(0,r.jsx)(i.a,{href:"https://github.com/geraldnolan",children:"Gerald Nolan"})}),"\n",(0,r.jsx)(i.li,{children:(0,r.jsx)(i.a,{href:"https://github.com/JeffersonBledsoe",children:"Jefferson Bledsoe"})}),"\n",(0,r.jsx)(i.li,{children:(0,r.jsx)(i.a,{href:"https://github.com/tgreyuk",children:"Tom Grey"})}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:t[2].id,children:t[2].value}),"\n",(0,r.jsx)(i.p,{children:"Auth.js as it exists today has been possible thanks to the work of many individual contributors."}),"\n",(0,r.jsxs)(i.p,{children:["Thank you to the ",(0,r.jsx)(i.a,{href:"https://github.com/nextauthjs/next-auth/graphs/contributors",children:"dozens of individual contributors"})," who have helped shape Auth.js."]}),"\n",(0,r.jsx)(i.h2,{id:t[3].id,children:t[3].value}),"\n",(0,r.jsxs)(o.R,{children:[(0,r.jsx)(i.h3,{id:t[4].id,children:t[4].value}),(0,r.jsxs)(i.p,{children:["NextAuth.js was originally developed by ",(0,r.jsx)(i.a,{href:"https://github.com/iaincollins",children:"Iain Collins"})," in 2016 as an authentication framework specific to ",(0,r.jsx)(i.a,{href:"https://nextjs.org/",children:"Next.js"}),"."]}),(0,r.jsx)(i.h3,{id:t[5].id,children:t[5].value}),(0,r.jsx)(i.p,{children:"NextAuth.js was rebuilt from the ground up to support serverless, MySQL, Postgres, MongoDB, JSON Web Tokens and built-in support for over a dozen authentication providers."}),(0,r.jsxs)(i.p,{children:[(0,r.jsx)(i.a,{href:"https://github.com/balazsorban44",children:"Bal\xe1zs Orb\xe1n"})," joined as a co-maintainer, helping to offload some of the work from Iain."]}),(0,r.jsx)(i.h3,{id:t[6].id,children:t[6].value}),(0,r.jsx)(i.p,{children:"Iain and Bal\xe1zs defined future goals for the project. Their vision aligned perfectly, discussing that NextAuth.js could one day become useful for other frameworks."}),(0,r.jsx)(i.p,{children:"Iain left the project to focus on other things, knowing that Bal\xe1zs will work on their shared vision."}),(0,r.jsx)(i.p,{children:"Bal\xe1zs became the lead maintainer of the project."}),(0,r.jsx)(i.p,{children:"Efforts started to move NextAuth.js to other frameworks and to support as many databases and providers as possible."}),(0,r.jsx)(i.p,{children:"It was shown that a single package could not support all of these use cases."}),(0,r.jsxs)(i.p,{children:["Database Adapters were moved to their packages under the name ",(0,r.jsx)(i.code,{children:"@next-auth/*-adapter"}),"."]}),(0,r.jsx)(i.h3,{id:t[7].id,children:t[7].value}),(0,r.jsxs)(i.p,{children:["Based on NextAuth.js, Bal\xe1zs released ",(0,r.jsxs)(i.a,{href:"https://twitter.com/balazsorban44/status/1603082914362986496",children:["Auth.js (",(0,r.jsx)(i.code,{children:"@auth/core"}),")"]}),", a runtime/framework independent core library that is the base of\nall Auth.js libraries. A complete rewrite that still shared most of the public API with NextAuth.js but internally was very different."]}),(0,r.jsx)(i.h3,{id:t[8].id,children:t[8].value}),(0,r.jsxs)(i.p,{children:["Due to personal reasons, Bal\xe1zs had to step down as the lead maintainer, but was still contributing. The project was taken over by ",(0,r.jsx)(i.a,{href:"https://github.com/thanghuuvu",children:"Thang Huu Vu"})," for a while."]}),(0,r.jsxs)(i.p,{children:["Bal\xe1zs returned and continued the work on Auth.js. As a pilot project, ",(0,r.jsx)(i.code,{children:"next-auth@experimental"})," (later ",(0,r.jsx)(i.code,{children:"next-auth@beta"}),") releases were published\nto work out what was needed in the core library to support other frameworks and what was framework specific from the old NextAuth.js implementation."]}),(0,r.jsxs)(i.p,{children:["The new default documentation page became ",(0,r.jsx)(i.a,{href:"https://authjs.dev",children:"authjs.dev"})," (the one you are reading right now), and the old NextAuth.js documentation at ",(0,r.jsx)(i.a,{href:"https://next-auth.js.org",children:"next-auth.js.org"})," was kept around\nto document NextAuth.js v4 and is kept only as a back reference."]}),(0,r.jsxs)(i.p,{children:["Database Adapters were moved from the ",(0,r.jsx)(i.code,{children:"@next-auth/*-adapter"})," namespace to ",(0,r.jsx)(i.code,{children:"@auth/*-adapter"}),", indicating that they are not NextAuth.js specific anymore."]}),(0,r.jsx)(i.p,{children:"Community integrations started showing up, making it clear that the initial vision of Auth.js was shared by many."}),(0,r.jsx)(i.h3,{id:t[9].id,children:t[9].value}),(0,r.jsxs)(i.p,{children:["With the release of ",(0,r.jsx)(i.a,{href:"/getting-started/migrating-to-v5",children:"NextAuth.js v5"}),", now all Auth.js libraries are based on the same core library.\n",(0,r.jsx)(i.strong,{children:"The name “NextAuth.js” designates only the Next.js integration"}),", while Auth.js refers to the core library and our ecosystem as a whole.\nOther integrations will generally be refered to with their framework name + Auth, e.g. “SvelteKit Auth” or “Express Auth”."]}),(0,r.jsxs)(i.p,{children:["All official integrations are distributed under the ",(0,r.jsx)(i.code,{children:"@auth"})," scope except for NextAuth.js, which is distributed under ",(0,r.jsx)(i.code,{children:"next-auth"})," to reduce migration overhead."]})]}),"\n",(0,r.jsx)(i.h2,{id:t[10].id,children:t[10].value}),"\n",(0,r.jsx)(i.p,{children:"The Auth.js/NextAuth.js project is not provided by, nor otherwise affiliated with Vercel Inc. or its subsidiaries. Any contributions to this project by individuals affiliated with Vercel are made in their personal capacity."})]})},"/contributors",{filePath:"pages/contributors.mdx",timestamp:1727803029e3,pageMap:s.v,frontMatter:{},title:"Contributors"},"undefined"==typeof RemoteContent?h:RemoteContent.useTOC)},46542:function(e,t,i){"use strict";i.d(t,{R:function(){return a}});var r=i(651),n=i(69577),s=i(92379);function a({children:e,className:t,style:i,...a}){let o=(0,s.useId)().replaceAll(":","");return(0,r.jsx)("div",{className:(0,n.Z)("nextra-steps _ml-4 _mb-12 _border-l _border-gray-200 _pl-6","dark:_border-neutral-800",t),style:{...i,"--counter-id":o},...a,children:e})}}},function(e){e.O(0,[64211,1089,92888,49774,40179],function(){return e(e.s=92814)}),_N_E=e.O()}]);