seawind8888 / boilerplate-demo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Boilerplate

We need your help!

We are looking for someone who would be comfortable working with this stack to help us with some client projects. We are a remote first team and are flexible with hours. If this sounds like something for you, please get in contact via our website!

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 watch
  4. cd packages/web && yarn dev
  5. cd packages/app && yarn start

Make sure you have created a .env file with the right values, 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"

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

(Our heroku app is on the free tier so there is a warm up time before it becomes responsive)

About


Languages

Language:TypeScript 97.6%Language:JavaScript 2.2%Language:Shell 0.2%