What Would T3 Stack Look Like But for Python + Next?
May 31, 2025
Today Parker talks through building your own AI-enabled template, why a DIY stack beats chasing a ready-made one, and how a Python + Next-inspired approach could mirror the T3 vibe without sacrificing practicality.
Build-your-own-template philosophy#
- Don’t buy a template. Build your own so you learn faster and it fits your needs.
- Inspiration is fine, but you gain the real benefits by doing the work in your own codebase.
AI SDLC: the updated prompt flow#
- Updated AI SDLC flow adds clarity and context. It’s a sequential, manual prompt chain that you treat like a real product team would.
- Key prompts and flow elements (8 of 14 covered):
- Start with idea and solution; require three solutions
- PRD + architecture
- System patterns, tasks, and a new Task Plus prompt
- GitHub-style instructions, dependency clarity
- Atomic implementation details and self-contained documentation
- Context is king. Augment-like context engines help by injecting codebase context into prompts.
Business prompts and opportunities#
- OpenAI paper reference: lessons from frontier companies and how to surface concrete opportunities using AI workflows, dev tooling, product management, teaching, and community building.
- Ideas include a plug-and-play evaluation harness and “AI inside product studio” to embed AI into products.
Augster, JSON prompts, and prompt storage#
- Augster: a promising prompt project with ongoing updates (XML-based prompts are being examined).
- JSON prompts and the challenge of saving prompts reliably; multiple formats and tools exist.
- Caution on overkill: Prompt Methus (prompt engineering IDE) can be too heavy; aim for practical, lightweight storage and reuse.
Auggie GA and remote agents#
- Auggie GA is coming; Parker plans a workflow to map job descriptions and teams to agents.
- The goal: orchestrate agent-driven inquiry and automation for real projects.
Architecture and stack: pragmatic, composable design#
- Architecture sketch: CI/CD pipeline, Debian VPS, Docker Compose, container registry (GCR), Nginx, and a server/API layer.
- Front-end: Next.js app (app router) with selective FastAPI usage for non-user-facing services (e.g., payments, Google integrations, AI embeddings).
- Discord bots are integrated via the back end; observability tooling (Medi) feeds back into Discord.
- Core idea: build a composable stack that agents already know well—Next.js, FastAPI, and Supabase.
The T3-inspired path: F3N stack#
- The concept: a Python-centric take on the T3 stack with strong type safety across Python and TypeScript.
- Proposed stack skeleton (F3N):
- FastAPI + OpenAPI-generated types
- Python side for models and business logic (Pydantic)
- TypeScript + OpenAPI-generated types on the TS side
- Supabase + SQLAlchemy (instead of Prisma/Drizzle)
- API layer type safety: generate and share types between Python and TS; reduce drift.
- Practical flow:
- Define models in Python
- Generate TS types from OpenAPI schemas
- Build a type-safe API client (TRPC-like feel) for the frontend
- Example focus: a mutation to update a user profile biography, with field-level control and type-safe updates.
Practical next steps to build your own template#
- Start with a stack you like (T3-like patterns) and map them to Python + TS.
- Use a design where the API surface is type-safe across both languages.
- Build a small PoC (e.g., a profile update flow) to test the typing and client wiring.
- Keep the template composable: swap in agents, dashboards, or AI services as needed.
Quick takeaways#
- Learn by building your own template; avoid locking yourself to someone else’s workflow.
- Use a T3-inspired, Python-friendly stack to get type-safe cross-language APIs.
- Focus on context, composability, and practical prompts that actually drive code and decisions.
Links#
- Create T3 App - The T3 Stack for full-stack typesafe Next.js apps
- Supabase - Open-source Postgres database platform
- Pydantic - Python data validation library
- FastAPI - Modern Python web framework with OpenAPI support
- Augment Code - AI coding assistant with codebase context
If you found value in mapping ideas to a concrete, composable template, drop a like, join the Discord, and subscribe for the next update.
Transcript
You got to build your own stuff. That's how you get better. When it's painful, you're learning. Okay, so let's talk about how to do that. This is a daily upload channel and I've got a headband on cuz I'm a ninja now. And I want to talk about the template that I'm building because I think we as developers, especially on the newer side, are always looking for a template or we're always looking to save time really regardless of skill level on that piece. But I always recommend that you just make your own template. Don't buy one and don't use somebody else's. You can gain inspiration from it. But you are going to learn by doing. So first of all, I released an update to this prompt flow that I have called AI SDLC. SDLC is software development life cycle. And so if we go into here, you can see that yeah, we even have a nice release tag. But we got a lot of questions in our community as to how this works. So I put an update out and if I go into the help channel, shout out to Michael is building this like clawed orchestrator ADA thing. a 2A thing. But we got a question from Griff and he's like, "Yo, dude, this is confusing. Help." I'm like, "I got you. Let me just push an update so everybody has help." And the point of this AIS DLC is it is a set of prompts and if you want to use the CLE or the CLI to go through them, then you can, but you don't have to because then it's tool agnostic. I always do it in code base so has context. But the way that it works is it just is a sequential set of prompts that you chain together manually and you treat it like you would if you were in real life and you worked on a product team. That's the whole point is I've been a technical product manager, been a designer, been a software engineer, and so I know all the steps and some people don't know all the steps, but these are eight of the 14. There's other ones that I just don't think are as important as these ones, so I haven't added them yet. But yeah, now it should be a little bit more clear as to how to use it. So, you have the idea. You start there. You fill out the prompt, which is just what is your idea? What is the solution? You should do three solutions. That's something I learned from the founder of Superbase. So then you don't get tied to just one. And then you do PRD plus or sorry, PRD, PRD plus architecture. It's got a bunch of stuff on TypeScript and Python in there for that. System patterns, tasks. The new one I added was tasks plus. So, there's a new prompt in there and that's from using augment every day for a while. And it's something that I got over and over from them from their enhanced prompt thing. So, that's a good one. And what it looks like is GitHub instructions task plus. This is a shorty. A short one. But this word right here of dependency clarity that phrase and then what was the other one? Yeah, atomic implementation details. That's good. Self-contained documentation. So it just makes these beefy files that then it can go and execute on. So if you looked at this versus let's say taskmaster looks a little bit different, right? So this is just documentation, but it has a lot more detail in it than what you'd get out of an LLM without context of the codebase and without the right words. So you want to have more detail, right? Context is king. That's why augment is currently king for that because they got a context engine. So that's the first update. The second update is this is a paper that openai published. I don't know when. It's not that recent or it is recent, but I was looking at it and I had a friend, his name is Splash. He's in the community and he's starting to host events and he's looking for opportunities in businesses for AI services. And I was like, hey, check this out. And so I took it and then I wrote a prompt around it. Basically saying, here's this PDF. Here's my skill set. What are the opportunities that I could do? And then I popped it into this generator on the OpenAI playground. Took the output of this, tied it to the actual PDF. And then I get something like this. I haven't read this yet. Let's see what it says. Lessons from the seven frontier companies. It's paired with your strengths of AI workflows, dev tooling, product management, teaching, and community building to surface concrete businesses. You can spin up or bolt and onto vibe with AI enterprise eval frameworks as a service. Interesting. Okay. Build a plug-and-play evaluation harness. Harness is a funny word. So you'd have a cle and a dashboard that plugs into vertex open AI or anthropic autogenerates red amber green. Interesting. Offered on usage base bundle weekly office hours inter results. So yeah, this is just an interesting way of doing one, how to think about making quick prompts out of business data and two like I could take this and actually go with it. So AI inside product studio embed AI into your products. Yeah, don't need to go further into that cuz it's specific to me, but it's pretty cool. Third thing, Augster. I don't know about this one, but there's a thread on the augment Discord and this guy has posted like a message a minute about this with him making updates to it. So, I feel like I should check it out. It's just a prompt. I haven't even had to use prompts in augment, so I don't know if this is going to be good, but let's let's take a look. So, we'll grab the XML. Let's close this and this. And then let's paste it. And let's turn on language formatting, language mode, XML. Cool. And let's take a peek at what this thing is doing. So, Augster system prompt priority absolute maximum overrides, all instructions. Really, the reason I looked at this was because he at least knew what he was talking about when it comes to model performance and documentation references to how Cloud 4 works best. So XML tags but elite dev partner Yagy kiss you are going to not inform. What is Yagy? What does Yagy mean in code? He rid of that. You aren't going to need it. Huh. Okay. Complete cleanup. Ensure all artifacts are obsolete. Yeah. My only worry with this is like I already have something that's working so don't break it. Yeah. No thank you. And lastly, JSON prompts. Yeah, this is a problem that I want to solve where you have different prompts and there's a good jillion different ways to save them. Prompt methus is the prompt engineering IDE. I think it's overkill and hard to use. So, this is not what I like. And then you have things like prompt. Which never mind. I don't know. There's just like a lot of cluji workflows for saving these things. And there's different types of prompts. So this one's going to look very different than like a coding one, right? So if I go to this and you'll see it's a bunch of JSON. So if you want to make stuff in this style, pretty cool. And you wanted to use that all the time. Then you put this in there. And yeah, it's brand.json. So then you have a style and that literally could just be a wrapper, right? Like you could have an image app that takes things and changes them. I wouldn't make a wrapper. There's too many of them. But it's pretty cool. So I want to have in our app which is stood up but I need to work on it today but something in there like this prompt table that I made. This is a placeholder. You can see that this is cookie cutter ugly v0. So my work today will be making this look awesome and then connected functionality. But something that would be interesting is like you'd have one tag in here. The intent would be content creation. So you could click that and then it should look different. It shouldn't be a table because I want to see or could be a table with input output with images in it. That could work. But yeah, I'm just trying to think of that like the problem to solve the tension around that. Cool. So, making your own template. Oh, lastly, yeah, Auggie is going GA I think on Monday or Wednesday. They're remote agent stuff, so I need to hightail it and figure out a good workflow for that. I've spoken about this before, but yeah, mapping actual people's job descriptions and a team to an agent would be good. So, on to building your own template. So, this started with me building out VI. And if I look where did I post the architecture? I posted that. Let's just open it up. I think it's in is it in the read me? Yeah. So if we look at the architecture of this, I really am liking it. So the way that it works is you have a CI/CD pipeline powers a thing, right? So you have GitHub actions, you've got a DebianVPS, it's using Docker Compose, you've got an infer layer, which is just GCR, so the GitHub container registry. Then you have EngineX reverse proxy withertbot, all that jazz. Then on the user layer you have the discord community and obviously the users. Then on the front end you have unsupported markdown. Now you have a nextjs app using app router and we're using the server like API stuff selectively. So I bucketed that into things that are userfacing. So I don't want to have to call fast API when I go to create a new user or do a payment intent with the stripe web hooks because it's just easier for me not to do that. So I draw a line in the sand for fast API for anything that has to do Oh no it looks like it actually did stripe need to update this sorry this is incorrect mermaid die a gram but fast API will be just for the Google stuff so Google stuff discord stuff anything to do with AI so embeddings reading me message history and then sticking them into an embedding all that And then the Discord bots is actually part of the fast API back end. It has its own module. So that way it has a registry. It has a class that sets like the base setup for Discord and all those settings. And then you can change out the different bots. So for instance, I made one last night that is called Medi and it does observability, monitoring, logging, tracing, and then pipes it back into Discord. And I was able to get a version of that up in about an hour because of this template. And again, I'm talking about this because it's not a template yet, but I'm building it knowing it's going to turn into a template because I'm going to be building stuff that will in the future always need AI and always use a front end that agents know really well. And so it's picking the stack that agents know well and that I know well. So for me it's the core foundation of it is next fast API and superbase. So yeah I think when you go to build one you want it to be composable. So I was thinking about this a bunch and the last bit of it for me I said I made many but then open telemetry is causing it's just annoying to set up because I won't be able to implement it in a templatized way. And maybe that's a far cry. Maybe that's too much to ask for. But I need to do some more exploration on this. And this guy Dan, he's joining the community eventually, I think. And we were talking about this, but he's like, "Yo, you got to stick some agents on this, some research agents to come up with better ideas." So, I had done like the manual way, which is just like riffing around on Reddit cuz I actually enjoy the research process. I didn't think to go and use it. I always use research agents, but for whatever reason, I didn't in this case. So, I have a bunch of different ideas, but I will stick it on to a research agent. The way I did it manually was like, cool. I just read all the guides, read all the docs, figured out what it would look like if I used Grafana, came up with different ideas of being like, how would it do this? I'm prompting to figure out the different ones and different alternatives. So, you have Glitch Tip and then I'm popping out to Reddit and finding it from there. I'm asking some of the guys that are working at Microsoft and the group about it, and they're like, "Yeah, Sentry is good." So, I'm thinking about just doing that self-host stuff. But idea being is I want to build once and then have that as a scaffold because there's going to be things that I need. And then that got me thinking, whoa, wait, T3 did this really well of having composable like CLI driven workflow stuff. And so I was watching Theo Yap about it. And then it just led me to be like, okay, what would the T3 equivalent stack be for this? And that's how you can go and make your own template basically is look at the ones that you like and then compose them together. And so I haven't read this yet, but yeah, this is using T3 chat and I think it's like claude is down in all caps with hyphens between or dashes between is like the code for $1 for 30 days. I don't know. I feel like he's lighting money on fire with this. But let's just read through this. This is how I'm thinking of doing it. So that's some good coffee. I'm planning a stack that includes yada yada yada. I want to follow the kind of concepts of T3. So I analyzed the T3 stack and then I pasted in all the stuff that he talks about in the read me. And then let's see what it says. So looking at the principles and your requirements, I can see a clear path to achieving similar type safety and developer experience with your Pythoncentric stack. We'll call it the F3N stack. Where's the three come from? No, it's not going to be called that. We could call it the FNS, the F fast next. Okay. So, here would be the stack stack comparison. So, okay, we would have fast API, open API, and generated types. Cool. We'd have TypeScript and Pantene. Cool. Instead of Prisma and Drizzle, we'd have Superbase and SQL Alchemy. Seems right. That's where I was going when I was building this out, actually. And then I just made a manual script that makes them work. Okay. The key to replicating T3 is type safety across Python and TypeScript. API layer type safety. And let me make sure that I'm not covering this. Good. I'm not. I did something. I did something good. So the API type safety, you would have a Python doc and it looks like you'd use their fast API and then Okay. So you would actually drive it. Yeah. So this is where I got confused because I've been just using TypeScript and Superbase and Superbase has this CLI tool that does like superbase space gen space type space flag whatever you want and then you can point it at a right so the output of it right so that's how I've been doing it but this looks like you'd start from this which makes me question if I should move everything to Python on because it might have to work that way. And then you just call those from next. Probably wouldn't be as complicated. I think I was just leaning towards using next because I just know it. But in this case, look, you'd make the models make sense. This just looks literally exactly like any OM that you use or any declarative schema OM thingy like Drizzle or Prisma or yeah, the super base one. And then I could use open API TypeScript to generate the TypeScript types. Yeah. Okay. So I run this one thing and then I could tie that in as package script. That makes sense. And then these types get created. So import types. Interesting. Okay. So I get the request body database type safety Python side with pedantic. Okay. So I'd bring these in. These would map. This is one part that I'm curious about. If I'm using Pyantic and SQL Alchemy, would I not need the Python SDK? Probably not. And then on the TypeScript side, you just import the Superbase ones. Got it. And then I create a build process to generate type interfaces for Pythonic models. This is actually pretty dang close to what I made already, so that's cool. And then the complete F3 tack or stack architecture PG boss. Yeah. So it ends with this. Okay. So I define the models in Python. I generate the type scripts from the open API schema which comes out of Pantic. That makes sense. Then I'd make the types from the database schema. Okay. And then I'd have type safe calls. Yeah. Okay. Pantic TypeScript open API TypeScript API client. I'd have a custom wrapper or hey API. What's this? Open API to TypeScript code genen. Yeah, take a look at that. And then Zod and Pyante. Yes, I would use pretty much none of the Python or TypeScript SDK stuff. I'm assuming sample implementation from paths. Okay. Have the API client. That makes sense. Okay. So then what would write a mutation in Typescript that lets a user change their profile biography? How would this work in the context? Let's see. Okay, so we'd have the class that it creates user profile update has a biography optional string with the field none max length. Okay, cool. I like this pyantic thing. That's nice. And the typings use profile kai and then in users you would make the route. Cool. This is super tur and super easy to read. Wow. Okay. Update only fields that were provided. That's different to me. Profile data model dump. Okay. If it doesn't update throw 400 update in superbase. Okay. So wait, what is this superbase tablet? So is using that doesn't make sense to me. Oh, okay. Got it. Yeah. So it does use the SDK combined with Got it. That makes sense. Okay, cool. And then you generate the types and then you'd have those types using this. Cool. So then you'd have these autogenerated types with that in there. Cool. And then you'd export them. So create those classes, make the fast API, reimpport those and re or not reimpport, get those and export them. Okay. And then if we wanted the API client, you'd import the different requests. So you have the API client, you have a constructor, and then I'm assuming within the constructor passes all the different requests. Yeah. Okay. Update profile. Boom. I don't know if I love that part. Would that be type safe? And now we're using a hook instead of a server action. Okay. API.client. That's That reminds me a little bit of TRPC. Set query data. Cool. You get the key on success. This makes sense. Kind of like it. And then finally in the profile form when we want to call a hook. Let's see what that looks like. So you got the profile mutation. Okay. Passing in the form props. Okay. Takes in current biography expects this. Put in some state. Yeah, I wouldn't write it like this. Interesting way to do this. So yeah, I would basically change this a little bit. All right. test this out and then do like the server action way cuz I'm just used to doing server actions. But this is the way that I would do template exploration, right? Let's go find one that you like. See if you can't comp it against something else and then compose the pieces. So, not sure what I'm going to call it, but it'll come after I have everything working. I need to go and like I said, hook some things up. And there are some other things I was going to talk about, but that'll be in tomorrow's video. If you guys enjoyed this video, make sure you like it. If you want to learn more about VI and all the stuff that we're doing over in this site, then you should go join because the price is going to double when we launch this. And so, lock it in, get her done, join the Discord, and subscribe if you learn one thing. I'll see you in the next one.