100% Dioxus SPA: migrate all admin UIs to dioxus-bootstrap-css native islands #104
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Vision
Make Hero OS a true 100% Dioxus WASM SPA. Every page — shell, islands, and admin dashboards — renders as a native Dioxus component using dioxus-bootstrap-css. No iframes, no Askama, no server-rendered HTML in the user experience. This unlocks mobile (iOS/Android), desktop, and PWA from the same codebase.
Current state
_appcratesAll 14 admin UIs already use Bootstrap 5.3 HTML. dioxus-bootstrap-css provides a 1:1 mapping from Bootstrap HTML to Dioxus RSX components. The translation is structural, not architectural.
Prior art
A previous migration attempt (backup: 2026-03-19) created 17
_ui_wasmDioxus crates for admin services. The code quality was good and the pattern worked (dual-mode: Dioxus WASM or Askama fallback). It was shelved to prioritize feature work. The backup serves as reference for component patterns but is now stale (features shipped since: JWT auth, TTS trackbar, voice pipeline, conversations, etc.).Architecture: additive, zero-risk
Key principle: we never modify existing
_uicrates. The migration is 100% additive.In hero_os_app, feature-gated switch:
make dist,make pack,make smoke— all work exactly as today14 admin UIs — migration complexity
Simple (6): Standard CRUD — Card, Table, Form, Button. Mechanical translation. ~1 session each.
Medium (5): More complex layouts but still standard Bootstrap patterns. ~1-2 sessions each.
Hard (2-3): Complex JS logic (canvas, terminal, live streaming). May need web-sys bindings or remain as special-case iframes.
Phase plan
Phase 0: Foundation
dioxus-bootstrap-css = "0.3"to hero_os_appBootstrapHead+ThemeProviderto shell root_appcrate pattern with one simple service (hero_auth)Phase 1: Simple services (6 services)
Phase 2: Medium services (5 services)
Phase 3: Complex services + compute
Phase 4: Shell + islands polish
Phase 5: Multi-platform
dx build --platform desktopworksdx build --platform iosworksdx build --platform androidworksdioxus-bootstrap-css component mapping
Bootstrap HTML → dioxus-bootstrap-css RSX (1:1):
50+ components available. Zero JavaScript — all interactivity via Dioxus signals.
What this enables
Color::Primarynot"btn-primry"typosThemeProvidercontrols everythingRules
_uicrates — additive onlySigned-off-by: mik-tf