Providers contract

ManicProvider.build context dist clientDir serverFile apiEntries after minification.

Providers (ManicProvider.build)

Deployment adapters live in packages/providers and consume the artifacts manic build leaves on disk.


Interface

From packages/manic/src/config/index.ts:

interface ManicProvider {
  name: string;
  build(context: BuildContext): Promise<void>;
}

interface BuildContext {
  dist: string;
  config: ManicConfig;
  apiEntries: string[];
  clientDir: string;
  serverFile: string;
}

When **build() runs

After oxc-minify completes on <outdir>/client, <outdir>/api, and server.js — providers observe final bytes (Build pipeline).

apiEntries lists app/api/**/index.ts source paths collected during bundling (empty in frontend mode).


Responsibilities

Adapter concernTypical output
Static mappingCopy/sync clientDir into platform CDN roots
Server mappingWrap serverFile or emit workers/functions
Metadata.vercel/output, wrangler.toml, netlify.toml adjunct files

Providers must not reimplement plugin logic — they package what plugins + createManicServer already produced (engineering manual).


See also

On this page