Parker Rex
All videos
Parker Rex Daily

Coding a Free AI Starter Kit (Next.js/Supabase) & Strategy Tips

April 12, 2025

Watch on YouTube@parkerrex2

Parker dives back into Turbo Kit, shares quick AI/product strategy notes, and starts refactoring a free Next.js/Supabase AI starter with Google and GitHub sign-in. concise, action-oriented, and straight to the plan.

Turbo Kit refinements and plan#

  • Finishing touches on the free Turbo Kit template to make it easier to use.
  • Move toward a single, clear CTA: “Get started” with minimal fluff.
  • Remove extraneous sections (docs, multiple CTAs, gradients) to accelerate onboarding.
  • Plan to publish refinements on the main channel while keeping the daily cadence in mind.

Strategy: PRD and GTM stance#

  • PRD is essential: treat it as the foundation, both at feature and product levels.
  • Start from a real problem, not a feature idea. The solution should directly address pains.
  • B2B vs B2C go-to-market:
  • B2C: consumer behavior drives adoption, but can be messier to scale.
  • B2B: bottoms-up often works better if you have strong product-led value; look for a champion in the org.
  • Bottom-up example: Figma-style adoption where one advocate drives enterprise adoption after initial success.

UX research tips for product design#

  • When testing interfaces, watch users’ facial cues to gauge what stands out (call-to-action focus).
  • Do feedback sessions during peak pain moments (e.g., busiest restaurant times) to capture real friction.
  • Use rapid, in-person interviews to validate concepts before heavy engineering lift.

Plan for the Free AI Starter Kit (Next.js + Supabase)#

  • Rebuild approach to be approachable “out of the box” with a single, clear funnel.
  • Key tasks:
  • Strip down the UI to a clean Get Started page.
  • Add essential OAuth providers (Google and GitHub) via Supabase UI blocks.
  • Remove unneeded pages and navigation to reduce decision fatigue.
  • Implement a streamlined header with a GitHub link and a sign-in flow.
  • Prepare for a PRD-driven README with setup steps (OAuth client IDs, secrets, redirect URIs).
  • Configure a dev tunnel (local host:54321 or equivalent) for OAuth callbacks during local development.

Auth flow and provider setup (Google + GitHub)#

  • Google sign-in:
  • Create a Google Cloud project, set up OAuth 2.0 credentials, and obtain client ID/secret.
  • Configure the redirect URI to match the dev tunnel (for local testing).
  • GitHub sign-in:
  • Create an OAuth App in GitHub Developer settings, obtain client ID/secret, and set the redirect URL accordingly.
  • Implementation notes:
  • Use Supabase UI blocks for sign-in components.
  • Centralize auth instantiation (singleton pattern) for reuse across pages.
  • Remove optional sign-up flows you don’t need to keep the focus on getting started.

Code and architecture notes (practical refactor plan)#

  • Move to modular components: separate Sign-in buttons, header, and footer into dedicated files.
  • Replace hard-coded prompts with props (e.g., a dynamic prompt badge that accepts a prompt string).
  • Clean up environment handling and move sensitive config into a secure pattern (env vars, server/client separation).
  • Start with a minimal homepage and a single “Get started” button; de-emphasize secondary sections.
  • Prepare for future Rag (Retriever-Augmented Generator) integration with Supabase Edge Functions.

PRD and documentation workflow#

  • Use Taskmaster to parse the PRD and help generate a README outlining:
  • OAuth setup steps (Google + GitHub)
  • Local dev setup with a config tunnel
  • How to run and test the starter kit
  • The README should be approachable for users with minimal development experience:
  • Step-by-step Google sign-in setup
  • Step-by-step GitHub sign-in setup
  • Local testing workflow and how to deploy if needed

Next steps and long-term plan#

  • Add Rag-based flows and Edge Functions for a batteries-included AI app.
  • Use a templated, repeatable pattern to rapidly spin up ais with vector stores and embeddings (e.g., using OpenAI or alternatives).
  • Keep the daily cadence: one focused build + practical strategy tips.

Takeaways#

  • Start from the problem, not the feature; PRD clarity accelerates AI product work.
  • Bottom-up B2B can win if you ship a compelling, lovable product with a champion in the org.
  • For starter kits, a clean funnel and easy sign-in flow dramatically reduce friction for new users.
  • Plan for onboarding docs and a repeatable setup flow so others can replicate quickly.
