The all-in-one app at app.${domain} is a minimal hub: only the base
module (auth, profile, relays, PWA, image upload) plus a chakra-
themed entry point linking out to the seven standalone module PWAs
(market, sortir, wallet, chat, forum, tasks, castle), with an
eighth tile reserved for a forthcoming restaurant module.
UI:
- 2-column grid of 8 module tiles with Lucide icons, occupying the
full viewport between the title and the bottom dock. Status hints
(alpha/beta/coming soon) shown beneath each label.
- Faint chakra-mandala column rendered behind the tiles (peeks
through their translucent backgrounds), plus a subtle vertical
hue gradient (red at the bottom → violet at the top) — the chakras
inform the visual frame without forcing a 1:1 module mapping.
- Bottom dock with system-level controls: Profile (Sheet hosting
the existing ProfileSettings.vue), Theme (light/dark/system),
Language (uses available locales), and a Currency placeholder.
- Each tile is a link to VITE_HUB_<NAME>_URL with the user's
lnbits_access_token appended as ?token= so the destination logs
in via the existing acceptTokenFromUrl() relay.
Wiring:
- src/App.vue: stripped to the same minimal shell as the standalone
apps (no AppLayout/AppSidebar — the hub is the navigation).
- src/app.ts: only base module is registered. Hub is the / route.
- src/app.config.ts: only base module config remains.
- public/chakras/*.svg: 7 chakra mandala SVGs copied from the legacy
frontend (Atitlan.io).
- nginx.conf.example: rewritten with one server block per subdomain
pointing at its own dist-<name>/ output.
Closes #26.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
108 lines
9.6 KiB
XML
108 lines
9.6 KiB
XML