Skip to content

docs(frontend): add Frontend section (BE↔FE bridge, Web Host, authoring)#6

Draft
AndrewKirkovski wants to merge 6 commits into
mainfrom
docs/frontend-section
Draft

docs(frontend): add Frontend section (BE↔FE bridge, Web Host, authoring)#6
AndrewKirkovski wants to merge 6 commits into
mainfrom
docs/frontend-section

Conversation

@AndrewKirkovski
Copy link
Copy Markdown

@AndrewKirkovski AndrewKirkovski commented Jun 2, 2026

Summary

Adds a new Frontend documentation section under en/frontend/, integrating the previously-undocumented Wippy FE ecosystem into the docs site. Wires it into en/manifest.json and updates the two existing FE-adjacent framework docs (views.md, facade.md) to the current model.

Structure (three layers)

  • BE → FE Bridge — registry entries, view.page, view.component, dynamic routing
  • Web Host — overview, facade entry point, bootstrap, multi-panel layout, proxy & isolation, CSS injection, @wippy-fe packages
  • Writing Wippy FE — page apps, web components, proxy API, theming (common + page-app + web-component), build system, host-less mode, compliance checklist, debugging

Diagrams

10 diagrams rendered with beautiful-mermaid. Both .mmd source and generated .svg live together under en/frontend/diagrams/ (regenerate via the tool in .local/diagrams/). Includes separate diagrams for the two embedding paths: facade JS-module flow and manual iframe @gen2-chat handshake.

Accuracy

Key facts verified against the unpacked wippy/views vendor source:

  • The facade delivers the Web Host via module.js / managed-layout.js (takes over the page) — not an iframe shell. iframe.html + SetConfig PostMessage is the manual, facade-less embedding path.
  • fe_mode is a current facade parameter (compat default, managed early-access).
  • Proxy injection: package.json camelCase (author default) + YAML proxy: snake_case (operator override); host normalizes, YAML wins.
  • view.component announced and auto_register both default false.

Notes

  • English (en/) only for now; other languages deferred until content is stable.
  • Local preview is docsify (relativePath: true); links are file-relative. Dev artifacts (en/index.html, en/_sidebar.md, .local/, .cache/) are gitignored.

Opened as draft for review.

… and authoring

Adds a new `en/frontend/` documentation section with three layers:

- BE → FE Bridge: registry entries, view.page, view.component, dynamic routing
- Web Host: overview, facade entry point, bootstrap, multi-panel layout,
  proxy & isolation, CSS injection, @wippy-fe packages
- Writing Wippy FE: page apps, web components, proxy API, theming
  (common + page-app + web-component), build system, host-less mode,
  compliance checklist, debugging

Also includes 10 beautiful-mermaid diagrams (.mmd source + .svg) and wires
the section into en/manifest.json. Updates framework/views.md and
framework/facade.md to the current model (facade loads a JS module that
takes over the page; iframe.html is the manual facade-less embedding path)
and cross-links them to the new Frontend docs.

Key facts verified against the wippy/views vendor source:
- facade delivers via module.js / managed-layout.js (not an iframe shell)
- fe_mode is current (compat default, managed early-access)
- proxy injection: package.json camelCase + YAML proxy: snake_case override,
  host normalizes, YAML wins
- view.component announced & auto_register both default false
Updates the section title in the manifest nav, the overview headings and
cross-link, and the dynamic-routing diagram alt text. Folder path
(be-fe-bridge/) is unchanged.
…ntends)

Renames the FE docs vocabulary to a micro-frontend-native model so the
pipeline reads cleanly: Frontend Facade -> Wippy Web Host ->
(Micro Frontend Apps + Web Components).

- "Backend-Frontend Bridge" -> "Frontend Registry" (it's the wippy/views
  registry, not a facade synonym); folder be-fe-bridge/ -> frontend-registry/
- "Writing Wippy FE" -> "Wippy Micro Frontends"; folder writing-fe/ ->
  micro-frontends/
- "page app" -> "micro frontend app" in prose; page-app.md ->
  micro-frontend-app.md, page-app-theming.md -> micro-frontend-app-theming.md,
  wc-theming.md -> web-component-theming.md
- Manifest titles/paths, all cross-links, and the fe-arch-overview +
  frontend-registry diagrams updated to match; diagrams regenerated.

Literal API/code nouns (view.page, view.component, /api/public/pages/list,
mountRoute, WPage) and the host.bridge channel API are left untouched. The
registry section keeps view-page.md/view-component.md since they document the
literal entry types. All links validated; manifest is valid JSON.
Independent review pass after the Set A terminology rename. Fixes:

- Catch mixed-case "Page app"/"Page apps" that the case-sensitive first
  pass missed (~18 across overview, proxy-api, packages, compliance,
  micro-frontend-app). This also realigns the compliance-checklist §3 TOC
  anchor with its heading.
- view-page.md / view-component.md H1 headings → "Micro Frontend Apps
  (view.page)" / "Web Components (view.component)" to match the manifest.
- bootstrap.md: PostMessage example uses the wire value `set-config`
  (was the enum name `SetConfig`).
- facade.md: de-contradict the `fe_entry_path` row (scope it to the iframe
  embedding mode; the current facade loads the JS-module entry).
- views.md: clarify the registry-entry frontends bullet (was conflating
  view.page apps and view.component web components).
- css-injection.md: stale cross-ref label "Pages (view.page)" → "Micro
  Frontend Apps (view.page)".
- host-less-mode.md: note customCss/customVariables are enabled by default
  (so apps relying only on overrides misleadingly appear to work).

Confirmed false positives from the review (no change): apiRoutes appears in
both AppConfig (top-level) and HostConfig per source; package.json wippy.type
is correctly "page". All links validated; manifest valid; TOC anchors match.
…ade facts

- Standardize all Web Host CDN URLs to the `<release-tag>` placeholder
  (the deploy path is /<git-release-tag>/; docs previously showed three
  different example tags). Drops concrete version examples.
- facade.md: `session_type` corrected to `non-persistent | cookie` framed
  as auth-token storage (was wrongly "persistent" / "chat session
  persistence"). Verified against gen-2-chat types.ts + lib.ts.
- facade.md: `fe_facade_url` default shown as the `<release-tag>` placeholder.
- web-host/overview.md: simplify the CDN tag explanation.

Verified-correct, no change: `@gen2-chat` is the real default message type
(IFRAME_MESSAGE_TYPE = … || '@gen2-chat'); hostConfig.session.type values
are non-persistent|cookie. All links validated; manifest valid.
New quickstart page with two minimal end-to-end examples drawn from the
public wippyai/app-template repo:
- a Vue Micro Frontend App (view.page): package.json wippy block, getWippyApi
  bootstrap with mandatory route sync, and the _index.yaml registration.
- a Vue Web Component (view.component): reaction-bar — WippyVueElement +
  define(import.meta.url, …), useComponentProps/useComponentEvents, and the
  _index.yaml autoload registration.

Each links to the full source on github.com/wippyai/app-template and to the
deep-dive scaffold docs. Includes an "explore more" table of the repo's other
web component samples. Wired into the manifest (after Overview) and linked
from the section overview.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant