Skip to content

feat(dashboard): scaffold apps/dashboard with Vite + Solid + UnoCSS#26

Merged
Exelord merged 1 commit into
mainfrom
claude/apps-dashboard-scaffold
May 12, 2026
Merged

feat(dashboard): scaffold apps/dashboard with Vite + Solid + UnoCSS#26
Exelord merged 1 commit into
mainfrom
claude/apps-dashboard-scaffold

Conversation

@Exelord
Copy link
Copy Markdown
Member

@Exelord Exelord commented May 12, 2026

PR 7/10 of the dashboard track. Sets up the build pipeline and a
placeholder mount so subsequent PRs can land Solid components against
a working app shell.

Stack

  • Vite 6 + vite-plugin-solid — dev server on :5280, proxies
    /api/* to 127.0.0.1:4280 (the legacy vzn dashboard server)
    so the new app can develop against real data immediately.
  • UnoCSSpresetUno (Tailwind-compatible utilities),
    presetIcons (icons-on-demand via <i class="i-…">),
    transformerVariantGroup (hover:(text-fg bg-bg-muted) syntax).
  • No web-fonts preset. @unocss/preset-web-fonts fetches from
    fonts.bunny.net at build time, which would break hermetic CI.
    System font stack only.
  • Dark-by-default theme seeded with semantic color tokens (bg,
    border, fg, accent, ok/warn/err) so PR feat(dashboard): port Overview/Cache/Tasks/Runs pages to Solid #27's components
    can use stable class names regardless of palette tweaks.

Files

apps/dashboard/
  package.json        # @vzn/dashboard, private
  tsconfig.json       # Solid JSX preserve, types: bun + vite/client
  vite.config.ts      # plugins + dev proxy
  uno.config.ts       # presets + theme
  index.html          # mount point
  src/main.tsx        # render(<App/>, #root)
  src/App.tsx         # placeholder shell
  src/format.ts       # bytes / duration / relative-time helpers
  src/format.test.ts  # 3 describe blocks, 11 expectations

apps/dashboard/dist/ is covered by the root dist gitignore entry.

What this PR does NOT do

Test plan

  • bun install resolves cleanly
  • bun x vite build succeeds offline (no third-party fetches)
  • bun run format clean
  • bun run lint clean (oxlint + tsgolint)
  • bun test packages/*/src/ apps/*/src/ — 268 pass, 0 fail

Generated by Claude Code

Sets up the build pipeline and a placeholder mount; pages port in
PR #27. Stack:

- Vite 6 + vite-plugin-solid (dev port 5280, /api proxy to 4280
  for the existing 'vzn dashboard' server)
- UnoCSS with presetUno + presetIcons + transformerVariantGroup
- Dark-by-default theme; system fonts (presetWebFonts dropped:
  it fetches fonts.bunny.net at build time which breaks hermetic CI)
- src/format.ts (bytes / duration / relative-time) + tests, both
  to anchor the apps/*/src/ CI glob and to be reused by page
  components in PR #27
@Exelord Exelord merged commit 3006a55 into main May 12, 2026
1 check passed
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.

2 participants