Files
Tomas Dvorak 3cb40adb23 first commit
2026-04-10 12:04:09 +02:00

1.9 KiB

SolidStart → SolidJS + Vite Migration

What Changed

Removed

  • @solidjs/start - Full-stack framework
  • vinxi - Build tool
  • .vinxi/ and .output/ build directories
  • entry-client.tsx and entry-server.tsx - SSR entry points
  • app.config.ts - SolidStart config

Added

  • vite - Fast build tool
  • vite-plugin-solid - SolidJS plugin for Vite
  • index.html - Standard HTML entry point
  • src/index.tsx - Client-side entry point
  • vite.config.ts - Vite configuration
  • nginx.conf - Static file serving config

Updated

  • package.json - New scripts and dependencies
  • app.tsx - Manual routing instead of FileRoutes
  • tsconfig.json - Vite types instead of Vinxi
  • Dockerfile - Static build with nginx instead of Node server
  • .gitignore - Removed SolidStart artifacts

Benefits

  1. Simpler: No SSR complexity, just a clean SPA
  2. Faster: Vite's dev server is lightning fast
  3. Cleaner: Standard Vite setup everyone knows
  4. Smaller: Static files served by nginx (much lighter than Node)
  5. Easier to debug: No framework magic, just Vite + SolidJS

How to Run

# Install dependencies
npm install

# Development
npm run dev

# Build
npm run build

# Preview production build
npm run preview

Routing

Routes are now explicitly defined in src/app.tsx instead of file-based routing:

<Route path="/app/:workspaceSlug">
  <Route path="/today" component={TodayRoute} />
  <Route path="/calendar" component={CalendarRoute} />
  // ... etc
</Route>

All route components are lazy-loaded for optimal performance.

Docker

The Dockerfile now builds static files and serves them with nginx on port 80 (instead of Node on port 3000).

Notes

  • Service worker registration still works
  • All auth flows remain unchanged
  • API proxy configured in vite.config.ts for /api/auth
  • All existing components and pages work as-is