/create-t3-app

Quickest way to start a new web app with full stack typesafety

Primary LanguageTypeScriptMIT LicenseMIT

Logo for T3

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

PRs-Welcome Discord NPM version Downloads

Video thumbnail of Theo with an indecipherable expression on his face

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.

Nelson from the Simpsons pointing and saying ha-ha in a mocking tone

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:

Join the T3 Discord Server

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 ⛔️ 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.

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 💖 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.

A table of avatars from the project's contributors

Made with contrib.rocks

Powered by vercel