A Typescript boilerplate web project using Next.js (App Router) and Tailwind, and Postgres. User authentication (username/password) has been set up using NextAuth.js.
This boilerplate contains:
Note that SSR is not included in this boilerplate as it is not really applicable user authentication (which uses redux to update state). Feel free to add SSR to your own pages though!
POSTGRES_HOSTNAME=localhost POSTGRES_PORT=5432 POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres POSTGRES_DB=postgres DATABASE_URI=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOSTNAME}:${POSTGRES_PORT}/${POSTGRES_DB}?schema=public
5. Run the following in the root directory
npm run install npm migrate
6. For [automatic tagging](https://github.com/anothrNick/github-tag-action), allow read and write permissions for workflows in your github repo's Settings > Actions > General > Workflow permissions section.
### Start locally
The following command will containerize, build, and start the database, backend, and frontend
npm run up npm run dev
### Setup user profile image upload Supabase (optional)
1. Sign up and create a project on [supabase](https://supabase.com/dashboard).
2. Create a **public** storage bucket and add `SUPABASE_BUCKET` to the `.env` above
3. Add a policy to your bucket that allows `SELECT`, `INSERT`, `UPDATE`, and `DELETE`.
4. From Settings > API, add your URL and anon/public API keys to the `.env` as `SUPABASE_URL` and `SUPABASE_ANON_KEY`.