/boilerplate

Fullstack boilerplate using Typescript, React, Node & GraphQL

Primary LanguageTypeScript

Boilerplate

Typescript + React + React Native + GraphQL + Prisma

Comes with user authentication included

  • React
  • React Native
  • Expo
  • TypeGraphQL
  • Prisma
  • Web, App & API monorepo
  • Next.js
  • TypeScript
  • Postgres
  • Apollo Client
  • Apollo Server
  • Express
  • React hook form
  • Chakra UI
  • Customizable theme & Dark mode
  • Eslint
  • Prettier
  • Graphql Code Generator
  • Sendgrid SMTP
  • Sentry
  • Husky
  • Lint staged

& many more tasty treats

Get Started

Must have node, yarn, postgres and redis installed and setup locally

Delete whatever packages you don't need for the project, e.g. maybe you dont need the React Native app

  1. yarn install
  2. createdb boilerplate
  3. cd packages/api && yarn db:migrate

Make sure you have created a .env file in the api package with the right values, you can use .env.example as the template

We use Husky to run a couple of checks each commit (prettier, eslint & commitlint), make sure to add a .huskyrc file to your home directory ~/.huskyrc, and add this in:

export PATH="/usr/local/bin:$PATH"

then run

npx husky install

Development

  1. cd packages/api && yarn watch
  2. cd packages/web && yarn dev
  3. cd packages/app && yarn start

Production

Mailers

  • Create a Sendgrid account and set a SENDGRID_API_KEY environment variable in .env
  • Create templates for each email you want to send and use the templateId in the corresponding mailer class

Error tracing

  • Create a Sentry account + project for each package and add the DSN to the web config and the api env variables

Deployment

An example is deployed here

We are using Heroku for the API package and Vercel for the WEB package