Interactive CLI to quickly set up an opinionated, full-stack, typesafe Next.js project.
Get started with the T3 Stack by running npx create-t3-app
Watch Theo's overview on Youtube here
The "T3 Stack" is a web development stack made by Theo focused on simplicity, modularity, and full-stack typesafety. It consists of:
Kind of. We love all of the technologies that create-t3-app
includes. Check out init.tips for even more info on topics such as state management and deployment. But we do not believe these are needed on every project.
So we made create-t3-app
to do one thing: Simplify complex boilerplate around the core T3 Stack tech without compromising the pieces modularity. This is NOT an all-inclusive template and we expect you to bring your own libraries as well.
We are selective about the packages we have included. We don't add libraries that are as simple as npm install zustand
: If you cut an issue asking us to add your preferred libraries, we will make fun of you.
To get started with create-t3-app
, run any of the following three commands and answer the command prompt questions:
npx create-t3-app@latest
yarn create t3-app
pnpm dlx create-t3-app@latest
If you prefer using the experimental v10 version of tRPC, use create-t3-app@next
. Note that the alpha versions of tRPC that is uses may contain API changes. We will try our best to keep on top of these, please file an issue if we have missed something.
An ongoing development branch, create-t3-app@beta
, can be downloaded for the most recent changes. Expect bugs when using the beta
branch and please open issues with reproductions when they occur.
The following CLI options and flags can configure the create command with custom behavior:
Option/Flag | Description |
---|---|
[dir] |
Include a directory argument with a name for the project |
--noGit |
Explicitly tell the CLI to not initialize a new git repo in the project |
-y , --default |
Bypass the CLI and use all default options to bootstrap a new t3-app |
--noInstall |
Generate project without installing dependencies |
We'll be frank - this is an opinionated project. We share a handful of core beliefs around building and we treat them as the basis for our decisions.
It's easy to fall in the trap of "adding everything" - we explicitly don't want to do that. Everything added to create-t3-app
should solve a specific problem that exists within the core technologies included. This means we won't add things like state libraries (zustand
, redux
) but we will add things like NextAuth.js and integrate Prisma and tRPC for you.
We love our bleeding edge tech. The amount of speed and, honestly, fun that comes out of new shit is really cool. We think it's important to bleed responsibly, using riskier tech in the less risky parts. This means we wouldn't ⛔️ bet on risky new database tech (SQL is great!). But we happily ✅ bet on tRPC since it's just functions that are trivial to move off.
Two of the three T's are typesafe (Typescript, tRPC). We take typesafety seriously in these parts. Any decision that compromises the full-stack, typesafe nature of create-t3-app
is a decision that should be made in a different project. The stated goal of create-t3-app
is to provide the quickest way to start a new fullstack, type safe web application.
We 💖 contributors! Feel free to contribute to this project but please read the Contributing Guidelines before opening an issue or PR so you understand the branching strategy and local development environment. We also welcome you to join our Discord community for either support or contributing guidance.
Made with contrib.rocks