System architecture
A single Viite Platform API (Hono, port 3000) fronts every vertical. Clients — the React dashboard and the CLI — talk to it through @abeauvois/platform-sdk. A durable pg-boss queue drives the unified Job engine, and everything persists to PostgreSQL.
┌─────────────────────────────────────────────────────────────┐│ CLIENTS ││ Dashboard (React + Vite) CLI (cleye) ││ @abeauvois/platform-sdk @abeauvois/platform-sdk ││ @abeauvois/platform-ui @abeauvois/platform-sdk-cli │└───────────────────────────┬─────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────┐ │ Viite Platform API │ │ (Hono, Port 3000) │ │ │ │ Auth (better-auth) Config / Settings │ │ Jobs (presets, schedules, workers, │ │ StepRegistry) │ │ Ingestion (Gmail / web / CDP scraper) │ │ Social Blog Tasks Quotes Bookmarks │ │ Classifieds Notion export Gamification │ │ Skills Triage Activity Observation │ │ Bots (OpenClaw) Artifact (unified store) │ │ │ │ ┌───────────────────────────────────────┐ │ │ │ pg-boss (durable job queue) │ │ │ └───────────────────────────────────────┘ │ └───────────────────────┬─────────────────────┘ │ ▼ ┌─────────────────────────────────────────────┐ │ PostgreSQL Database │ │ Users & Sessions Jobs & Schedules │ │ Social / Blog / Artifact drafts │ │ Tasks Quotes Bookmarks Settings │ │ Ingestion watermarks Observations │ │ pgboss.* (queue, runtime-managed) │ └─────────────────────────────────────────────┘Technology stack
| Category | Technology |
|---|---|
| Runtime | Bun |
| Language | TypeScript |
| Backend | Hono (lightweight HTTP framework) |
| Frontend | React 19 + Vite + TailwindCSS |
| Routing | TanStack Router |
| State | TanStack React Query |
| Database | PostgreSQL + Drizzle ORM |
| Auth | better-auth (with bearer plugin) |
| Job queue | pg-boss (drives the unified Job engine) |
Authentication flow
The Viite Platform API is the central auth provider. On sign-in it issues a session cookie (same-origin web apps) and a bearer token (CLI / cross-origin). userId is threaded through every vertical’s repositories for multi-tenancy — see Tenancy.
Continue with the hexagonal model that keeps the domain infrastructure-free.