You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: carve framework packages into a Frameworks section, regroup the Guide
The three `@devframes/*` framework packages no longer sit under "Helpers"
(they're first-class packages, not `devframe/*` helpers) — they move into a
new top-level **Frameworks** section (`docs/frameworks/`) with a cross-
framework overview plus one page each for Vite / Nuxt / Next, organized
around the two scopes (`/dev-spa` authoring one devframe, `/hub` mounting a
hub). "Helpers" keeps just the genuine helpers (utilities + recipes).
Also breaks the flat 21-item Guide sidebar into labelled subsections
(Fundamentals / Client & Security / JSON-Render / Hub / Recipes & Advanced)
— the top-nav dropdown still renders the flattened list. Renames the
Adapters "Vite" entry to "Vite DevTools" to disambiguate the external
`@vitejs/devtools-kit` adapter from `@devframes/vite`, and updates every
cross-link to the moved pages.
This PR was created with the help of an agent.
The framework packages — [`@devframes/vite`](./vite), [`@devframes/nuxt`](./nuxt), and [`@devframes/next`](./next) — integrate devframe with a specific meta-framework's dev server. Each one splits into **two clearly-scoped subpaths**, because you're always doing one of two distinct jobs:
8
+
9
+
| Scope | Subpath | You are… |
10
+
|-------|---------|----------|
11
+
|**dev-spa**|`.../dev-spa`| building & dev-serving a **single devframe's SPA** with that tool |
12
+
|**hub**|`.../hub`| mounting a whole **[devframes-hub](/guide/hub)** (many integrations) inside that tool |
13
+
14
+
The bare package root (`@devframes/vite`, `@devframes/nuxt`, `@devframes/next`) has no export — it throws with a pointer to the two subpaths, so an accidental bare import fails loudly instead of resolving to nothing.
The `dev-spa` scope is for when the thing you're building **is** a devframe — you author its UI with Vite/Nuxt/Next and want its RPC backend running during development. See each package's page for the details; for the framework-neutral CLI/build/embedded outputs, reach for the [adapters](/adapters/) instead.
25
+
26
+
## hub: mount a devframes-hub
27
+
28
+
The `hub` scope mounts an [`@devframes/hub`](/guide/hub) — many integrations under one namespace, one merged RPC registry — inside the tool's dev server. Each `hub` entry wraps [`initHub`](/guide/hub-initiate), defaults the UI slot to [`@devframes/hub-ui`](/guide/build-your-own-hub-ui)'s `createUi()` (override with `ui`, or `ui: false` for a headless hub you drive with the matching `/hub/client` helper), and mounts everything behind one catch-all.
29
+
30
+
-**[Vite](./vite#mounting-a-hub)** — `viteDevframeHub()` shares Vite's dev server and injects the floating dock.
31
+
-**[Nuxt](./nuxt#mounting-a-hub)** — the hub Nuxt module wires the Vite hub plugin into `nuxt dev`.
32
+
-**[Next](./next#mounting-a-hub)** — `nextDevframeHub()` serves the hub from one App Router route on a side-car socket.
33
+
34
+
Vite and Nuxt already have native hub viewers ([Vite DevTools](https://devtools.vite.dev), [Nuxt DevTools](https://devtools.nuxt.com)) that integrate the same hub protocol, so `@devframes/vite/hub` and `@devframes/nuxt/hub` print a one-time recommendation to prefer those (silence with `{ quiet: true }`). Next has no native counterpart, so `@devframes/next/hub` stays quiet.
Copy file name to clipboardExpand all lines: docs/frameworks/next.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,12 +2,12 @@
2
2
outline: deep
3
3
---
4
4
5
-
# Next Helper
5
+
# Next
6
6
7
7
> [!WARNING]
8
8
> Experimental. `@devframes/next`'s API is still settling — expect changes before a stable release.
9
9
10
-
`@devframes/next` hosts devframes from a Next.js App Router app. Next runs on webpack/Turbopack rather than Vite, so it hosts through a route handler instead of the [Vite Bridge](./vite-bridge): the package serves each devframe's SPA and its `__connection.json` from a single `fetch` handler your catch-all route delegates to, reusing devframe's own [`serveStaticHandler`](/adapters/dev) for SPA fallback, content types, and path-traversal guarding.
10
+
`@devframes/next` hosts devframes from a Next.js App Router app. Next runs on webpack/Turbopack rather than Vite, so it hosts through a route handler instead of the [Vite](./vite): the package serves each devframe's SPA and its `__connection.json` from a single `fetch` handler your catch-all route delegates to, reusing devframe's own [`serveStaticHandler`](/adapters/dev) for SPA fallback, content types, and path-traversal guarding.
11
11
12
12
`@devframes/next` splits into two scopes: `@devframes/next/dev-spa` (author one devframe with Next) and [`@devframes/next/hub`](#mounting-a-hub) (mount a whole devframes-hub). The bare `@devframes/next` import throws with a pointer to both.
13
13
@@ -140,6 +140,6 @@ Unlike Vite and Nuxt, Next has no native hub viewer, so this scope prints no rec
140
140
141
141
## See also
142
142
143
-
-[Vite Bridge](./vite-bridge) — the equivalent for Vite-based hosts
143
+
-[Vite](./vite) — the equivalent for Vite-based hosts
144
144
-[Hub](/guide/hub) — `initHub`, `ctx.install`, and `DevframeHost`
145
145
-[hub-next](/examples/hub-next) — a full working host
Copy file name to clipboardExpand all lines: docs/frameworks/nuxt.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
outline: deep
3
3
---
4
4
5
-
# Nuxt Helper
5
+
# Nuxt
6
6
7
7
The `@devframes/nuxt/dev-spa` module wires a Nuxt-built SPA as a devframe client, and optionally serves the dev-time RPC bridge alongside `nuxt dev`. It runs inside the Nuxt app that consumes your devframe.
Copy file name to clipboardExpand all lines: docs/frameworks/vite.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
outline: deep
3
3
---
4
4
5
-
# @devframes/vite
5
+
# Vite
6
6
7
7
`@devframes/vite` splits into two scopes: **`@devframes/vite/dev-spa`** (this page — dev-serve one devframe's SPA with Vite) and [**`@devframes/vite/hub`**](#mounting-a-hub) (mount a whole devframes-hub inside a Vite app). The bare `@devframes/vite` import throws with a pointer to both.
Copy file name to clipboardExpand all lines: docs/guide/migration-0.9.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -279,7 +279,7 @@ export default defineConfig({
279
279
})
280
280
```
281
281
282
-
`@devframes/vite` (and `@devframes/nuxt` / `@devframes/next`) take `@devframes/hub` and `@devframes/hub-ui` as **optional** peers — only the `/hub` scope needs them. Install `vite` as a peer as before. See [`@devframes/vite`](/helpers/vite-bridge) for the full reference.
282
+
`@devframes/vite` (and `@devframes/nuxt` / `@devframes/next`) take `@devframes/hub` and `@devframes/hub-ui` as **optional** peers — only the `/hub` scope needs them. Install `vite` as a peer as before. See [`@devframes/vite`](/frameworks/vite) for the full reference.
283
283
284
284
## `@devframes/nuxt` and `@devframes/next` split into `/dev-spa` and `/hub`
Vite and Nuxt already have native hub viewers, so `@devframes/vite/hub` and `@devframes/nuxt/hub` print a one-time recommendation to prefer [Vite DevTools](https://devtools.vite.dev) / [Nuxt DevTools](https://devtools.nuxt.com) (silence with `{ quiet: true }`); `@devframes/next/hub` has no native counterpart and stays quiet. See [`@devframes/vite`](/helpers/vite-bridge#mounting-a-hub), [`@devframes/nuxt`](/helpers/nuxt#mounting-a-hub), and [`@devframes/next`](/helpers/next#mounting-a-hub).
328
+
Vite and Nuxt already have native hub viewers, so `@devframes/vite/hub` and `@devframes/nuxt/hub` print a one-time recommendation to prefer [Vite DevTools](https://devtools.vite.dev) / [Nuxt DevTools](https://devtools.nuxt.com) (silence with `{ quiet: true }`); `@devframes/next/hub` has no native counterpart and stays quiet. See [`@devframes/vite`](/frameworks/vite#mounting-a-hub), [`@devframes/nuxt`](/frameworks/nuxt#mounting-a-hub), and [`@devframes/next`](/frameworks/next#mounting-a-hub).
Build with `nuxt build` and point `cli.distDir` at `./dist/public`. The SPA discovers its effective base at runtime — no `--base` rewrite needed. See the [Nuxt helper docs](/helpers/nuxt) for the full reference.
101
+
Build with `nuxt build` and point `cli.distDir` at `./dist/public`. The SPA discovers its effective base at runtime — no `--base` rewrite needed. See the [Nuxt docs](/frameworks/nuxt) for the full reference.
Copy file name to clipboardExpand all lines: docs/helpers/index.md
+4-5Lines changed: 4 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,15 +4,14 @@ outline: deep
4
4
5
5
# Helpers
6
6
7
-
Helpers are the optional, opt-in surface around the core `defineDevframe` API: small wrappers for runtime integration, prebuilt RPC recipes, and a curated set of low-level utilities. None of them are required to ship a devframe — reach for them when they match the shape of what you're building.
7
+
Helpers are the optional, opt-in surface around the core `defineDevframe` API: prebuilt RPC recipes and a curated set of low-level utilities, all served from the `devframe` package itself. None of them are required to ship a devframe — reach for them when they match the shape of what you're building.
8
8
9
9
| Helper | Entry | What it does |
10
10
|--------|-------|--------------|
11
11
|[Utilities](./utilities)|`devframe/utils/*`| Bundled small utilities — terminal colors, hashing, editor launch, structured-clone serialization, and more. |
12
-
|[Vite Plugin](./vite-bridge)|`@devframes/vite`| Vite plugins for mounting a devframe inside any Vite-based host (Astro, SolidStart, plain Vite) — a static mount, an RPC bridge, or a convenience wrapper over both. |
13
-
|[Nuxt Module](./nuxt)|`@devframes/nuxt`| Nuxt module that wires a Nuxt SPA as a devframe client and serves the dev-time RPC bridge. |
14
-
|[Next Helper](./next)|`@devframes/next`| Route-handler host + React client for mounting devframes inside a Next.js App Router app (experimental). |
15
12
|[Common RPC Functions](./common-rpc-functions)|`devframe/recipes/common-rpc-functions`| Prebuilt RPC actions for "open in editor" and "reveal in Finder". |
16
13
|[Interactive Auth](./interactive-auth)|`devframe/recipes/interactive-auth`| Ready-made OTP auth layer — handshake, resolver gate, connect-time trust, and the code/link banner. |
17
14
18
-
Helpers vs. [adapters](/adapters/): an adapter takes a `DevframeDefinition` and deploys it as a runnable surface (CLI, dev server, static build, MCP server). A helper is a smaller piece — a Vite plugin, a Nuxt module, a recipe, a utility function — that you compose alongside an adapter.
15
+
Helpers vs. [adapters](/adapters/): an adapter takes a `DevframeDefinition` and deploys it as a runnable surface (CLI, dev server, static build, MCP server). A helper is a smaller piece — a recipe or a utility function — that you compose alongside an adapter.
16
+
17
+
For integrating a devframe (or a whole hub) with a specific meta-framework's dev server, see the dedicated [`@devframes/*` framework packages](/frameworks/) instead.
0 commit comments