A modern full-stack web application built with React Router v7, Convex, and Better Auth.
- Frontend: React Router v7 with TypeScript
- Backend: Convex (real-time database & serverless functions)
- Authentication: Better Auth
- Styling: TailwindCSS + Radix UI components
- Build Tool: Vite
- Package Manager: Bun
- � Complete authentication system (sign in/up, password reset)
- 🎨 Modern UI with dark/light mode toggle
- 📱 Responsive design
- ⚡ Real-time data synchronization with Convex
- 🔒 Type-safe throughout with TypeScript
- � Protected routes and dashboard
-
Install dependencies
bun install
-
Set up environment variables
# Copy and configure your environment variables cp .env.example .env.local
-
Start the development servers
# Terminal 1: Start Convex backend bun run dev:db # Terminal 2: Start React Router dev server bun run dev
-
Open your browser Navigate to
http://localhost:5173
app/
├── routes/ # Application routes
├── components/ # Reusable UI components
├── hooks/ # Custom React hooks
└── lib/ # Utilities and configurations
convex/ # Backend schema and functions
Build for production:
bun run build
docker build -t my-app .
# Run the container
docker run -p 3000:3000 my-app
The containerized application can be deployed to any platform that supports Docker, including:
- AWS ECS
- Google Cloud Run
- Azure Container Apps
- Digital Ocean App Platform
- Fly.io
- Railway
If you're familiar with deploying Node applications, the built-in app server is production-ready.
Make sure to deploy the output of npm run build
├── package.json
├── package-lock.json (or pnpm-lock.yaml, or bun.lockb)
├── build/
│ ├── client/ # Static assets
│ └── server/ # Server-side code
This template comes with Tailwind CSS already configured for a simple default starting experience. You can use whatever CSS framework you prefer.
Built with ❤️ using React Router.