Quickly ship your apps with the power of code generation.
While you can still use this boilerplate, it's very out of date. Bedrock is @mxstbr's attempt at building a sustainable business out of a boilerplate in order to allow it to stay up to date.
If you're looking to build a SaaS product, check it out!
Quickly ship your apps with the power of code generation.
"Speed of developer iteration is the single most important factor in how quickly a technology company can move."
— Paul Biggar, cofounder CircleCI
Product boilerplate is @brianlovin and @mxstbr's personal setup to quickly build new apps. It aims to get all the common stuff out of the way and make shipping and subsequently iterating on a product as quick as possible.
There are three important traits in all the included tooling that we pay attention to:
Note that this is our personal boilerplate. You are more than welcome to use it (that's why it's open source), but we cannot give any support when using it. Make sure you understand the tools in it before using it!
The entire app (front- and backend) uses Next.js in serverless-mode for development, and deployment is powered by Now.
There are three code generators at work in this boilerplate:
All routing happens via the folder structure in the web/pages/
folder. Any route under web/pages/api
will be treated as an API route, all others as React routes.
To add dynamic routing use the Next.js dynamic routes feature.
To start the app locally you have to run these two commands:
yarn run dev
: Stars the development process for the serverless front- and backend, as well as all generation processes.yarn run db
: Starts the database locally (note: requires Docker to be up and running and docker-compose to be installed)Further, you will frequently use these commands while developing and they are automatically run whenever you switch branches or pull new code to make sure your generated files are up to date:
yarn run db:deploy
: Update your local database with changes you made to the datamodel.yarn run generate
: Runs all the codegeneration commands in sequence. You can also run them manually if necessary:
yarn run generate:db
: Generate the Prisma database client for the server.yarn run generate:server
: Generate the schema.graphql
file for the backend from the Nexus schemayarn run generate:web
: Generate the fetching hooks and types for the frontend from the .graphql
files contained within itThese are automatically run in a pre-commit hook, so don't worry about calling them manually unless you have a reason to:
yarn run prettify
: Prettifies the src
folder with Prettier.yarn run lint
: Lints the src
folder with ESLint.To deploy the database, look at the Prisma docs, e.g. their tutorial on deploying the database to AWS fargate.
Once that is up and running, to deploy the app you simply run now
, that's it! We recommend enabling the Now GitHub integration for CD.
Licensed under the MIT License.