Files
ComfyUI_frontend/docs/adr/0002-monorepo-conversion.md
Alexander Brown ced62caaa0 ADR: Monorepo Conversion (#5199)
* ADR: Monorepo Conversion

* ADR: Add note about releases like `comfyui-frontend-types`
2025-08-25 14:22:36 -07:00

1.6 KiB

2. Restructure ComfyUI_frontend as a monorepo

Date: 2025-08-25

Status

Proposed

Context

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

Decision

  • 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

Tools proposed

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.

Consequences

Positive

  • 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

Negative

  • Monorepos take some getting used to
  • Reviews and code contribution management has to account for the different projects' situations and constraints