Fusion Starter
A production-ready full-stack React application template with integrated Express server, featuring React Router 6 SPA mode, TypeScript, Vitest, Zod and modern tooling.
While the starter comes with a express server, only create endpoint when strictly neccesary, for example to encapsulate logic that must leave in the server, such as private keys handling, or certain DB operations, db...
Tech Stack
Frontend: React 18 + React Router 6 (spa) + TypeScript + Vite + TailwindCSS 3
Backend: Express server integrated with Vite dev server
Testing: Vitest
UI: Radix UI + TailwindCSS 3 + Lucide React icons
Project Structure
client/ # React SPA frontend
├── pages/ # Route components (Index.tsx = home)
├── components/ui/ # Pre-built UI component library
├── App.tsx # App entry point and with SPA routing setup
└── global.css # TailwindCSS 3 theming and global styles
server/ # Express API backend
├── index.ts # Main server setup (express config + routes)
└── routes/ # API handlers
shared/ # Types used by both client & server
└── api.ts # Example of how to share api interfacesKey Features
SPA Routing System
The routing system is powered by React Router 6:
client/pages/Index.tsxrepresents the home page.Routes are defined in
client/App.tsxusing thereact-router-domimportRoute files are located in the
client/pages/directory
For example, routes can be defined with:
Styling System
Primary: TailwindCSS 3 utility classes
Theme and design tokens: Configure in
client/global.cssUI components: Pre-built library in
client/components/ui/Utility:
cn()function combinesclsx+tailwind-mergefor conditional classes
Express Server Integration
Development: Single port (8080) for both frontend/backend
Hot reload: Both client and server code
API endpoints: Prefixed with
/api/
Example API Routes
GET /api/ping- Simple ping apiGET /api/demo- Demo endpoint
Shared Types
Import consistent types in both client and server:
Path aliases:
@shared/*- Shared folder@/*- Client folder
Development Commands
Adding Features
Add new colors to the theme
Open client/global.css and tailwind.config.ts and add new tailwind colors.
New API Route
Optional: Create a shared interface in
shared/api.ts:
Create a new route handler in
server/routes/my-route.ts:
Register the route in
server/index.ts:
Use in React components with type safety:
New Page Route
Create component in
client/pages/MyPage.tsxAdd route in
client/App.tsx:
Production Deployment
Standard:
npm run build+npm startBinary: Self-contained executables (Linux, macOS, Windows)
Cloud Deployment: Use either Netlify or Vercel via their MCP integrations for easy deployment. Both providers work well with this starter template.
Architecture Notes
Single-port development with Vite + Express integration
TypeScript throughout (client, server, shared)
Full hot reload for rapid development
Production-ready with multiple deployment options
Comprehensive UI component library included
Type-safe API communication via shared interfaces
Last updated
