Developer documentation platform — Fern, but better.
Config-as-code API docs, interactive playgrounds, SDK generation, and hosted documentation sites.
frond/
├── apps/
│ ├── cli/ # @frond/cli — npm CLI
│ ├── web/ # Landing page + dashboard (Next.js)
│ └── docs/ # Published docs renderer (Next.js)
├── packages/
│ ├── config/ # frond.config.json, docs.yml parsers
│ ├── compiler/ # OpenAPI → manifest compiler
│ └── sdk-generator/# TypeScript + Python SDK generation
├── services/
│ └── api/ # Go REST API
└── docker-compose.yml
- Node.js 20+
- pnpm 9+
- Go 1.22+
- Docker (for Postgres + Meilisearch)
cp .env.example .env
# Add GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET for Google login
docker compose up -d postgres meilisearchpnpm installLocal development uses Prisma for schema migrations and seeding. The Go API still reads/writes the same Postgres tables via pgx.
pnpm db:migrate # apply migrations
pnpm db:seed # create demo user + orgOr in one step:
make db-setupIf you previously used goose migrations, reset the local DB first:
pnpm db:resetDemo login (no Google setup required):
| Field | Value |
|---|---|
| Username | demo |
| Password | demo |
Sign in at http://localhost:3000/login — Google sign-in remains available when OAuth is configured.
cd services/api
go run ./cmd/server
# API at http://localhost:8080pnpm build# Terminal 1 — landing + dashboard
pnpm --filter @frond/web dev
# Terminal 2 — docs renderer
pnpm --filter @frond/docs dev| App | URL |
|---|---|
| Landing + Dashboard | http://localhost:3000 |
| Docs renderer | http://localhost:3001/:org/:project |
| Go API | http://localhost:8080 |
Note: Creating an org/project in the dashboard does not publish docs. The docs site only shows content after
frond docs publish --project-id <uuid>(or an equivalent publish API call). Until then,http://localhost:3001/:org/:projectshows “Docs not published yet”.
# Install CLI locally
pnpm --filter @frond/cli build
npm install -g ./apps/cli
# In your API repo
frond init
frond validate
frond doctor
frond docs dev # local manifest server on :3002
frond login # Google OAuth (or use demo credentials in dashboard)
frond generate # SDKs to sdks/
frond docs publish --project-id <uuid>
frond diff --from v1 --to v2my-api/
├── frond/
│ ├── frond.config.json
│ ├── generators.yml
│ ├── openapi/v1/openapi.yaml
│ └── docs/
│ ├── docs.yml
│ └── pages/
└── .github/workflows/ # see publish-docs.example.yml
| Field | Value |
|---|---|
| Username | demo |
| Password | demo |
demo@frond.dev |
Use Sign in with demo account at http://localhost:3000/login. Re-seed anytime with pnpm db:seed.
- Create a Google Cloud OAuth 2.0 Client ID
- Add redirect URI:
http://localhost:8080/v1/auth/google/callback - Set
GOOGLE_CLIENT_IDandGOOGLE_CLIENT_SECRETin.env
| Doc | Description |
|---|---|
| PRD | Product requirements |
| PHASE.md | Phased product design |
| ROADMAP.md | Full feature roadmap |
- GitHub OAuth connect + repo selection
- Background repo scanner (OpenAPI, package.json, go.mod, ADRs, CODEOWNERS, routes)
- Knowledge graph (services, APIs, dependencies, ADRs)
- Architecture explorer (React Flow)
- Dependency explorer
- Documentation health dashboard
- PR drift alerts (GitHub webhook)
- Unified search across services, APIs, ADRs
- Create a GitHub OAuth App at https://github.com/settings/developers
- Authorization callback URL:
http://localhost:8080/v1/auth/github/callback - Set
GITHUB_CLIENT_IDandGITHUB_CLIENT_SECRETin.env - Optional: configure webhook at
http://localhost:8080/v1/webhooks/githubfor push/PR events
| Endpoint | Description |
|---|---|
GET /v1/orgs/:slug/github/connect |
Start GitHub OAuth |
GET /v1/orgs/:slug/github/repos |
List available repos |
POST /v1/orgs/:slug/github/repos |
Connect repos for scanning |
GET /v1/orgs/:slug/intelligence/architecture |
Architecture graph |
GET /v1/orgs/:slug/intelligence/services |
Discovered services |
GET /v1/orgs/:slug/intelligence/dependencies |
Dependency trees |
GET /v1/orgs/:slug/intelligence/health |
Doc health score |
GET /v1/orgs/:slug/intelligence/search?q= |
Unified search |
GET /v1/orgs/:slug/intelligence/drift |
Drift alerts |
- Go API (auth, orgs, projects, publish, search)
- @frond/cli (init, validate, doctor, docs dev, publish, generate, diff, login)
- Config parser + OpenAPI compiler
- SDK generator (TypeScript, Python)
- Next.js landing + dashboard with demo login + Google OAuth
- Next.js docs renderer with playground
- Docker Compose + CI
- GitHub OAuth + repo connect
- Background repo scanner worker
- Knowledge graph (services, APIs, deps, ADRs)
- Architecture explorer (React Flow)
- Dependency explorer
- Documentation health dashboard
- PR drift alerts (webhook)
- Unified search (services, APIs, ADRs)
See LICENSE.