Skip to content

Setup โ€‹

The mono ecosystem has two roles: a Host and one or more Remotes (see Getting Started). The Host owns the shared shell; a Remote adds its own pages and plugs into it.

A Host is Vue or Nuxt โ€” and the Host and its Remote must have the same framework. A Vue pair (Vue Host + Vue Remote) is joined by mono's own merge; a Nuxt pair (Nuxt Host + Nuxt Remote) by Nuxt's own layer system. Those two choices are the only things that change between setups.

The hybrid pairing โ€” possible, but at your own risk

Joining a Nuxt Host with a Vue Remote is still possible: mono's compat layer (mono.nuxt()) rewrites the host's Nuxt code so the Remote's Vite build can run it, so nothing blocks the combination. It is outside the standard โ€” the Remote ships as a client-rendered island inside a server-rendered shell, and the seams that compat layer papers over (SSR, layouts, routing, state) remain your risk. Prefer the same-framework pairing; take the hybrid only when you knowingly accept those risks.

Build config โ€‹

This page covers one file per app: vite.config.ts for a Vue app, nuxt.config.ts for a Nuxt one. Pick your Host kind below โ€” its file opens, then the Remote that pairs with it. The templates already ship these.

Nothing in these files says whether an app is a Host or a Remote, or which other app it federates. That is declared in mono.config.ts โ€” the build config only wires mono into the bundler.

Which Host are you setting up?

Next steps โ€‹

  • Config โ€” mono.config.ts: the type field, cookies, JWT, and the deploy menu.
  • Sync โ€” how the other app is pulled into .mono/apps/.
  • Environment โ€” secrets and the shared MONO_ prefix.
  • Template Rules โ€” the full rules the AI follows in a Host or Remote.