Catalyzer
Architecture

Overview

Monorepo layout, workspace graph, and Turborepo pipeline.

The root monorepo. pnpm workspaces with Turborepo orchestration, two apps and six packages.

Directory Structure

pnpm-workspace.yaml
packages:
  - "apps/*"
  - "packages/*"

Internal packages reference each other with "workspace:*" in package.json. pnpm resolves these to the local workspace copy at install time, so changes are picked up immediately without publishing.

turbo.json
pnpm-workspace.yaml
package.json
tsconfig.json

Dependency Graph

Solid arrows are runtime dependencies. Dashed arrows are dev/tooling dependencies (every package uses the shared TypeScript configs). The cli package is independent and published to npm separately. core depends on ui for design system primitives.

Turborepo Pipeline

turbo.json
{
  "$schema": "https://turbo.build/schema.json",
  "ui": "tui",
  "tasks": {
    "build": {
      "dependsOn": ["^build"],
      "inputs": ["$TURBO_DEFAULT$", ".env*"],
      "outputs": [".next/**", "!.next/cache/**"]
    },
    "typecheck": {
      "dependsOn": ["^typecheck"]
    },
    "dev": {
      "cache": false,
      "persistent": true
    },
    "clean": {
      "cache": false
    }
  }
}
TaskBehavior
buildBuilds dependencies first (^build), caches .next output
devParallel dev servers, no caching
typecheckType-checks dependency packages first, cacheable
cleanRemoves build artifacts, not cached

Code Quality & Formatting

Instead of delegating linting and formatting to individual packages via Turborepo, Catalyzer uses Biome (via the Ultracite preset) as a single root-level tool.

  • Single Source of Truth: The biome.jsonc file at the root dictates all rules.
  • Zero Config for Packages: Workspaces don't need their own linting dependencies or configs.
  • Speed: Biome processes the entire monorepo in milliseconds natively, bypassing the need for Turborepo's orchestration and caching for these specific tasks.

Run pnpm check to catch issues, or pnpm fix to auto-format and resolve them.

Root Files

FilePurpose
turbo.jsonTask pipeline, caching rules
pnpm-workspace.yamlWorkspace declarations
package.jsonRoot scripts, devDependencies, engine constraints
tsconfig.jsonTypeScript project references
biome.jsoncRoot Biome configuration
release-please-config.jsonVersioning and changelog automation
.release-please-manifest.jsonCurrent version for each tracked package

On this page