Transcript

Hey there, I'm Parker Rex. Welcome to the channel. This is a daily upload where I go through AI strategy, go through some questions that people have, and then I do a build. We're gonna go along today. So, buckle in, grab your popcorn. We're going to be finishing up Turbo Kit. TurboKit is the free template that is your beautiful AI toolkit all ready to go, free of charge. We got a lot of people that want it. So, I was like, whoa, I need to make it better. So, we're going to just sit here and we're going to do it. We're gonna hammer it out because I just finished everything that I need to do for the week on the client side. Let's go and check the comments first. See what people are yapping about. About to hit 600. That's good. And uh I added three more pieces of content that I need to get done each week. So 10 total. Let's see. Are PRDs created on a feature or product level? Both. Product requirement document. Check the last video if you don't know what it is. It's the most important thing besides architecture when it comes to getting the most out of these LLMs. So if you are thinking about a single feature starts with a problem starting to think about a new product still a problem always problem problem get the solution out of your head in terms of starting there you think differently about solving pains for B toc versus B2B the end of the day it's people it's more about a go to mark mo go to market motion there so I'll give you a use case if I'm selling something to a consumer consumer, they will have different purchasing behavior. That's just the truth. That's why a lot of ventureback companies, they make fun of B2C. It's a little more challenging, but that's shifting now, which is funny enough. But in my case, I built for B2B. I built for B TOC. I always use delivery dudes because it's easy to understand. We'll just give a quick use case. So B2B versus B TOC. See B2B verse B TOC. So in this case we have our drivers who drive and pick up the food. We have our restaurants and actually drivers slashc customers. It's funny. I'm looking at this and it's really I'm selling a product to the drivers. So they're mini business. So they actually go over here. Come think of it. I can select things. But both of these are actually businesses. This is a 1099 independent contractor and this is a obviously business restaurant. So when I'm selling to customers end of the day they're people. So I don't really think that differently about it with customers. I'd go and I'd meet with them a lot of the time just to buy time for my engineering team. And uh you go and you do customer interviews and there's a lot of tactics that you can do when you're working on interface for instance what I used to do a really good trick for this if you're using something or sorry if you're designing something you go like this. So, when you're meeting with someone, you're getting feedback, you're watching their eyes, like you are like glued on their eyes and their facial representation, the facial gestures. It's it's like a crazy thing, but you keep your eyes on their face and when you ask them, hey, I'm going to show you this interface. I'm going to do this to you. I'm going to show you this interface really quickly and I'm going to show you it quickly. So be ready and tell me when I take the phone away what you saw. They say, "Okay." And before they like register, you kind of catch them off guard. So you say that, they say, "Okay, why?" They might ask like something and you go like this, and then you go like this. They don't have enough time to register everything, but you get to know what the biggest call to action was on the page. That's a little tip there on the design side. And you can't like avoid doing that. Like that's like something you should do if it's a business or it's a person. So, I'd do the same thing at restaurants except I'd show up with a tablet and I'd go in and you'd try to find yourself in the busiest time like because that's like where the try to put yourself in the position where the problem is the heaviest like it's the biggest pain and then go and talk to the customer and witness and watch and ask questions when that news is still recent like when that problem is still like relevant because you know recency bias. So they'll like really let you know how things work. So yeah, I don't I don't really think of it very differently besides just the fact that the way it's being sold into a company might be different. So if you're doing big enterprise stuff, then the best one in my opinion is bottoms up. What that is is you can think of Figma. Figma does this and it did it really well where if you're in an organization and you have all these people you have one at the top it comes all the way down and this might be the the guy who buys the enterprise account but then below him it comes all the way down and you end up with like a million designers but then you have the champion there's this one here and he loves it and he's like yo dude this is fire yo dude this is fire. This is fire. This is fire. All them use it. And then someone from the go to market team at Figma's like, "Whoa, hey, can I talk to Bradford?" All the designers are like, "We hate Bradford." And then they buy enterprise thing. So bottom up, you have to be a better product, but it's good. like the SAS the consumerization of of B2B SAS but that's a thing where Yammer by David Saxs he follows me on Twitter the AIS are but he did that and then sold his company for2 bill to Microsoft by just literally consumerizing business software cool other questions where are they turboer kit we're going to work on it today prd prompt and turbo kit, please. Yeah, this video showed up in my recommendations and I just watched it. Thank you, Filibuster. I have reactions to various things. Why don't you write me all of them, my dog? Tell me everything. Elaborate node to node network. I draw out. Okay, I need to be more specific when I do these because you're thinking UML. you're thinking like the egress, ingress, the network calls, all that. And I love it. I think I'm just trying to make it literally an ordered list of operations for people to then learn how I think about these things being in a chain. So, I totally agree that by having it go back to some sort of central agent to do a check makes sense. That's actually how I was thinking of setting it up. If you watch a really old video, which is not that old, been on this channel for a month, but having a DB that's just like what happened here and then someone was managing said DB. You see this with Perplexity where they have like a chief operator. But like if I go to Perplexity, I've used this example before, but it's a really simple one where it's like you come in and then you type and then when you get your results back, there's like an image carousel here, right? So this is one component. Then you have a I don't even know what's here. Let's just call it a summary. Then you have the answer and then you might have the suggested things. So that's like what one, two, three, four, just to make it easy. But in that chain, you basically have the searcher.tsx and then that thing has its own set of tools and then that's going to go off and that's going to be like task cider. Basically, it's a split in the road. Like do we have enough information? So if I ask how do I get Tesla shoes, it's like is Tesla like that's a horrible example. It's like tell me what's good about Tesla or is Tesla good? It's like very open-ended. So it might loop back and hit something that's like the refined or TSX then that has its own tools. But yeah, then it's like, okay, based on that, you go this way or that way. And then you have all these things that end up giving you the answer and circling back to one main one. So I agree. I totally agree. That's smart. Turbo starter kit. Starter kit. What's up, dude? You're here in our Discord. Our Discord is the best. I love it. A lot of people asking for stuff, which is great. It's so great. Look at all of them. That's what we're going to plan out. And I might build it here. No, I'll probably build it on the main channel. That'd be interesting because I'm doing rag and people probably want to know, I guess. Well, those are the questions. Now, on the news side, I'm trying to think if anything's like actually that awesome. Let's just pull up. I just do it in here. So, what did I post? First of all, Taskmaster, the new one came out. So, we're gonna install that obviously. Then the Taskmaster channel. And then other things that I posted was interesting. Rock three, that's out. A lot of people are disappointed because they said it was going to be a million output. It's 128k. That's like not a million. Other things Samma is saying that open AI now has permanent memory of everything. And I mean it cool, I guess, but a lot of people are hating on it because like yo, you don't have an edge. You just sort of are like leaning into the personality thing. my wanted to show you because it hit me with a little modal where they're like we got this cool thing and so I wanted to see it says if you want to try it click this button and I tried it and it's like describe me in you know a catchy way and it says you're Parker Rex the AI Swiss Army knife with a product brain in an engineer's hands here's the breakdown blah blah blah blah blah blah blah blah blah so probably Nice that it's there. I guess they launched that and then other things. Oh, this is wild. Gemini is playing Pokemon. Wait, [Music] what? If you want to, you can go watch Gemini play Pokemon. Kind of cool. New models getting announced today. I did not see that? Those are some other things. And then what else? Oh, I had just seen someone wrap the notebook LM API somehow and they like made a product out of it, which is kind of wild. And then AWS, just so you know, it's I I overheard overheard on the Taskmaster channel, it's like really easy to get the 1k credits. I've done that for Google got like an easy which is nice. And then Gemini, just so you know, they did a big update. And the second that you drop in a YouTube video, it knows the tokens, which means they've trained the entire like after you upload your video, just consider it as training data. So, they're just going to crush it on video. Like they they won video generation. Definitely definitely. Other things I think that's it. Yeah. Cool. So, let's plan out this build. Let's plan out this build. So, if we look at our codebase, I'm trying like the reason I took a while is because I honestly got slammed this week and I knew it was going to be a hard week because I was adding more content. But alas, we're here and I want to make this really easy for anyone to use. So, let's let's get into it. Let's close these out. Let's make sure our camera's going yet is okay. Let's get into dark mode because like who wants light mode? Not you, not me. Occasionally me. But let's decide what we're going to do. Are we still rebase? Just sure. Fix it. What has happened to me? Uh what you have different diversion burn yeah Uh, tada. Now, what do we want to do? We want to run it and see does anything work. Let's get that. Let's get that. Let's make sure we have something on the page. Want to make it look good. Make it function. Feature section. Yeah, I deleted that. want it. So, okay, we have a subscribe input. We need to type in this. We want to delete this. We want to literally just have one page because we don't care. Get started quickly and we don't care about this. So, let's access all of we probably need the clone the repo button. It's kind of the whole thing out of this. So, let's yink that. And then let's see if we have a footer. Yeah, we do. It's like this large name thing. I don't like it. It's cool once and it's kind of practical. Let's get rid of this gradient. But we want to dump our thing first. So, what's this button doing? The transition button. Oh, that's Let's grab this. Let's delete the hop on X button because we're just again we're trying to push people through a funnel. There's like a direct action we want them to do. So, if we wanted them to put their email, I guess I guess we do. I guess I don't want it. It's just there for people to use. So if they want to, they can. Personally don't want it there. Do text left. Let's not do that because we already have one. All right. Move this thing to the left so it doesn't look horrible. That's fine. Now, what's this other stuff? Full grid. Grid is fine. Stick the stars up top. Link to the demo. We don't have one. Skip that. We have no docs because we're going to train it. No one wants to read docs. Nobody. Actually, I don't mind docs. I just know that people that are gonna use this won't want it. So, let's get rid of that. And then let's get rid of We have like a socials thing, which is kind of cool. Follow the people. Follow the peeps. Follow the creators. It's fine. Parker Rex, it's me. Then Har. Okay, let's grab this Get Hub stars thing and that. And then let's go. We have a header. Is that up here? Yeah, it is. So to the right of the sign up, put that there. import bro pass the GitHub data. So let's go to [Music] footer this get data we need to this. Yeah. So, okay, we just need this. Why is this as a type there? Oh, good job. No, no, no, wait. That's not the off button. That needs to be Oh, it's in the off button. That's a weird thing that it's called. This shouldn't be turbo kit. Oh, never mind. Let's uh we're in the wrong spot. This is confusing. If I'm confused by it, a noob's definitely by it. So, let's get this out of here and get that out of here. And let's go back to the top. Super base on. Where is this thing coming from? Super base. environment var warning. I don't like this. Some dependency. Hopefully not anywhere else besides that. That's in the layout. That's fine. I don't like this name header O. Oh, don't like it. So, we're going to get rid of it. Now we have our buttons gone. We do not have buttons in there. Get rid of this. Bye. Goodbye. Cool. Just don't like that. Um, we don't need these buttons because we're just going to have one one button. So, let's go back into our page. We can get rid of all of these. Okay. And then we'll get rid of this section. And we'll grab that and we'll go up. Put it after that. That's fine. Then get rid of this section. Okay. Now, back to the header off. Let's rename this. These are like off buttons for whatever reason, I guess. Is it conditional? Please update this with [Music] that. Um, these Okay, this is just a link to the page as child thing. I'd never like seeing that. Why not? Now we have those things set up. It's a conditional. Okay. So, let's just do We're going to break these into separate files because it's way less confusing. Sign in. Sign in button. You can do it. Cool. Let's grab this. Let's grab that. Okay. Where is it? Let's cheat. No, it's not cheat. This is actually slower. cheat if has envir variables. Show this user that. Um, smart. Maybe not. Maybe I think I need that. I just don't like this setup at all at all. So, we're going to get rid of it. I want to do what I want. We need our new signin buttons. So, let's grab this. Let's go to superbase.com. We're going to grab their new blocks which developers superbase UI UI blocks the client. Make sure we have the latest client stuff first. Cool. Cool. Cool. Could have been literally the same thing, but I just want to have the latest and the greatest. Okay, these things always get yapped at by biome. Okay, let's go in the server. Grab our server thing. If you're unfamiliar with what I'm doing is this is the instantiation that superbase needs in order to authorize different actions. So it's a singleton pattern, meaning instead of doing the same thing across the whole project every time you need it, you just have it here and it's passed into anytime like need to do something. really really helpful. Now we're gonna have password based off for the peeps. So that's we need a confirm thing. Um so that stops yapping at us. This large footer large still in there with this gigantic thing. That better, better, better, better. Which means we don't need that. Which means we don't need that. Okay. Just call this. Rename it. And then we'll pull it out of here. I never put those ones inside of UI. Like these are like primitives, right? Don't touch the primitives. Cool. Cool. Deploy. We don't need this form message. What's this? I don't like it. We need a button. We can get rid of this prompt badge. But actually, we need to be able to pass in a message. So, let's do this. update the prompt badge so that it takes in a query and I guess it would be like a prompt suggestion as a prop string as a prop. What that means is it can be reused. So instead of it having like hardcoded stuff, it's going to be able to take that in and then dynamically update call. That'll work. GitHub stars. We still need this. I know it seems like I'm all over the place. It's because I'm just trying to rip through some garbage in here. We don't need a next logo. We're going to get back to the off in a sec. Submit button probably. Probably garbage. I don't like it. Goodbye. Subscribe input. That's our thing. We don't need a super base. Maybe it's mostly cleaned up. Where's hero? That is part of their starter. So, that goes then one hook. An empty folder here. Got this which that we know works. So that works. Give me give me some types, bro. I just need a couple types. Doing me dirty. That is going to be mine my name. Cool. That to-do fetches Gemini. Probably not going to use that. I'll use AI SDK engineering. We're not going to do this. I What I tried to do was when I was like on half an hour of sleep, I tried to quickly make it work without rack, which is never a good call. And I tried to v code it, which is always tough. You don't actually work. So, that import is going to f everything up. Hopefully, it'll fix itself. Let's do froms. Good. It fixed itself. So, I changed the name of it. That works. Back. Okay. What else? Data contributors. Yeah, this is fine. Fetch. Fetch. This we can ignore for now. is biome. Biome. That's fine. That's fine. That's fine. Okay. Where are we? Need to get some off stuff in here. This icons. Why is that in here? What icons are these? GitHub. Self close. Sure. Sure. Do your thing. Go on. Go on. Do your thing. Look at all these icons. Okay. We're going to make that out because it is going to be not a primitive. Put all the all the primitives in there. And then anything that had like logic Customized. Uh, no span. What is this for? Breadcrumb. Interest. Oops. No, no, no, no, no, no. Uh, biome. Sure. Okay. Beam switcher. We He is fine. Whatever. Okay, that's mostly cleaned up. Got a little issue in here. Hi, Mike. Go away. Chartsy. Goodbye. Bye. Tutorial code block. This is no goodbye. Okay, we're gonna finish this. By the way, we're going to finish this whole thing while we're here. Meet the contributors meet teams project. So, this is a new page. Okay. Um, there they are. Got a couple links. Let's make that look a little better. Okay. Make this look about a thousand times better. Small interactions. Hover dark uh subtle claw glass. Easy to look at on all screen sizes. Let it do its thing while I do something else. Now, let's do the here. We're going to grab this. Think I'm contemplating. We're not going to do this. We're going to do every provider because people want it for the people. You know who likes emails. Boom. Hello. Midday. Midday is my favorite thing to pull. This is the TRPC branch, I believe. So, let's jump in and we're going to look for notion. Maybe he took that off. There's Slack. Where are you? Slack config packages client. Yeah, that's a client secret. We're looking for the routes slack and sorry URL call back. Um, oh, that's for a package to connect it. That's not what we're looking for. We're looking for login with Slack login middleware. This is a nice middleware, huh? This is a nice need that we'll just keep that one open. We're gonna need this. This is the login. And then here's all the individuals. So, we need these three. And then we'll need some other need to. Yeah. So, let's grab that and then let's go into our config tunnel. This is for super base. Need any of these. Let's do that. We need to make sure this matches. So um on our dole do something like then see make sure his is good env example for the website for the app. There we go. So, we'll need those. And Google, where are the keys? Other o providers. It's fine. That sorry about that people. Now this is for Taskmaster goed. This isn't even close to right. Set that up. We need the middleware. We need a couple other things. Let's grab the page. This will be the login page. So yes, we don't need any of this EU stuff. Login page. Switch preferred. Oh, preferred signins. That's nice. We're just doing Google. So, let's grab clean it up, but let's go into here. It'll probably be in components source. Let's do Google sign in. TSX that up. Paste. Change a couple things. What's that one? We don't have that. I know. So, we'll remove this conditional around if is desktop. Where's that block? And everybody Come on. It all seems fine except for this get URL thing. So let's look at that. Get URL inside of utils environment. Utils dash environment. If it's that, return that. If it's this, return this. So let's go to utils source utils cd source utils touch environment ts environment there you are cool that'll work for cell Uh uh what is this thing? Uh rmrf utils.ts guy. We need Oops. Need to make some changes. Is it going to be right? Is this a I got the bottom two right? Not the top one. We don't we don't want the server one. This is a client component I think. Yeah. So we will replace that word with client or is it browser? Oh, there we go. Cool. Then icons. Icons. Icons. Icons. Which icon is it using? Icon something. Google. Okay. Let's grab his. Thank you, sir. Icons. Oh, we do have a Google. Yeah. So, just misspelled. Yeah. Let's Let's fix ours for the fellas. Um, tailwind. Look at us go. Come on, Tab. You got this, dog. Come on. It's not doing its thing. It should. It's not. Come on. You got this. Almost there. Okay. Pretty pretty pretty pretty pretty. Okay, now works. Cool. Now we have that. Now we need to grab What did I just Okay, so we have Google sign on. That's good. It should be good to go. We need that. Now we need need a login for slash page. We don't have a login. Okay. Do we have off pages inside of here? We don't need forgot password. We're not doing email. Goodbye. Talk. Plus, people don't know what parallel routes are or route groups are. They're so new. We don't need sign on. We don't need sign up. It's the same. We don't need we don't need a layout. Cool. What is in here? That Shouldn't go there. API. Let's do login page.tsx. Okay. Start deleting consent banner. No. No. No. Oh, maybe get XP. No cookies. Probably that. Okay. It's a waiting cookies. Good job. need this. That device thing I'm assuming makes it so you can do this case switchy thingy that he has. Let's change this. Actually, just skip ahead. I don't know how he decides what is preferred. But we just need these. So that's good. This is like kind of confusing code, but only because I don't need it. So, yeah. So, we just have one and that's preferred. That should work. And then we need to change this vibe AI. I vibe with AI. Yeah, it's fine. log into Turbo Kit. We don't need any of this. So just say we make building AI apps actually fun so damn easy your brain may just melt. We don't need any of this because we're not a paid thing. And that can go. That's all good. We need to get a GitHub sign on. So, let's Where is that? That's in components. Touch GitHub. Sign on echo this to get I always messed that up. I was so excited about it. That's gonna be that. It's gonna be wrong. All right. Now we have GitHub and Google. We don't need that. That Come on. Can do this. Fix the damn syntax, bro. It listened. Cool. What do you mean? There we go. Okay. Got GitHub. We've got that which means in the instructions. Whoops. We're gonna have to go into readme and we're going to yap write a readme about how to set up GitHub and Google off a forbase that's inclusive of actually going to those individual sites. So for Google you go to the cloud platform and you create a client ID underneath the project. Assume the reader of this is absolutely no development experience. Creating the client ID, getting the client ID, the client secret, putting in the redirect URI as well as any sort of authorized API endpoint. So from the server, that's our config tunnel which is the local host col 54321. And then for GitHub, it's going into GitHub, logging in, going to developer settings, going to API, I believe, and then creating an OOTH connect, then pasting in those values. So, just expand on all of that. Thanks. So, I just use Whisflow. So, I'm going to put that in there. And then what I'm going to do is I'm going to let AI do its thing. I'm gonna say uh use taskmaster to parse the prdit. I'm going to try something. It's gonna be the best read me ever. Oh my gosh. I should have downloaded the new version though. Well, okay. So, that's going to go and that's going to do its thing to try to help. We need to see about these cookies. So, constants cookies. Oh, preferred sign on. That makes sense. Yeah. Let's yank that. So, let's just export cookies. Okay. Okay. Export cons cookies equal. Boom. Dope. Now that came up with the tasks and what it needs to do. It's going to write something sick, I'm sure. Cool. Get started, boss. It's gonna go and be a little. Okay, that should be good. I spelled constants wrong. Dang it. And then utils two libraries. What is going on people? Utils cont. Okay. Look at it. Go. Okay. Now we have a sign in. We have the homepage kind of clean. We have a read me. Got a bunch of garbage that we took out. Didn't even open. Didn't use any of this. We could if we wanted to. This looks yummy. Uh let's try this out. And we don't want to wait. So, oh no, no, no, no, no, no, no, no. Uh, do that. And that's adding in a bunch of rules specific for Superbase. So, now I can write functions. Cool. Cool. What else do we want from here? That middleware. That middleware is probably yummy. The dash. Yeah, it is. Yeah, it is. What's in here? Updating of session. Very important. We don't need anything to I8. That's internationalization. We're not taking this to China. Good. Why not? Let's do that. And then there's a setup page. Hang on. Where is set? But no full name. Okay, that's smart. We don't care about that. This is just for like whoever gets this. It's like, hey, I get the rag that teaches me how to use it. I get a DB. I get social sign on. I get an explanation of how rag works by having rag in it. I think that's pretty cool. I think that's a good value prop. So, yeah. Sick that. And clean clean. Whoa. Whoa. Whoa. Whoa. Whoa. What's going on there? So, they have a middleware and then they have another middleware middle. Where is that? Oh, it's a super base one. Okay, never mind. So, that's cool. Now, I got to yank a bunch of stuff out. Server. Yeah, cool. Huh? Where's update session is not Oh, take his then. follow our boy. He has an update session here. They do not have in their docks, but we're this far and it works. We know his works. Don't need that. Don't need that. Don't need any of these. Don't need that. which the update session is looking for a second arg. So, uh where is that? It's a second arc response. Does it need that for? Come on. Give him the thing you need. Hello Middleware middleware. Oh, this is middleware request. It's expecting we don't need it. So, let's just How's the rest of this thing work? We don't need that. It's gonna What this thing does is if you have uh you've internationalized your app it will delete it'll cut it so you don't see that. So if you have a session, see if no session and login then search for new. If we don't have invite codes, we don't have team selection. Get rid of this. We don't have multiffactor off. Don't need any of these. set up. We don't have invite codes. Okay. So then what did we even get out of this? The question search params session. Hopefully that works. I need to read it. Okay. So we get the client. We're connected. We're calling an update session so we can hold it so that people are not going to get kicked. We do an asyn request storing a response which doesn't get called. I think it's this thing. It's like supposed to do something in here, but it's where's response in here? returns at the end. Makes sense. Honestly, I'm not reading this to understand it at the moment. trying to go too fast. So, if this bites me in the ass, it's totally understandable. We have resend. We've gotten the login. We've gotten the sessions management. We've got What else? It's going to kick them if they don't. Should hold the session correctly. What else can we do? We even get into rag. I'm going to do rag on the main channel. Um, we need some buttons, right? So, let's grab some buttons to be spot. We need to write some of those. We need to I'm getting a phone call. I'm gonna continue this tomorrow. Whoa, it's been an hour. I blacked out. I'm going to push this stuff up. It's in a totally broken state or just not done. Added uh gc-m feed. Add GitHub and Google sign on. What else? Clean out the trash. Clean out unneeded files. Then what we can do is we're going to do one of these nip. Oh nip. It's finding all the unnecessary stuff. Unresolved imports. A lot of them. Unused dependencies. There's a lot of them, too. Holy smokes. Unused files. It's fine if we're not using this just yet. Dependencies, unused dev dependency, unresolved imports. That's one that we want to deal with. utilsutil. Oh no, it's coming from actions. That's because we redid our don't need this. It would be confusing too because it's like all that's there. It's actually I thought I renamed this protected. I don't like this protected stuff. Reset password page. I thought I get that should be good now. better. Did you ever get a new version of this? That's the real question. Design enhancement says it did. It change it to border white. I don't see any of that. Apparently it did it. Let's check out how our boss did with this taskmaster. All right, good enough for now. It's all progress. Hour long. It's coming together. I uh originally was just going to throw out something kind of quick, but I'm realizing that I should make something really good. So, yeah, I'm gonna add rag next. Probably use What am I doing with my hands? Probably use superbase edge functions because it's like batteries included to have any dock that you drop in vectorized. I think that's like probably a good thing to learn. It's like the first thing that I did when this space got hot was like, let me roll my own one. You don't have to go roll your own one and like connect a bunch of stuff. You literally just can do the easy one. Batteries included where you have something that you drop stuff in and then it kicks off the process calls open AI's embedding ADA. You could use a different one, but that's just going to be easier for people. And then you have some sort of templated uh chatbot. But yeah, that's it for today. That was a long daily upload. Hope you made it to here. Like the video. Go check out the school. Peace.