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 16.x
because Vercel currently lists their default runtime as that version. This project uses npm workspaces & Turborepo and setup is simple:
npm install
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:
npm run 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.
npm run seed
The seed command can also be run with an --email
flag:
npm run seed -- --email='yourtest@email.com'
This will allow you to login to the app with:
key | value |
---|---|
yourtest@email.com | |
password | P@ssw0rd |
NOTE: Running this command will also clear the database of all existing data.
command | description |
---|---|
npm run build |
Runs build in each workspace |
npm test |
Executes the tests in each workspace |
npm run clean |
Clears out specific cache directories |
npm run generate |
Generates types from the GraphQL documents for server and client |
/apps/browser-extension
: Chrome browser extension, uses Preact 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
/docs
: Documentation in markdown/scripts
: Project specific scripts