Appearance
Vue · Nuxt · Web components
One Host owns the shell. Every module plugs in and develops on its own. Shared UI, cookies, JWT, configs. Making the app modular, composable, and maintainable.
In a monolith every feature lands in the same tree, and every branch has to get back onto the same main. Two of these five make it. The other three touch the files everyone touches, and stop.
mainIn a Mono-Repo, the modular approach minimizes the conflict down to a single developer. You want to take over a specific module? That's fine — the others still run, even in parallel.
HostBuilt on top of Lit Web Components, can be used anywhere and anytime. Fully general and basic components, can be easily customized to your own style.
We cover it — define it inside our mono.config.ts, used anywhere across your ecosystem.
One fetcher for plain REST, one for OData — same call shape, same config, same auth. Press Run: these hit live public APIs from this page.
You just need to configure it in one config. Declare each app once, run pnpm mono:sync, and every one of them lands in .mono/apps/ — no git submodules to babysit.
apps says what to clone; extends says what is switched on. Take a whole module, take only its components, or comment it out and it stays cloned but wired to nothing.
llms.txt helps an AI agent explore the documentation from its markdown version. Usually an agent goes to the web and reads the whole HTML — this time the agent only reads completely readable text.
Read https://mono-libs.netlify.app/llms.txt first, then open the
Table, DataSource and Config pages it lists.
In my Vue Remote, build a User master page:
- src/pages/master/user.vue
- controlMonoTable<UserRow> with keyExpr 'UserName' and
searchValue ['UserName', 'FirstName', 'LastName']
- feed it from the myOdata entry in mono.config.ts using
monoCreateFetcher, so search, sort and paging all run
server-side
- columns: UserName, FirstName, LastName, Gender
- <mono-table-search> in the toolbar, <mono-table-paging>
underneath at 25 rows per page, <mono-table-loading>
inside the table
- register it in menu[] as { title: 'User', url:
'/master/user', icon: 'i-mdi-account-group' } so the
Host picks it up