{"data":{"slug":"casdoor","name":"Casdoor","tagline":"Apache-2.0 UI-first IdP; Hosted Free 25k MAU, self-host primary","category":"nextjs","categoryName":"Next.js","url":"https://casdoor.com","github":"https://github.com/casdoor/casdoor","pricing":"freemium","hook":"Casdoor is Apache-2.0 identity with a web UI when Keycloak feels like an ops novel.","whatsGood":"Apache-2.0. Self-host is primary. Hosted Free: 25k MAU. OAuth/OIDC/SAML, UI for apps and users. Use casdoor.com (casdoor.org 500s).","theCatch":"UI-first IdP — vs Keycloak/authentik/Kanidm/Logto/Hanko/Zitadel. Hosted Free 25k MAU; self-host uncapped. Distinct from Keycloak, authentik, Kanidm, Logto, Hanko, and Zitadel.","verdict":"Apache-2.0 IdP. Self-host primary; Hosted Free 25k MAU.","addedAt":"2026-09-04","featured":false,"domain":"Auth","subSpecialty":"Auth","capabilities":["auth","oidc"],"surfaces":["Self-host","Hosted"],"ecosystem":["Go","Multi-platform"],"licenseModel":"Freemium","githubStars":14340},"related":[{"slug":"vercel","name":"Vercel","tagline":"The platform that made Next.js deployment trivial"},{"slug":"prisma","name":"Prisma","tagline":"Type-safe database access with killer DX"},{"slug":"drizzle","name":"Drizzle ORM","tagline":"TypeScript ORM that feels like SQL"},{"slug":"trpc","name":"tRPC","tagline":"End-to-end typesafe APIs without codegen"},{"slug":"clerk","name":"Clerk","tagline":"Auth that actually ships with your UI"}],"links":{"self":"/api/gems/casdoor","html":"/gems/casdoor","markdown":"/gems/casdoor.md","category":"/api/gems?category=nextjs","categoryPage":"/stacks/nextjs"}}