deploy zips your project, uploads it to the Ollie builder for one component or function, and optionally waits for the build. It needs a login and the id of the record you deploy to; it does not read ollie.json.
Output
Without--wait:
--wait, the same object once the build reaches a final state. In a terminal you also see the polling:
FAILED, STOPPED, TIMED_OUT or FAULT exits with code 1. So does Build <id> timed out after 300s; the build itself keeps running, check it with status.
A --dry-run reports bundleSizeBytes, bundleSizeKB, the .ollieignore file used, how many files were excluded and the first 50 of them.
status
id, status, startTime, endTime, resource) and, with --wait, polls it with the same rules as deploy. The build id is in the deploy output and in the component’s Builds tab in the Admin, where the log also lives (see Managing Components).
What goes into the bundle
The zip is built from the whole project root, not only from the deployed folder, so a component can import shared code from anywhere in the project:- Always excluded:
node_modules,.git,.next,dist,build, and*.d.ts,*.tsbuildinfo,*.js.mapfiles. Symlinks are skipped. - Root files are included only with source or asset extensions (
.ts,.tsx,.js,.jsx,.json,.css,.scss,.less,.svg,.png,.jpg,.jpeg,.gif,.webp,.ico, fonts). Dotfiles in the root are included unless listed in.ollieignore. - A generated entry point is added:
index.tsxre-exporting the default export ofcomponents/<name>for a component, orindex.tsre-exporting the namedhandleroffunctions/<name>for a function. If your project has its own rootindex.tsx, it is dropped with a warning. package.jsonis required and always included.
.ollieignore
A gitignore-style file in the project root. Patterns are matched against paths inside the zip. The scaffold ships one with.cache, .turbo, coverage, .agents, .claude, .vscode, .mcp.json and .gitignore.
.ollieignore
package.json, index.ts and index.tsx are kept even when a pattern matches them (the CLI warns).
Size limit
The builder rejects uploads over 10 MB.deploy --dry-run shows the size before you upload; the usual fix is to ignore folders the component does not need.
Related
- Managing Components: builds and roll back in the Admin
- Roll Back a Component: point the slot back at an earlier build
- Functions: what a deployable function looks like