https://github.com/safinn/multi-stack
A template for building full-stack React applications using React Router with first class multi-tenant support.
https://github.com/safinn/multi-stack
kysely multi-tenant postgresql rbac react react-router remix-auth remix-auth-oauth2 remix-stack shadcn-ui tailwindcss typescript zod
Last synced: about 2 months ago
JSON representation
A template for building full-stack React applications using React Router with first class multi-tenant support.
- Host: GitHub
- URL: https://github.com/safinn/multi-stack
- Owner: safinn
- Created: 2025-03-03T08:45:31.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-04-07T21:31:17.000Z (2 months ago)
- Last Synced: 2025-04-07T22:31:27.443Z (2 months ago)
- Topics: kysely, multi-tenant, postgresql, rbac, react, react-router, remix-auth, remix-auth-oauth2, remix-stack, shadcn-ui, tailwindcss, typescript, zod
- Language: TypeScript
- Homepage:
- Size: 775 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# multi-stack
A modern template for building full-stack React applications using React Router.
Heavily inspired and built on the foundations of the excellent [epic-stack](https://github.com/epicweb-dev/epic-stack/) (probably should have been a fork) but with a modified email approach, database tools and multi-tenant support so users can be part of multiple teams/workspaces/organizations.
## Features
- First class multi-tenant support
- Server-side rendering
- Kysely for SQL database interaction (postgreSQL)
- Email/Password, OAuth2 and Passkey authentication with cookie-based sessions
- Role based access permissions
- Transactional email abstraction for use with any provider
- Typesafe forms with Conform
- Styling with Tailwind v4
- Linting and formatting with ESLint
- Static types with Typescript
- shadcn/ui component library
- Runtime schema validation with Zod## Getting Started
#### Install the dependencies:
```bash
pnpm install
```#### Setup environment variables
Set environment variables in a `.env` file. See [.env.example](.env.example).
#### Apply the migrations:
```bash
pnpm migrate:latest
```### Development
Start the development server with HMR:
```bash
pnpm dev
```Your application will be available at `http://localhost:3000`.
## Building for Production
Create a production build:
```bash
pnpm build
```