create-t3-app
Quickest way to start a new LiveKit web app with full stack typesafety.
README
<h1 align="center">
create-t3-app
</h1>
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@latest
<a href="http://www.youtube.com/watch?v=PbjHxIuHduU" target="_blank">
<p align="center">
<img src="https://t3.gg/random/T3%20Stack%20V4.png" alt="Video thumbnail of Theo with an indecipherable expression on his face" width="320" />
</p>
</a>
<a href="http://www.youtube.com/watch?v=PbjHxIuHduU" target="_blank">
<p align="center">Watch Theo's overview on Youtube here</p>
</a>
Table of contents
- <a href="#about">What is the T3 Stack?</a>
- <a href="#getting-started">Getting Started</a>
- <a href="#community">Community</a>
- <a href="#axioms">T3 Axioms</a>
- <a href="#contributors">Contributors</a>
<h2 id="about">What is the T3 Stack?</h2>
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.
<h2 id="getting-started">Getting Started</h2>
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
For more advanced usage, check out the CLI docs.
<h2 id="community">Community</h2>
For help, discussion about best practices, or any other conversation that would benefit create-t3-app:
<h2 id="axioms">T3 Axioms</h2>
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.
<h2 id="contributors">Contributors</h2>
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 href="https://github.com/t3-oss/create-t3-app/graphs/contributors">
<p align="center">
<img width="720" src="https://contrib.rocks/image?repo=t3-oss/create-t3-app" alt="A table of avatars from the project's contributors" />
</p>
</a>
Made with contrib.rocks
