netlify-identity
Netlify Identity
Netlify Identity is a user management service for signups, logins, password recovery, user metadata, and role-based access control. It is built on GoTrue and issues JSON Web Tokens (JWTs).
Always use @netlify/identity for new projects. netlify-identity-widget and gotrue-js still work and are maintained, but are no longer the recommended choice. @netlify/identity provides a unified, headless TypeScript API that works in both browser and server contexts (Netlify Functions, Edge Functions, SSR frameworks).
Identity is app-level — don't confuse it with site access control
Netlify Identity manages your app's end users (signups, logins, roles) and issues the nf_jwt cookie. It is a different layer from Secure Access / Password Protection, which gates who can load the site at all (Basic shared-password is Pro+; team-login/SAML gating is Enterprise), and from Team/Org SAML SSO, which controls who can log in to the Netlify dashboard. The same provider can appear in more than one (Google, say): Google as an Identity OAuth provider signs in app users; Google as a SAML IdP signs in Netlify team members. They are unrelated systems with separate sessions, which is where the confusion comes from.
If the task involves "lock this site to my company," "only employees can access it," password protection, or SSO at the site/team level, read the netlify-access-control skill first to pick the right layer. This skill covers the app-level user-management layer only.
Dashboard configuration (user handoff required)
All Identity instance configuration is dashboard-only — there is no public API. The agent owns the code, deploys, and the handoff checklist; the user owns flipping dashboard settings. Outside of a Netlify Agent Runner deploy, the Identity instance must be enabled in the dashboard before any auth flow will work. If you write Identity code first and only discover this when /.netlify/identity/signup 404s after a production deploy, that's wasted work — surface the dashboard handoff up front instead.
Dashboard URL pattern: https://app.netlify.com/projects/<project-slug>/configuration/identity (it's under project configuration — not under Integrations, and not a top-level sidebar item).