Codebase
Monorepo Structure
Workspace layout, build pipeline, and conventions for adding code in ship-ai.
ship-ai is a workspace monorepo managed by Bun and Turborepo.
Design rule
Keep reusable domain logic in packages/* and keep apps/* focused on entrypoints, route orchestration, and app-specific UI.
Top-Level Layout
app/
admin/
web/
auth/
billing/
db/
features/
jobs/
memory/
storage/
stripe/
tracing/
ui/
typescript/
turbo.json
package.json
ship-ai/
apps/
app/
admin/
web/
packages/
analytics/ auth/ billing/ branding/ converter/ db/ email/
features/ i18n/ jobs/ kv/ logger/ memory/
storage/ stripe/ tracing/ ui/
tooling/
typescript/
docs/
docker/
scripts/
turbo.json
package.json
docker-compose.ymlWorkspace Model
Root package.json declares:
workspaces:apps/*,packages/*,tooling/*- root scripts for orchestration (
dev,build,typecheck,lint,db:*,docker:*) - root package as private and tool-oriented
Key expectation from project docs: add runtime dependencies to the specific app/package that needs them, not to root.
Turbo Pipeline Behavior
turbo.json defines task-level behavior:
builddepends on upstream^build, has explicit env inputs, caches outputsdev,worker,worker:dev,test,clean,startare non-cached/persistent as appropriatetypecheckdepends on^topo.envis included in relevant task inputs/global dependencies
This means changes in shared packages correctly invalidate dependent app tasks, and local dev runs stay uncached where needed.
App and Package Boundaries
apps/*own UI routes, request entrypoints, and app-specific orchestration.packages/*own reusable capabilities (db, auth, billing, jobs, tracing, storage, ui, and more).- Cross-app shared logic should generally live in
packages/*unless it is tightly app-specific.
Infrastructure Shape
docker-compose.yml defines local backing services:
- Postgres, Redis, MinIO (+ bucket bootstrap), MailDev
- SearXNG, unstructured-api, Qdrant, Neo4j, converter
- optional
workerservice profile for BullMQ workers
Core product can run in reduced mode by disabling optional feature/service flags.