https://github.com/aaronksaunders/react-router-node-postgres-auth-template
added authentication to the official react router / remix node postgres template
https://github.com/aaronksaunders/react-router-node-postgres-auth-template
authentication drizzle node postgres postgresql react-router remix
Last synced: 5 months ago
JSON representation
added authentication to the official react router / remix node postgres template
- Host: GitHub
- URL: https://github.com/aaronksaunders/react-router-node-postgres-auth-template
- Owner: aaronksaunders
- Created: 2024-11-25T07:07:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-25T07:09:52.000Z (over 1 year ago)
- Last Synced: 2025-06-28T07:40:15.808Z (12 months ago)
- Topics: authentication, drizzle, node, postgres, postgresql, react-router, remix
- Language: TypeScript
- Homepage:
- Size: 79.1 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# React Router Node Postgres Template w/ Authentication
A modern, production-ready template for building full-stack React applications using React Router, based on the official [node-postgres template](https://github.com/remix-run/react-router-templates/tree/main/node-postgres)
## Features
- 🚀 Server-side rendering
- ⚡️ Hot Module Replacement (HMR)
- 📦 Asset bundling and optimization
- 🔄 Data loading and mutations
- 🔒 TypeScript by default
- 🎉 TailwindCSS for styling
- 💾 PostgreSQL + DrizzleORM
- 🔑 User authentication with login and registration
- 📖 [React Router docs](https://reactrouter.com/)
## Authentication
### Registration
Users can register for an account by navigating to the registration page. The registration form requires the following information:
- **Username**: A unique username for the user.
- **Email**: A valid email address (must be unique).
- **Password**: A secure password (minimum length of 6 characters).
Upon successful registration, users will be redirected to the login page.
### Login
After registration, users can log in using their credentials. The login form requires:
- **Email**: The email address used during registration.
- **Password**: The password associated with the account.
Upon successful login, users will be redirected to the home page.
## Getting Started
### Installation
Install the dependencies:
```bash
npm install
```
### Development
Copy `.env.example` to `.env` and provide a `DATABASE_URL` with your connection string.
Run an initial database migration:
```bash
npm run db:migrate
```
Start the development server with HMR:
```bash
npm run dev
```
Your application will be available at `http://localhost:5173`.
## Building for Production
Create a production build:
```bash
npm run build
```
## Deployment
### Docker Deployment
This template includes three Dockerfiles optimized for different package managers:
- `Dockerfile` - for npm
- `Dockerfile.pnpm` - for pnpm
- `Dockerfile.bun` - for bun
To build and run using Docker:
```bash
# For npm
docker build -t my-app .
# For pnpm
docker build -f Dockerfile.pnpm -t my-app .
# For bun
docker build -f Dockerfile.bun -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
### DIY Deployment
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)
├── server.js
├── build/
│ ├── client/ # Static assets
│ └── server/ # Server-side code
```
## Styling
This template comes with [Tailwind CSS](https://tailwindcss.com/) already configured for a simple default starting experience. You can use whatever CSS framework you prefer.
---
Built with ❤️ using React Router.