This is a really simple project that shows the usage of Next.js with TypeScript.
brew install postgres@14 node
Make sure you're using 18.x because Vercel currently lists their default runtime as that version. This project uses yarn workspaces & Turborepo and setup is simple:
yarn
Setup the database by running the following:
psql postgres
This should open a session, copy and paste the following.
CREATE DATABASE reubindb;
CREATE ROLE reubinadmin WITH LOGIN PASSWORD 'password';
ALTER ROLE reubinadmin WITH SUPERUSER;
ALTER DATABASE reubindb OWNER TO reubinadmin;
\q
Create an .env with the following:
DATABASE_URL="postgresql://reubinadmin:password@localhost:5432/reubindb?schema=public"
First push the db to setup the tables:
yarn db
You can populate the project with data by running the seed command. This will populate the database with feeds, tags and a single user.
yarn seed
The seed command can also be run with an --email flag:
yarn seed -- --email='[email protected]'
This will allow you to login to the app with:
| key | value |
|---|---|
| [email protected] | |
| password | P@ssw0rd |
NOTE: Running this command will also clear the database of all existing data.
| command | description |
|---|---|
yarn build |
Runs build in each workspace |
yarn test |
Executes the tests in each workspace |
yarn clean |
Clears out specific cache directories |
yarn generate |
Generates types from the GraphQL documents for server and client |
yarn dev |
Run all projects in development mode |
yarn e2e |
Kick of integration tests |
Quality of life project scripts found in:
/scripts/*.mjs
Use .mjs with // @ts-check at the top of the file.
/apps/browser-extension: Chrome browser extension, uses React and Parcel recipes/apps/graphql: GraphQL server uses Apollo Server/apps/ui: Web application uses Next.js and TailwindCSS
Each project contains
/apps/<project>/src/*: source code/apps/<project>/test/*: all unit tests
/packages/rsskit: Converts RSS to JSON/packages/html: Returns safe HTML to render/packages/graphql-date-ts: Custom date scalar for GQL/packages/graphql-depth-limit: TS port ofgraphql-depth-limit
Each project contains
/packages/<project>/src/*: source code/packages/<project>/test/*: all unit tests
/e2e: Built with Playwright
/docs: Documentation in markdown/scripts: Project specific scripts