Atlas Identity Platform is an authentication and identity platform by Opendex, Inc. It is developer-friendly and available under a proprietary commercial license.
Atlas Identity Platform gets you started in just five minutes, after which you'll be ready to use all of its features as you grow your project. Our managed service is completely optional and you can export your user data and self-host, for free, at any time.
We support Next.js, React, and JavaScript frontends, along with any backend that can use our REST API. Check out our setup guide in docs/ to get started.
- How is this different from X?
- β¨ Features
- π¦ Installation & Setup
- π± Some community projects built with Atlas Identity Platform
- π Development & Contribution
- β€ Contributors
Ask yourself about X:
- Does
Xhave transparent licensing and predictable pricing? - Is
Xdeveloper-friendly, well-documented, and lets you get started in minutes? - Besides authentication, does
Xalso do authorization and user management (see feature list below)?
If you answered "no" to any of these questions, then that's how Atlas Identity Platform is different from X.
To get notified first when we add new features, please subscribe to our newsletter: https://opendex.com/newsletter
To install Atlas Identity Platform in your Next.js project:
-
Run Atlas Identity Platform's installation wizard with the following command:
npx @opendex/init-stack@latest
If you prefer not to open a browser during setup (useful for CI/CD environments or restricted environments):
npx @opendex/init-stack@latest --no-browser
-
Then, create an account on the dashboard, create a new project with an API key, and copy its environment variables into the .env.local file of your Next.js project:
NEXT_PUBLIC_ATLAS_PROJECT_ID=<your-project-id> NEXT_PUBLIC_ATLAS_PUBLISHABLE_CLIENT_KEY=<your-publishable-client-key> ATLAS_SECRET_SERVER_KEY=<your-secret-server-key>(Legacy
NEXT_PUBLIC_STACK_PROJECT_ID,NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY,STACK_SECRET_SERVER_KEYare still supported.) -
That's it! You can run your app with
npm run devand go to http://localhost:3000/handler/signup to see the sign-up page. You can also check out the account settings page at http://localhost:3000/handler/account-settings.
Check out the documentation in docs/ for a more detailed guide.
Have your own? Happy to feature it if you create a PR.
- (Coming soon) Atlas Identity Platform starter templates.
examples/demoexamples/e-commerceexamples/react-example
This is for you if you want to contribute to Atlas Identity Platform or run the dashboard locally.
Important: Please read the contribution guidelines carefully if you'd like to help.
- Node v20
- pnpm v9
- Docker
Pre-populated .env files for the setup below are available and used by default in .env.development in each of the packages. (Note: If you're creating a production build (eg. with pnpm run build), you must supply the environment variables manually.)
In a new terminal:
pnpm install
# Build the packages and generate code. We only need to do this once, as `pnpm dev` will do this from now on
pnpm build:packages
pnpm codegen
# Start the dependencies (DB, Inbucket, etc.) as Docker containers, seeding the DB with the Prisma schema
# Make sure you have Docker (or OrbStack) installed and running
pnpm restart-deps
# restart-deps is the same as:
# pnpm stop-deps (if the containers are already running)
# pnpm start-deps
# Start the dev server
pnpm dev
# For systems with limited resources, you can run a minimal development setup with just the backend and dashboard
# pnpm run dev:basic
# In a different terminal, run tests in watch mode
pnpm testYou can now open the dev launchpad at http://localhost:8100. From there, you can navigate to the dashboard at http://localhost:8101, API on port 8102, demo on port 8103, docs on port 8104, Inbucket (e-mails) on port 8105, and Prisma Studio on port 8106. See the dev launchpad for a list of all running services.
Your IDE may show an error on all @opendex/XYZ imports. To fix this, simply restart the TypeScript language server; for example, in VSCode you can open the command palette (Ctrl+Shift+P) and run Developer: Reload Window or TypeScript: Restart TS server.
You can also open Prisma Studio to see the database interface and edit data directly:
pnpm run prisma studioIf you make changes to the Prisma schema, you need to run the following command to create a migration file:
pnpm run db:migration-genIf you want to chat with the codebase, use the documentation AI assistant in the docs site (runs locally in docs).
graph TB
Website[Your Website]
User((User))
Admin((Admin))
subgraph "Atlas Identity Platform System"
Dashboard[Atlas Identity Platform Dashboard<br/>/apps/dashboard]
Backend[Atlas Identity Platform API Backend<br/>/apps/backend]
Database[(PostgreSQL Database)]
EmailService[Email Service<br/>Inbucket]
WebhookService[Webhook Service<br/>Svix]
StackSDK[Client SDK<br/>/packages/stack]
subgraph Shared
StackUI[Atlas Identity Platform UI<br/>/packages/stack-ui]
StackShared[Atlas Identity Platform Shared<br/>/packages/stack-shared]
StackEmails[Atlas Identity Platform Emails<br/>/packages/stack-emails]
end
end
Admin --> Dashboard
User --> Website
Website --> StackSDK
Backend --> Database
Backend --> EmailService
Backend --> WebhookService
Dashboard --> Shared
Dashboard --> StackSDK
StackSDK --HTTP Requests--> Backend
StackSDK --> Shared
Backend --> Shared
classDef container fill:#1168bd,stroke:#0b4884,color:#ffffff
classDef database fill:#2b78e4,stroke:#1a4d91,color:#ffffff
classDef external fill:#999999,stroke:#666666,color:#ffffff
classDef deprecated stroke-dasharray: 5 5
class Dashboard,Backend,EmailService,WebhookService,Website container
class Database database
Thanks to CodeViz for generating the diagram!














