/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

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 (published continuously after merged PRs):

npx create-t3-app@beta

If you prefer using the v10 beta version of tRPC, use create-t3-app@next:

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