Date: 2025-08-25
Accepted (Nx tooling choice superseded by ADR-0010)
Most of the context is in here
TL;DR: As we're merging more subprojects like litegraph, devtools, and soon a fork of PrimeVue, a monorepo structure will help a lot with code sharing and organization.
For more information on Monorepos, check out monorepo.tools
- Swap out NPM for PNPM
- Add a workspace for the PrimeVue fork
- Move the frontend code into its own app workspace
- Longer term: Extract and reorganize common infrastructure to take advantage of the new monorepo tooling
PNPM and PNPM workspaces
For monorepo management, I'd probably go with Nx, but I could be conviced otherwise. There's a whole list here if you're interested.
Update: The Nx tooling choice has since been reversed. See ADR-0010: Remove Nx Orchestration for the migration to direct pnpm workspace scripts and native tool CLIs.
- Adding new projects with shared dependencies becomes really easy
- Makes the process of forking and customizing projects more structured, if not strictly easier
- It could speed up the build and development process (not guaranteed)
- It would let us cleanly organize and release packages like
comfyui-frontend-types
- Monorepos take some getting used to
- Reviews and code contribution management has to account for the different projects' situations and constraints