Alternative structures

Filesystem alternatives

StructureStrengthCostDecision
videos/ at repository rootClear first-class convention; works with or without Next.jsAdds another root source folderDefault
src/videos/Familiar to libraries using src/Weakens the visible conventionConfigurable
app/videos/Colocates with Next.js routesConfuses URLs with compositionsNot recommended
packages/videos/Strong monorepo isolationHeavy for small projectsSupported as a configured root
One package per videoIndependent deployments and ownershipExcessive setup and poor sharingLarge-studio option

Authoring alternatives

video.tsx exports static metadata and a React timeline. This is Odori's default because components compose naturally and React remains visible.

Registration alternatives

Runtime filesystem globbing is concise but bundler-specific. Manual registration is portable but repetitive and easy to drift. Odori generates a static import manifest, retaining portability and code splitting while keeping registration out of user source.

Rendering alternatives

  • Local Chromium and FFmpeg are ideal for development and CI.
  • Dedicated workers provide predictable hosted rendering and isolation.
  • Serverless rendering scales well for bursty workloads but needs chunking, artifact assembly, and provider-specific operations.
  • Client-side encoding can help with lightweight cuts but is not the default for consistent production codecs, fonts, and large assets.

The authoring contract remains deployment-independent. Preview and export share the same frozen manifest regardless of renderer.

On this page