Set up a TypeScript full stack with one command.
- Getting Started – How to create a new full stack.
- User Guide – How to develop apps bootstrapped with Create Full Stack.
Create Full Stack works on macOS, and Linux.
If something doesn’t work, please check troubleshooting or file an issue.
Looking for co-contributors. If this project interests you, email me@tiagobandeira.com
- Apollo Server Express
- Hasura
- Auth0
- None
- AWS/Pulumi
- None
- React
- None
- React Native
- None
- GitHub Actions
- None
Check versions:
yarn --version
docker-compose --version
node --version
CFS support for npm
will be added when npm v7 is stable, which contains the required workspaces feature.
yarn create full-stack my-full-stack
Follow the instructions generated in my-full-stack/development.html
to complete the setup. Then try spinning up the full stack locally.
cd my-full-stack
yarn start
yarn start
brings up the development stack locally. The following URLs are available if the given services are selected.
- web: http://localhost:3000
- If auth is enabled, this redirects to your Auth0 login page
- mobile (expo devtools): http://localhost:19002
- backend (hasura): http://localhost:8080/v1/graphql
- If auth is enabled, expect an authorization error
- backend (apollo-server-express): http://localhost:8080/graphql
- If auth is enabled, expect an authorization error
Setup VSCode (recommended IDE/Editor)
When opening the project in VSCode, click on the dialog to install recommended extensions which automatically:
- Format on save
- Lint on save
- Understand Dockerfiles
- Spellcheck
As a Software Engineer at Google, I was impressed with the seamless integration of the various libraries and frameworks. When starting a new project, Google developers never start from scratch. They build on a stable foundation with guard rails in place.
Since leaving Google, I've been dismayed that this same type of foundation doesn't exist. It's natural to cobble together solutions following one-off blog posts. A developer's focus isn't - and shouldn't be - infra at an early stage, so hacky solutions tend to win. Unfortunately, as what you're building scales, maintaining these solutions can be a nightmare.
We want a stack that enables rapid iteration as requirements change without producing bugs. Ideally, it should scale in terms of traffic and developers without requiring costly re-writes.
To achieve this we chose components for the boilerplate that are:
- A single language, eliminating developer context switching
- Type-safe, eliminating a whole class of bugs
- Tested at scale in production
- Used by enough developers that solutions are easy to find
Home of innovative digital solutions that help organizations, teams and individuals achieve more through the power of technology.