feat(ui): migrate from React/DaisyUI to Nuxt 4/Customable UI-Kit #352

Merged
jonas.hanisch merged 2 commits from feat/327-333-nuxt-migration into develop 2026-03-02 16:05:09 +00:00
Owner

Summary

Complete migration of packages/ui from React 19 + Vite + DaisyUI to Nuxt 4 + Vue 3 + @customable/ui-kit-vue + @customable/css.

What changed

  • Framework: React 19 → Nuxt 4 (SPA mode, ssr: false)
  • Component Library: DaisyUI 5 → @customable/ui-kit-vue 2.10 + @customable/css 2.10
  • Routing: Manual state-based → Nuxt file-based routing (13 pages)
  • State: React hooks → Vue composables (4 composables)
  • Charts: react-chartjs-2 → vue-chartjs
  • Error Tracking: @sentry/browser → @sentry/vue
  • Build: Vite → Nuxt generate (static output to dist/)

Migration details

  • 13 pages converted (Dashboard, Sessions, Search, Live, Analytics, Insights, Projects, Documents, Tasks, User-Tasks, Workers, Settings, Memories)
  • 23 components converted to Vue SFC
  • 4 composables (useApi, useSSEStream, useWebSocketStream, useBackendReady)
  • CSS compatibility layer with semantic theme tokens and DaisyUI class compat
  • Sentry client plugin with dynamic import
  • Forgejo private NPM registry configured via .npmrc

Build output

All 16 routes prerender successfully. Output goes to dist/ which is served by the backend's Express static middleware — no changes needed there.

Closes #327
Closes #333

## Summary Complete migration of `packages/ui` from **React 19 + Vite + DaisyUI** to **Nuxt 4 + Vue 3 + @customable/ui-kit-vue + @customable/css**. ### What changed - **Framework**: React 19 → Nuxt 4 (SPA mode, `ssr: false`) - **Component Library**: DaisyUI 5 → @customable/ui-kit-vue 2.10 + @customable/css 2.10 - **Routing**: Manual state-based → Nuxt file-based routing (13 pages) - **State**: React hooks → Vue composables (4 composables) - **Charts**: react-chartjs-2 → vue-chartjs - **Error Tracking**: @sentry/browser → @sentry/vue - **Build**: Vite → Nuxt generate (static output to `dist/`) ### Migration details - 13 pages converted (Dashboard, Sessions, Search, Live, Analytics, Insights, Projects, Documents, Tasks, User-Tasks, Workers, Settings, Memories) - 23 components converted to Vue SFC - 4 composables (useApi, useSSEStream, useWebSocketStream, useBackendReady) - CSS compatibility layer with semantic theme tokens and DaisyUI class compat - Sentry client plugin with dynamic import - Forgejo private NPM registry configured via `.npmrc` ### Build output All 16 routes prerender successfully. Output goes to `dist/` which is served by the backend's Express static middleware — no changes needed there. Closes #327 Closes #333
- Remove upgrade-insecure-requests, HSTS, and cross-origin-resource-policy
  from helmet config to allow HTTP access from LAN
- Store documents from documentation tools in endless mode compression path
  (previously only the normal observation path called storeDocumentIfApplicable)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Complete rewrite of packages/ui from React 19 + Vite + DaisyUI to
Nuxt 4 + Vue 3 + @customable/ui-kit-vue + @customable/css.

Migration includes:
- 13 pages converted from React views to Nuxt file-based routing
- 23 components converted from React/TSX to Vue SFC
- 4 composables replacing React hooks (useApi, useSSEStream,
  useWebSocketStream, useBackendReady)
- CSS design token system using @theme inline for semantic aliases
- DaisyUI compatibility CSS layer for btn, badge, card, modal classes
- Sentry error tracking via @sentry/vue plugin
- Chart.js integration via vue-chartjs
- SPA mode (ssr: false) with nuxt generate for static output
- Forgejo private NPM registry configured via .npmrc

Removed: All React dependencies, Vite config, React-specific files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
jonas.hanisch deleted branch feat/327-333-nuxt-migration 2026-03-02 16:05:09 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
customable/claude-mem!352
No description provided.