Build Pipeline

Exact manic build ordering — lint, Bun.build graphs, plugin hooks, minify, providers — grounded in packages/manic/src/cli/commands/build.ts.

Build pipeline

Manic does not ship Vite, Webpack, or Turbopack. manic build (packages/manic/src/cli/commands/build.ts) orchestrates oxlint, writeRoutesManifest, three Bun.build graphs (client → optional API → server), oxc-minify, and finally provider.build.


Ordering (authoritative)

Initializing diagram...

Stage reference

StepSource artifactNotes
1 · Lintnode_modules/.bin/oxlint else oxlint on PATH; oxlint . (no enforced --config — align CI with manic lint, see Caveats)
2 · Clean<outdir>rm -rf, mkdir -p …/client
3 · Bun plugin registrationplugins[].preload modulesImports default or plugin BunPluginBun.plugin(...)
4 · Manifestapp/~routes.generated.tswriteRoutesManifest without touch
5 · Client bundleapp/main.*<outdir>/clientoxcPlugin(), bun-plugin-tailwind, hashed naming
6 · HTMLapp/index.html<outdir>/client/index.htmlRewrites Tailwind placeholder / main.tsx script references
7 · Plugin buildOptional emits under client/discoverRoutes() snapshot → pageRoutes; apiRoutes forced []
8 · API bundlesapp/api/**/index.tsSkipped when mode === 'frontend' or folder missing
9 · RFC catalog<outdir>/client/.well-known/api-catalogWritten when ≥1 API bundle exists
10 · Server bundle~manic.tsserver.jsRewrites HTML import + temp _entry.ts
11 · MinifyJS under client / api / dist rootminifySync, es2022, mangle
12 · ProvidersAdapter-specific dirsExecutes after minification completes

Output layout (default build.outdir === '.manic')

PathContents
.manic/client/Hashed main-*.js, chunks/, assets/, index.html, optional .well-known/
.manic/api/One *.js per app/api/**/index.ts entry
.manic/server.jscreateManicServer bootstrap

Providers may synthesize extra directories (.vercel/output, _worker.js, etc.) beside this tree.


Failure modes engineers debug first

SymptomLikely cause
Lint exits 1 before bundlesoxlint failures across repo
app/main.tsx not foundResolver cannot find ./app/main entry
~manic.ts not foundMissing server entry at repo root
API routes missing in prodmode: 'frontend' or files not named index.ts
Plugins diverge dev/prodconfigureServer without build emits

Debugging builds today

There is no manic build --debug flag in the CLI — instrumentation means reading build.ts logs (● Bundling…), inspecting <outdir>, or temporarily flipping build.minify / commenting stages locally.


See also

On this page