A customizable developer portal frontend for API7 Enterprise, built with Next.js 16, React 18, and Tailwind CSS.
- Node.js 22 LTS or 24 LTS recommended; Node.js 20.9.0 or later is the current package engine floor
- pnpm 11 (enforced via
packageManager) - PostgreSQL database
# Install dependencies
pnpm i
cd apps/site
# Copy and configure
cp config.yaml.example config.yaml
# Edit config.yaml with your database, auth, Portal API, and app URL settings
pnpm db:migrate
# Start development server
pnpm dev
# Visit the Local URL printed by Next.jsAll configuration is managed via apps/site/config.yaml. Copy apps/site/config.yaml.example to apps/site/config.yaml, then follow docs/usage.md for required values, environment variable substitution, auth settings, Portal API tokens, Docker usage, and E2E examples.
This is a pnpm workspace monorepo:
apps/
├── site/ # Main Next.js application
└── site-e2e/ # Playwright E2E tests
Run these commands from the repository root unless otherwise noted.
| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm lint |
Run ESLint |
pnpm lint:fix |
Fix lint issues and run type check |
Database commands must be run from apps/site:
pnpm db:generate # Generate migration files
pnpm db:migrate # Apply migrations
pnpm db:push # Push schema directly (dev only)
pnpm db:studio # Open Drizzle Studiopnpm e2e # Headless
pnpm e2e:ui # Interactive UI mode
pnpm e2e:headed # Headed browserDeployment reference files:
- Dockerfile
- apps/site-e2e/runtime/api7-ee-minimal/docker-compose.yaml
- apps/site-e2e/runtime/api7-ee-minimal/docker-compose.support.yaml
Detailed Docker build modes, runtime config mounting, preflight behavior, and E2E notes are maintained in docs/usage.md.
- Framework: Next.js 16, React 18
- UI: Ant Design 6, Tailwind CSS 4, DaisyUI
- Database: PostgreSQL + Drizzle ORM
- Auth: Better Auth
- API Client: @api7/portal-sdk, TanStack Query
- Testing: Playwright