create-t3-app
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
Table of contents
What is the T3 Stack?
The "T3 Stack" is a web development stack made by Theo focused on simplicity, modularity, and full-stack typesafety. It consists of:
What is this? Some kinda template?
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.
Getting Started
To get started with create-t3-app
, run any of the following three commands and answer the command prompt questions:
npm
npx create-t3-app@latest
yarn
yarn create t3-app
pnpm
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 it 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.
Community
For help, discussion about best practices, or any other conversation that would benefit create-t3-app:
CLI Docs
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 |
To use the beta version of create-t3-app
:
npx create-t3-app@beta
To scaffold the project using tRPC v10 (experimental):
npx create-t3-app@next
T3 Axioms
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.
1. Solve Problems
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.
2. Bleed Responsibly
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
3. Typesafety Isn't Optional
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.
Contributors
We
Made with contrib.rocks