Ship beautiful docs from your terminal. Write MDX locally, deploy with one command.
Blode.md is a multi-app documentation platform β marketing in apps/web, tenant docs in apps/docs, dashboard/auth in apps/dashboard, and a Hono API behind them.
| App | Description | Port |
|---|---|---|
apps/web |
Next.js marketing frontend and rewrite entrypoint for /docs, /app, and /oauth |
portless |
apps/docs |
Next.js docs frontend with dynamic tenant routing and MDX rendering | 3001 |
apps/dashboard |
Next.js dashboard and auth frontend for /app and /oauth |
3002 |
apps/api |
Hono REST API for multi-tenant data, content, and Vercel Blob storage | 4000 |
apps/cli |
CLI tool for deploying docs content via the API | β |
| Package | Description |
|---|---|
@repo/contracts |
Zod schemas shared between frontend and API |
@repo/db |
Drizzle ORM setup and PostgreSQL migrations |
@repo/models |
Core data models |
@repo/common |
Shared utilities |
@repo/validation |
Validation logic built on @repo/models |
@repo/ui |
Shared React component library |
@repo/api-client |
HTTP client utilities for consuming the API |
@repo/prebuild |
Pre-build YAML processing |
@repo/previewing |
Preview data handling |
@repo/typescript-config |
Shared tsconfig.json configurations |
- Node >= 18
- npm 10.9.3
npm install
cp .env.example .env.local # fill in DATABASE_URL, BLOB_READ_WRITE_TOKEN, etc.
npm run dev # web β portless blodemd.localhost, docs β :3001, dashboard β :3002, api β :4000# All apps
npm run dev
# Single app
npx turbo run dev --filter=web
npx turbo run dev --filter=docs
npx turbo run dev --filter=dashboard
npx turbo run dev --filter=api
# Build all
npm run buildnpm run test # full suite: unit β component β integration β smoke β e2e
npm run test:unit # Vitest unit tests
npm run test:component # Vitest component tests
npm run test:integration # Vitest integration tests
npm run test:smoke # Vitest smoke tests
npm run test:e2e # Playwright end-to-end testsnpm run fix # Ultracite auto-fix (lint + format)
npm run check # Ultracite check without fixing
npm run check-types # TypeScript type check across all workspaces
npm run lint # Oxlint across monorepo
npm run format # Oxfmt across monorepoInstall the slash command for Claude Code or any skills.sh-compatible agent:
npx skills add mblode/blodemd -g --all -yScaffold and deploy docs with natural language:
/blodemd new my-project --template starter
/blodemd push docs/ --project my-project