Package a ZIP
What validators check before your package is accepted.
Recommended layout
my-template/
package.json
remotion.config.ts
src/
Root.tsx
Composition.tsx
public/
preview.mp4 # recommended for autoplay
README.mdRequired
- Valid .zip archive
package.jsonwith a Remotion dependency (remotionor@remotion/*)- Remotion entry such as
src/Root.tsxorsrc/index.tsx - No
node_modules/in the ZIP - Under size limit (default 200MB)
Recommended
- Short silent
public/preview.mp4orpreview.giffor storefront autoplay - README with install and composition names
- No secrets /
.envfiles
Safety limits
- Compressed ZIP under platform max (default ~200MB)
- Uncompressed total and per-file caps (zip-bomb protection)
- Entry count capped (thousands of files rejected)
- Paths with
../ absolute escapes should be avoided (buyers extract locally via CLI)
Buyer-facing polish
- Stable slug — CLI users pin it forever
- README: Node version,
npx remotion studio, composition ids, main props - Dark-friendly preview (catalog is dark UI)
- Tech/SaaS demos sell better than generic loops on Remotemp
If validation fails
The UI and Upload API return a clear error list. Fix the package and re-upload. A bad ZIP never overwrites a previously good version.
Note: we validate structure, not every runtime bug. Broken runtime code may still pass static checks — always test locally with Remotion Studio before submit.