This is an opinionated repo to quickly bootstrap a scalable full-stack project. It features a backend and a frontend (React) both in Typescript, deployed on AWS through SST. Types are shared between frontend and backend thanks to tRPC library.
App is protected by a Google autentication.
It also include a strong eslint / prettier configuration for a better developer experience 🧑💻.
After completing the Create a Google project and Add the authorize URL sections of the SST documentation, you need to set your GOOGLE_CLIENT_ID secret. In your terminal:
- Run
npx sst secrets set GOOGLE_CLIENT_ID <Your Google client id> --stage <local and/or prod>
In your terminal:
-
From
/, runpnpm dev -
In AWS Dynamodb console, in your
localstage table, create a user with the same Google email you want to login with:{ "email": { "S": "<Your Google Email>" }, "firstName": { "S": "<Your first name>" }, "id": { "S": "<Any uuid to get started with" }, "lastName": { "S": "<Your last name>" }, "_ct": { "S": "2024-04-09T10:39:47.766Z" }, "_et": { "S": "User" }, "_md": { "S": "2024-04-09T10:39:47.766Z" } } -
From
packages/web, runpnpm start -
Head to localhost
In your terminal:
-
From
/, runpnpm deploy-prod -
In AWS Dynamodb console, in your production table, create a user with the same Google email you want to login with:
{ "email": { "S": "<Your Google Email>" }, "firstName": { "S": "<Your first name>" }, "id": { "S": "<Any uuid to get started with" }, "lastName": { "S": "<Your last name>" }, "_ct": { "S": "2024-04-09T10:39:47.766Z" }, "_et": { "S": "User" }, "_md": { "S": "2024-04-09T10:39:47.766Z" } } -
Head to the Cloudfront distribution SST displays in the console
