My current stack

preview_player
Показать описание
My channel started with the T3 stack, but since then things have changed. I wanted to go over all the stuff I'm currently using, what's changed, and why.

S/O Ph4se0n3 for the awesome edit 🙏
Рекомендации по теме
Комментарии
Автор

*Theo Stack & Reasoning:*

*Frontend:* React (Complex UIs [00:07:14])
*Styling:* Tailwind CSS / Shadcn [00:31:51]
*Auth:* Clerk (Ease of use [00:09:15]) / OpenAuth (Control, Separation [00:47:14])
*Analytics:* PostHog (Product analytics [00:10:20])
*API:* tRPC (End-to-end type safety, simplicity [00:12:53, 00:36:50])
*Backend Framework:* Next.js (Stability, Routing [00:32:06, 00:42:52])
*Backend Language:* TypeScript (Complexity management [00:32:06, 00:44:22])
*DB:* PlanetScale (Prod scale [00:24:56]) / Upstash Redis (Key-value speed [00:24:39]) / Convex (Exploring real-time [00:25:53])
*ORM:* Drizzle (SQL efficiency [00:54:56])
*Hosting:* Vercel / Cloudflare (Edge functions, Image optimization [00:50:26]) / Netlify [00:33:54]
*State Mgt:* React Query (Async data [00:34:57]), Jotai (Simple state [00:35:03]), Zustand (Complex state [00:35:10]), Dexie (IndexedDB [00:35:49])
*Router:* React Router (Client-side speed [00:39:41])
*Package Mngr:* pnpm (Efficiency, Monorepos [00:43:50, 00:49:43])
*Env Vars:* t3-env (Validation [00:55:10])
*Uploads:* UploadThing (Simplicity [00:54:26])

*Key Principles:*
Simplicity First [00:27:32]
Modularity [00:05:50]
Type Safety [00:05:56]
Performance [00:39:56]
Single Source of Truth [00:51:44]
Microservices for isolation [00:53:58]
Avoid Unnecessary Complexity [00:42:52]
Iterative Improvement [00:16:46]

Basically, a pragmatic stack focused on reliability, performance, type safety, and maintainability.

summary by gemini 2.5 pro

DanielBogusz
Автор

The stack should be called the $ stack, because it's so insanely expensive 😭

TianYuanEX
Автор

His hair is loading in with eventual consistency.

AlainLeon
Автор

Finally, confirmation that the Google Sheets api is just horrible. Turns out I'm not crazy after all.

heybales-underscore
Автор

Theo pulled uno reverse today, last video was without moustache while sponsored section was with moustache and today it's opposite 😂

labhamjain
Автор

As a backend engineer, it hurts to see Next as a backend framework 😅

TylerSurf
Автор

One thing I enjoyed about starting a project with T3 and tRPC was that when I wanted to get the tRPC part out of Next to have it in it's own standalone backend for cost optimizations (thx Vercel) and better DX to share code with an Expo/RN app, it was pretty simple to switch with only some setup in my Turborepo required (thanks to the maintainers of create-t3-turbo, reading the code helped me a lot in this process!)
Now we have a dedicated backend while still benefiting from tRPC client-server typings, I'll never go back to REST/JSON endpoints unless I have no other choice.
We ship fast, with reduced complexity while keeping great code quality.

Also, while we're thinking about removing Next for a standalone React app but even though we're not using server components or a lot of Next backend features, the routing and easy integration of Clerk for all the basic signed in/out handling makes it so much worth it compared to re-create everything for a standalone React app.

alex
Автор

T3 Stack is great, but it would be awesome if it added Supabase as an alternative to PlanetScale.
Took me 2 hours to replace PlanetScale with Supabase, and it works incredibly well!

biskuitZZZ
Автор

Somewhat-related question: At my day job, I'm stuck using Angular. Coming from a React background, I find Angular clunky and pretty much horrible. Am I wrong in my assessment? Is there some great thing about Angular I am completely missing? Thanks.

andyengle
Автор

42:30 so what exactly does Next JS better over React Router if you anyway ended up doing routing with react router ?

AntonYefremov
Автор

I drop TRPC for React Server Function (not to be confused with RSC).

I use React Query with React Server Function.

Prefetch the query in the RSC, dehydrate the query client state, render the HydrationBoundary, and just useQuery normally in the client page.

That way, I remove one layer from the codebase (TRPC which requires zod-defined API) and can just write React Server Function using TypeScript export async function on 'use server' module.

crispymald
Автор

This must be the real Theo. The other one with the moustache was clearly from the mirror universe.

Hobbitstomper
Автор

Hi Theo, i was wondering if it’s of interest to make a deep dive into trpc vs server actions. Myself i started to switch to server actions but i don’t really see the pitfalls yet. Here you clearly say you went back to trpc and i am super curious to hear why in you super special way of framing things!
Great job on the content!

bogrisss
Автор

pretty much what i do, but i moved from next to remix and i absolutely love it.

TasteDaMurek
Автор

i got baited by cool theo thumbnail into watching corpo theo video

Shafti-Code
Автор

I love your hair, it is the whole background

_aNeaire
Автор

Currently it is my first time working with huge codebase (medusa js, open source ecommerce shop. Actually I am building a multivendor marketplace). Not only I am doing it solo and first time, but also it is completly new thing so I am learning on the fly, trial and error. When you are saying about all this rewriting, deleting and so on, it makes me feel better 😅 I am not alone. Still, it is overwhelming, but I will get it done eventually.

arekdbz
Автор

@theo would love to see a review of supabase! What are pitfalls you see with it?

ranicket
Автор

36:27 What is so special about dexie that, for example, idb (indexeddb wrapper) cannot do well?

AntonYefremov
Автор

This new look is crazy! WoW. Never go back to golden era. Black era is best.

kuchbhi-gr