Vibe coding and agents are all the rage! My most recent experience was quite lackluster with AI agents... but let's see if we can build the landing page for Code Commute in Blazor and Aspire using agents!
As with all livestreams, I'm looking forward to answering YOUR questions! So join me live and ask in the chat, or you can comment now and I can try to get it answered while I stream.
View Transcript
All right, I think things are going. I hope I just rushed back home to to get on the stream. So, let me get back to my full camera. Um, yeah, let me find the chat. Sorry, I'm very flustered. But I like if I don't start the stream on time for LinkedIn, then the event just like totally craps out. So, not a good spot to be in and then it starts streaming to the wrong event, which is ridiculous. Hello on Twitch. Good to see you here. Um, so yeah, we'll get started in just a moment. Uh, it's going to be a different type of live stream than usual. Um, which is going to be fun. By fun, I mean I'm probably going to mess up a lot of stuff, be flustered, but that's all part of it. So, we are going to be coding today, and
that's why it's a little bit unusual for this live stream. We're going to be vibe coding or something. Epic Video Game Life. This is the one that you joined is going to be the the most weird different one than than what we normally do here, but thanks for being here. um architect good to see you the yeah the we're going to be building something for code commute which is the cool part so for context we're going to be using cursor we're going to be starting from scratch we're going to see what it can do and we are going to try building the landing page for code commute which some folks are here from code commute that is my vlog YouTube channel where I answer questions on software engineering and career development and I either either do it from right here if I'm if I haven't
been driving much or I do it from the car going to and from the gym and to and from work. So, um by the way, this week because I'm going to be going into the office every day, there's going to be a lot of code commute videos. So, we're going to build a landing page for that. And for folks that are not familiar with Code Commute, the the style of that channel is very much me trying to answer questions for people. So, uh, if you've watched code commute before, I try to say at the beginning of every video like if you have a question, leave it below in the comments or and then I direct people to different social media. I say, "Go find devleader on any social media channel. You can send me a message and uh I'll keep you anonymous that way." So,
I figured I have code.com because obviously you have to buy a domain name for everything, right? So, I have code.com. I think if you go to it right now, what does it do? Let's see. I think it just goes to the YouTube channel. Uh, let me one second. Just want to hide some stuff before I share my screen. Um, if you go to codemute.com goes to YouTube, right? So, we're going to change that. It's going to be a landing page. It's going to have uh Aspire as the I want to set it up with Aspire so I get the dashboard as a minimum. We're not going to deploy it today. I hope we can get as far as it running. Uh but we'll have it running locally and it's going to be in Blazer. So, it's going to be cool. I'm nervous because I fully
expect based on my experience uh working with LLMs and agents and stuff, it's it's going to be it's going to be bumpy. So bear with me. Um I'm excited. Let's see how good vibe coding can be. Yeah. And I want to clarify too, I'm calling this vibe coding. I've had people call me out on this before. Um yeah, there you go, Deon. Go renew your domains. Um or build something for them. The uh the people that have commented back when I say vibe coding, they've said, "Nick, that's not vibe coding." So up for you to decide what you want to call it. I just want to clarify what I mean by vibe coding in this context. I know how to build software. I've done it for a couple of years at this point. And I have been told that when using an LLM, if I'm
giving it like corrections or telling it to change things because it's wrong or go down a different path, like that's not vibe coding. I'm supposed to just like copy paste new prompt, copy paste, and hope things work. And that's that's the vibe part. I'm not doing that. I am going to be using an LLM in my opinion the way that I would try to be talking to like a software engineer that's going to be doing work to build stuff. So, if that's not vibe coding by your definition, I'm sorry, but that's what's going to happen. So, let's get cursor pulled up. I'm not sharing my screen yet. I just want to make sure I can get it up here and we'll get going on it. So, as I'm going through this, uh, you know, I I want to remind people, too, it's it's Epic Video
Game Life's first time on a live stream here coming from Code Commute, but the uh the whole goal with my uh my live streams is they are AMA format. Yes, I'm going to be coding live in this one, but um definitely if you have questions about anything, it's not about what we're doing, yell it out in the chat. Um I'm happy to try and answer that stuff. If you're seeing how I'm prompting stuff and you know stuff's not working, like jump in the chat, share your thoughts. I'm I'm all I'm all here for it. Um I think it'll be it's going to be messy, but it should be fun. So, let's let's see. You guys see cursor? And how do I even use cursor? File, new. Can I just like start in the chat? Do I have to open a project? Where's the Where's the
tab for chat? Why is that not even showing? Open view. There it is. Sorry. I don't code on this computer. This is like my streaming computer. So, nothing is set up the way that I expected to. So, what I want to do is use agent mode. Um, I'm not starting with a context. Uh, and sorry, what I mean by that is I'm not starting with anything. What I've been doing on some of my other projects, um, this is kind of in place for Visual Studio Code. There's like a or you've seen it in chat GBT, I'm sure. There's like an instructions file and the idea is that you can give it some like some context. It's going to be attached to every every prompt that you're doing. Um, I'm not going to be doing that for this because I don't even know what I would
want to put there. We'll see. Maybe it would be helpful, but I'm not going to start that way. Uh, question in the chat. Do you use Linux for coding? I don't use Linux for anything. Um, no. I don't like using Linux. I am a UI person. I have used Windows my entire life. I'm very comfortable in it. All of the reasons that people seem to hate Windows, I don't seem to have those problems. It's like all the people that hate using Visual Studio, I don't seem to have those problems. I'm sorry if you have problems with that stuff. I don't seem to, but no, I don't really use Linux for anything. I deploy software to Linux VMs, but I don't I don't like spending time in Linux, and I don't like spending time in a command prompt. And I'll be the first to say it.
I know a lot of people sort of measure their their software and programming expertise by how much time they spend in a prompt. I'm like, I just I don't get it, man. Like, I'd rather see stuff. I'd rather click buttons and see what's going on. I don't play video games at the the terminal, right? So, um I can be more I find I'm much more effective uh with the user interface, but let's see. So, I think, and I haven't tried this yet, so this might just flop right from the beginning. If it does, I'll go to Visual Studio quickly and uh get it scaffolded, but I'm going to start in C. Oh, you can't see the chat. Uh, I got to move something around. Where should I put Should I hide the chat? Do you guys have an opinion? Do you want me to move
my head over here? There's no good spot, is there? Let's um I'll just move it for now. I'm going to have to remind myself to move it back. But um Oops. I I don't know if we I think we can get cursor to start a new project, but I haven't tried it yet. So, what I want to do is give it some context for what I want to build. And I've had people suggest to me that I should be asking the LLM back like, is there anything else that you want me to provide details for? That seems to be something that can be really effective for enhancing it. So, uh I want to build an um uh blazer website with serverside rendering and have support for Aspire. Uh I will need an Aspire project and a Blazer project created and then I don't know how
much context I want to give it right away but I think it might be helpful for starting things off. So we'll be creating a landing page for my website called code commute. Uh, what information do you need to get started scaffolding the Aspire and Blazer projects before we begin? I have no idea if that's going to be okay. So, let's find out. Can I do this for now? Can you guys read that? Okay. Is that coming through for text size and stuff? Let me know. I don't know how to Can I even zoom in on that? No, I can't. So, if it's too small, that sucks. Um, okay. Project structure, naming, solution name should be called code commute. Sure. App host and web. So, it knows this part at least. Uh, thanks on Twitch. How do you spell out how I'm supposed to phonetically say
your name? How devor? I don't I want to be able to say it so I don't just keep saying on Twitch bigger please. Sorry Epic Video Game Life. You got move your head closer to the screen. I can't zoom in on it. I don't think I'm trying with the mouse wheel. It doesn't work in control. But you can see the project naming and structure. Seems like it can figure out I need an app host for Aspire. The web part for Blazer uh.NET. Um okay, I got to tell it that. Good point. Aspire orchestration. Do you want to use Aspire for local orchestration only? Ah, these are really good questions. Um, however you think it should be spelled. Hey dev is what I'm going to call you if that's okay. How? I don't know. I'll try my best. Uh, additional services. Oh, good question. So, we'll
need a database. And I was actually filming a code commute episode right before rushing in the door to get here. Um, and I was saying that it is going to be going to Azure. And for the database, I don't know why I always just go to MySQL for some reason. Like it just habit. I'm going to I think Azure has Postgress. We're going to use Postgress. Um Blazer hosting model. You mentioned serverside rendering. Should this be a Blazer server app or do you want web assembly? No, we're just going to do Blazer server app, I think. Uh authentication. No, I'm not going to do that. I think and for the reason why is like I don't want people to have to like make accounts and stuff to submit questions. I'd rather just have like some type of form entry. We're not even there yet. We'll
get to it. Styling. Oh, front end. These are front-end words. I don't know. Tailwind. Oh, no. Bootstrap. No. Uh, we'll get to that at some point. Source control. Git. Yes, that would be really cool. Um, so these are I'm I think this is a really good question to to ask because there's a bunch of stuff that I just assumed that it would have known and I feel like it got a pretty good idea, but there's some good stuff for me to clarify. So, let's go through this. Um, I know I just did it verbally, but I can't type and speak at the same time apparently. Um, I'm interested to see how they protect the server from attacks. Yeah. So, we'll I think what I'll want to do is make sure when we're getting the submission, we're not using subversion. No. Um when we go to
do the submission part, what we should try to do is make sure there's rate limiting and other stuff. Uh fortunately for me, I at Microsoft work on a team that does a lot of stuff like this. So, uh should be able to figure something out. Uh but let's go through this. So project structure uh that structure and naming is great two uh let's use net [Music] three so we'll deploy with Aspire as well um not just locally and then additional services we'll need a Postgress uh database uh when well I'll just say we'll need a Postgress database that will be hosted in Azure for and I don't know so this part I'm a little bit nervous about because I'm not running Postgress locally I don't have a Postgress instance in Azure right now so we might have to do something we'll see how far we
get Maybe I have to use SQLite locally and then flip over to Postgress. We'll see. Um, where's Kubernetes? Yeah, I need I need Kubernetes. That's a great call out. I'm I'm amazed it didn't suggest Kubernetes for me. Um, that's a good one. Uh, okay. I think that's it for three. So, four. Um, just a Blazer server app. But that's that's just the server side. Um, yeah, I need the web assembly laser with server side rendering five. Um, oh, authentication. No authentication. Styling framework. Uh, what what do we do? I want opinions on number four for the styling framework. I'm going to come back to it, but I'm looking to you chat. Um, Tailwind is the thing that comes to mind. I don't do this though. I I live in the back end. So, uh, source control uh, please get um, let's say yeah, initialize the
folder for get source control. I'm sorry this is just boring you watching me type and say what I'm typing. I know we want to see it doing stuff. I'm trying my best. Um uh I like I don't know why I don't like stuff in like a source folder. That always feels weird to me especially SRC. Like just come on just put it all in the same spot all in root. Um uh and landing page will be a placeholder for now. Fried tailwind. Okay, you got it. Ready? Rock and roll. So interesting. So here's what I'll do. I'll scaffold the solution projects with the correct templates. I think that's a good start because I think it would be weird if it decided like I'm going to go down the path of just doing the Aspire stuff all the way through or something right away. I feel
like I I would rather see solution couple projects they don't do anything. Great. Now let's go into one and start making progress. So setting up Aspire to orchestrate the Blazer app in a Postgress resource. I think that makes sense. Then we'll go over to Blazer. Okay. And then the last step is actually initializing git. Interesting. Okay. Before I generate the exact commands and files, uh can you confirm do you want postgress connection string to be set up for local development? Oh, I could use docker. I don't why didn't I even that didn't even enter my mind. I feel stupid for that. [Music] Um yeah. Um do you want the posters? Uh so yes I would like to use docker locally and azure for deployment of uh with postgress can't type okay and then should the spire project include deployment configuration for azure yes uh should
include deploy can't Oh, okay. How deep into the style do you want to go? Tailwind has some decent defaults, but something like Mudblazer might give you more out of the box. Yeah, that's the thing. So, Devon, it's a good question. The it presented those options. The only thing in Blazer that I've used is Mudblazer. So, kind of funny. Um, and maybe I have to pivot. I have to I want to see what it does, but I think it's a good question. I don't know what the answer is that I want. Um, Mudblazer, like I said, that's the one I've used. So, my my website, if you go to devleader.ca, actually, no, that's a lie. I don't know what that uses. What did I build with Mudblazer? Whatever. It might have just been building blog articles, honestly, and videos, but I used Mudblazer before. So, okay.
Um, navigate to code to me web and install. Hold on. So, here. Oh, here's the plan. Does it is it going to do it? Oh, yeah. It's It's just giving me the steps that it's going to do. Yeah, exactly, Devon. If I don't have to if I don't have to write any of the the Tailwind stuff. Hell yeah. Okay. Rock and roll. Please proceed and do all the [Laughter] above. Justin says, "This situation I would use tailwind, but I've never tried with laser." Oh, there's a run button in the code block. I didn't even realize. I know it's doing it right now. Oh, I see. Cool. Thanks for pointing that out. I'm a cursor newbie. Where did it make it? Or did it not? Did it just put it into the chat because there is no file yet? Really? It's running in Oh man, it
wasn't running in agent mode. Can I Am I going to lose the chat if I switch it? Oh no. Okay, that you provided. I thought I was in agent mode this whole time. That was the whole point of doing this. Go do your thing, robot assistant. Waiting for approval. Wow. Auto run. Uh, okay. Oh, good start. Just a reminder, this is the thing that's uh it's replacing all of your jobs. I'm just kidding. Is it going to do this for every step? It just like doesn't work. Doesn't know how to write PowerShell. Yeah. Like am I losing my mind here? Like I don't agents are not taking our job. Yeah. You're right. They're not. I can't like is it actually doing anything? Let's see. One sec. See users Nick. Oh man, it's just like using it in my user folder. Like I see I see
the things and I don't like what I'm seeing. Um I might have to like move this stuff. Close cursor and reopen it or do something here because it's it's building this stuff and I'd like to show you but it's like in my personal user folder. Not a big fan of PowerShell to be honest. Yeah. But like I don't understand like why does it keep doing the same thing over and over failing if it's like like did I misconfigure cursor or something or is it just not is it just being stupid. Oh no, it's going to go install that there. Uh, it it in a moment once once this maybe I'll let this go all the way through. Um, okay. It's doing it inside of these subdirectories. I don't want it to just blast everything into C users. pick would not be good. Um, but I
think it's doing it in client server shared. Yeah, vibe coding turn into hell code. Yeah, if it changes my whole user folder, it's going to be hell cleanup for the rest of my life. Um, so hopefully that doesn't happen. Worst case, we all become software engineers working for military contractors. That's right. Oh, it wanted me to I didn't even see it wanted me to confirm that. Whoa. It's actually showing stuff now the first time. Yeah, Deon, it's interesting, right? The the QDC part. It's like what? Like, why is it doing that? The is that like the when we see the arrow up is that like control I feel like when I've seen like control C I see like an arrow up C but man this is it's very like I should change the settings on this. I don't want to keep doing this. just blasted
in there, buddy. Let's go. Okay, so you can I don't know if Sorry. I should probably pause on some of this stuff. It's actually building the Aspire stuff, which is super cool, right? If for and I don't know the audience on on this, right? I know my my YouTube audience on my main channel, Dev Leader, which is we're streaming for YouTube. Most people are net developers, but I know people are coming in from code commute. There's people on Twitter and stuff. Um, LinkedIn, I can't actually tell. I don't even know if we're streaming to LinkedIn right now. That would be super embarrassing because I didn't check. But, um, I don't know if people are familiar with, uh, thennet stuff like Aspire and all that. So, uh, that's what is on the screen right now. I'm just double checking the event, by the way. Sorry. On
LinkedIn, I think it's going. Yeah, I can I can see my dumb face on LinkedIn. So, that's cool. Um, so this is the Aspire setup. the what you see is kind of what I was explaining to it in the prompts, but basically it's going to set up um resources that will it it can be leveraged in Azure to automatically set up those resources as well. Um sorry, this is I haven't seen this done before. This is the web app. It's like combining them. You were live on LinkedIn. Thanks. I appreciate it. This is like This is not the Aspire part. This is the actual web application, but it's using Aspire. Did it not show the Aspire part? I thought that was the first part it was going to do. It's making bicep files. Okay, let's just we'll keep it going. We'll see what happens. More
control characters. This is This is something I want everyone to remember this video when the next time you're reading a LinkedIn post that's someone saying, "Oh, AI is taking your jobs." I mean, I'm just clicking, but like permission denied. like man. Oh no, it's adding it's adding my user directory to git. [Laughter] Oh, that's not okay. I don't know what's going to happen. Stop. There's a stop button. Um, oh no. Give me one moment. I just saw like enumerating stuff and I'm like, I don't know if that should be on the stream right now. It's like video game installs and stuff like that. Um, there's a doggget folder here. We're going to delete that. You can see there it's deleting. It was adding everything. Um, let's let's go ahead. I'm going to close cursor. I'm going to move stuff into a subfolder. Insane. Um, okay.
Let's close that. Give me one sec. Okay. I just want to get things back on track here. um code commute website. Now I have to figure out what this stuff is. Bullseye coverage error. I don't know what that is. There's tailwind. There's there's the get ignore get config. Let's delete that. Um I need one more sec here, folks. Sorry about that. You can see the DB password. I hope not. I hope not. Okay. Um and I just got to move this stuff into here. And I think we're okay. Let's get this back open. Oh, nice. Okay, let's get that docked over here. Let's try again. See what's up. Actually, this is a good opportunity for us to see what it's done so far. Um, right. So, it made the solution, which is great. It has our Blazer stuff. Um, how the heck are non-developers doing
this? I don't I don't know, man. I just I don't I honestly don't know. Apparently, people are doing it, making tons of money, so good for them. Um, okay. Uh, so so far, if you recall, what did we specify for the target framework? Anyone remember? Wait a second. This isn't cursor. This is This isn't cursor. But does anyone remember what the target framework was supposed to be? I missed the the hidden part. Sorry, I had double cllicked it so it opened up in um Visual Studio. hardcoded ports. Nope. How do you just open up a man? Oh, it knows. There we go. Uh, VS Code agent mode. Good question. Um, I tried VS Code agent mode and was disappointed. I tried cursor agent mode and was disappointed. I happen to be slightly less disappointed with cursor. Maybe it was coincidence. Um, so I figured we'll
try cursor. Uh, as soon as agent mode is in full Visual Studio, I won't be touching cursor. I do not like using like the VS Code editors. Um, I don't know why. I I honestly as a Visual Studio Power user for years, I just feel like I feel like my thumbs are tied together when I'm using VS Code. But um but yeah, so our robboto I think I think your point that you just made is exactly what I've been experiencing. So regardless of VS Code or cursor, agent mode has not been good. But um even using Copilot in Visual Studio or VS Code or using Chatg GBT just to talk to and like having it write code, having it help with designs and stuff, that's been tremendous. Like I've been having really good experiences with that. Um did we lose our chat? Oh my god,
we lost our chat. Okay. Um we won't we won't worry. Um, there was the Aspire. Sorry, I was totally wrong earlier when I was like, "Oh, look, there's Aspire." That wasn't Aspire. That was just the the web project. How do we run this? Can we just run it? Where's the There's a run button. Start debugging. Oh, I don't even have an extension for C. Come on. What's the C# toolkit? Is that what it is? Can I even get that? Is there not? You know what? Back to Visual Studio, man. I don't These IDEs suck. Sorry if you like these other crappy idees, but um we're going to Visual Studio. Okay, so solution contains packages of vulnerabilities. Excellent. Anyway, back to the other question I had. Um I said nine. I don't know. Maybe I don't even have nine on my computer. But now all these
dependencies are going to cry. No. Okay. um net 7 like where where did that come from? Like I definitely did not say seven anywhere. Oh, all these are going to be Can't trust AI with anything, man. I'm I'm sure you know what's I'm telling you this because I know it's going to happen. There's going to be someone who is in love with AI tools and stuff and they're just going to point out all the things I did wrong, which is great because I'll learn. But the prompt says Net 9. It's gone now because we lost the chat. But I'm telling you, it's recorded. We can go back and look at it. But oh, you might be screwed. Microsoft isn't locking down access to these. Yeah, that's what I So, Devon, it's a good reminder. the um I'm pretty sure what you said is exactly right.
Let me move my head back over here. Move the chat back over here. Back to normal land with these IDEs. Um but I think you're right that uh this stuff is locked down. Yeah, it's my my own employer out to get me. Let's update these bad boys. I just want to see did it output enough that we can actually run it. Uh, Aro Robboto saying, "Getting imports to work every time is nearly impossible. Even with extensive instructions, some models would do what they believe is best no matter what." Yeah, package restore failed. Oh, cuz these are just get me to nine, please. I'm sorry. This is probably everyone's like, "Oh, we're going to be coding stuff." And it's just me like trying to mess around to get an empty project set up for what, 40 minutes so far now. But hey, man, like your your
jobs are at risk, right? So, I don't know if I finished my thought earlier, but yeah, the next time you see a LinkedIn post about people saying all the developers are cooked, I don't know. Maybe I'm stupid, which I'll gladly just accept that as reality, but um I don't think I'm totally stupid, so I don't know. Everyone else is five coding their way to success. Okay, let's get all these out of here. Save them all. Code commute app host project requires a reference to Aspire app host with version 9. What was there? Is this just an old error message? Oh, SDK. So, it's missing Aspire app host SDK. Back to package management. Okay. Um, install that as a package. Platform that's not supported by app host. Oh my man, I don't You know, I said when I was driving home and filming a video, I
said if this thing can't even structure this stuff, I'm going to be pretty upset. So, what we might just do is blow this away and add a maybe blow the whole thing away so we can make some progress. Thanks for the weather forecast. Amazing. It got Okay, so there's a Blazer project. Can we Can we see if anything runs maybe? Can I like run, you know? I don't know. I think I might pull the plug on this and just like restart it. Uh, have I done any Maui dev? No, I have not. Um, I do need to spend some time with Maui. I just don't make time for it. Okay, we're going to we're just going back to normal way of doing stuff. Sorry, agents. Uh, I just deleted that so it shouldn't be there. Let's do a a [Music] new Blazer web app. And
I think I actually picked the wrong thing too. So we'll do it in dev leader code um solution name. The project name is going to be web app and the solution is not because we're going to drop everything in there. Okay. Net 9. Yes. Uh authentication none. HTTPS render mode. Yeah, we're going to go with server render mode. Um, per page include sample pages. Sure. Um, and then in list, there we go. See, it's all just here. I can click through. Look at that. Oh my goodness. It's beautiful. Yeah, Blazer does have built-in off. I've used it for a couple things. Um, it's it's just nice that you get all this stuff scaffolded. One sec. I got to dock this to the right spot. Cool. So, how fast was that? Let's see if this actually works. Is Blazer server side rendered? This will be the
Blazer render modes are pretty wild. Um, they can get really complicated. The first time I did anything, look, it's running. Just for the record, we spent 40 minutes trying to get something with agents and uh the template just works out of the box. So, anyway, here's here we go. So, for folks that haven't seen Aspire, Aspire is pretty cool. Let me sorry, my window docking is a bit of a pain in the butt. Uh I'm I'm using like a 48 inch screen. So I'm using one quarter of the window or the screen to stream to all of you. So I apologize. It's just bit messy. So there it is. Okay, there's our blazer site. Here we go. Here's Aspire. If you haven't seen um Oh, uh a robot. I haven't written any C# in six years now. Yeah, the honestly the last few releases like
I'm a I'm a net fanboy. I've been using C for for forever and ever. Um, but there's been like pretty ridiculous um improvements over the last few years, but a lot of this stuff is really interesting. I really want to spend some time with Maui, but haven't gotten to it. But Blazer super cool for people like me that love writing in C. It's like you you I wasn't joking earlier when it's like Bootstrap or Tailwind. I'm like, I literally don't know. Both of those are familiar. I couldn't tell you if and when I've used them in frontend stuff. I don't know because I don't spend time doing it. But um the the support in um in Aspire is super cool, right? Like like that's my console window, but you can see it up here. I don't have any structured logging set up. Oh, but it
does do it by default. Cool. Um so this is really cool. tracing is also there by man like this is just that they've done such a good job with getting this stuff working out of the box. No, I don't work on the team that does this stuff. Like Microsoft doesn't pay me to do this, but like it's Aspire is so cool. Um, and we do have some metrics by default, too. So, right, this is all just like out of the box. Super cool. Um, and you can you can tailor this stuff too, right? Like when I build ASP.NET Core apps, I use uh Sarah log for logging. Um, so this stuff looks different. Um, what this didn't give us for give us out of the box, sorry, is setting up a Postgress uh database in Aspire, but I mean we got the sample app in
Blazer every like it was just the template, right? Super cool. I'm going to flip back here. Um, what I want to do and can we just do I have co-pilot? Let me check for a second. I wasn't planning to do this approach. So, I don't know if I have co-pilot set up in this Visual Studio. I do. Okay. What I was thinking is, let me do this. Pull this over here. For what it's worth, Copilot is the first tool in Visual Studio that I in like 10 years, maybe more that I was like, you know what, you get your own real estate in my in my window. Otherwise, it's all hidden. I don't like seeing it. But it's really cool to have it here. So, um, we're going to go to the app host. I'll stop this. Um, our robboto, you're asking, "Very cool. kind
of UI does it use? So, if we just jump over to uh so I get using some Bootstrap, but it's in Razer pages, right? So, if we go home, these are all Razer pages. So, you get this kind of interesting HTML stuff going on where the counter one, you'll see some code right in here. Some people hate this. I think you can have the codes set up in another file too if you don't want to see them at the same time. Um, I don't have tons and tons of experience in Blazer, but like man, like you got you got your HTML up here, you got code, you can wire this stuff in. For me, this is super intuitive, but I don't have a lot of practice. Like, for example, this is a button, but like what are all the things the button can do? I
actually don't know. Right. But I can see that there's an at sign for on click and it's an event handler. So if I was like I wonder what other can I do a hover event. Is there hover um cursor or like I guess it's on, right? So on on click. So there's a lot like I could go figure out pretty quickly on focus change, right? Um I I mean for me as a C developer in Visual Studio on mouse over. Yeah, here we go. Mouse move. Mouse over. Thanks. Right. So it's just being in a familiar spot. I was asking people about this on LinkedIn and Twitter and some people were like some people were like no I don't use it but like whatever I use React or whatever that's fine. And I had a couple of people that were like I think it's stupid.
Why would you ever do it? it's never going to replace React and uh Angular and all this other stuff. And I'm like, man, it's not meant for you then. That's totally cool. Microsoft didn't come out with Blazer to say, you know what, we're taking down React. No, they said there's a lot of C developers that just want to stick to something familiar. They made it for me. It's like they knew that Nick wanted this and they said, "Nick, we're making Blazer just for you." It's It's literally like the perfect thing for me. I just don't have tons of experience in it. But what I want to do is go back to Where did my co-pilot window go? Oh, I was running so it didn't keep the I'm going to go back to co-pilot. We're going to use some AI for building stuff. I don't want
to totally bail on it, but let's go back here. So, I'm going to ask it include the active document. I'm writing with the proposal. Replace our React front end with Blazer. Very cool, Devon. And I'd be interested in hearing how that goes cuz I think a lot of people in responses to Twitter and LinkedIn were saying like like a a majority of people were like if they do use it, they're like internal tools. Some people were saying like production apps for customers and like that's cool. Um but we'll see. Young Bird interviewing for an entry-level C job next week. Let's go. I am very excited for you. I want to hear all about it. So, keep us posted if you're comfortable. Uh, if it doesn't go well and you want to talk about it, send me a message. Um, happy to hear that though. That
should be cool. Obviously, you know, it's the best language, right? Just kidding. But, okay. So, uh, I would like my Aspire application to be able to set up a um Postress resource. Um, it will be deploying in Azure, but I would also like it to run locally by connecting to Docker. What other information I think this is going to be a prompt I keep including. I think do you need to um create or make the necessary Spire app post. Um, and this isn't an agent mode unfortunately. W Okay, so just set a Postgress resource database name. What should we call it? User credentials. Oh, this is where my credentials are going to leak though. So, let's give it some answers. one. [Music] Um, I don't think so. I don't think you can do um agent mode in the settings yet. Oops, I can't spell co-pilot.
Couldn't before. [Music] Um, no, I don't think it's there. I think it's coming soon though. So, and yes, they've updated to GBT4.1. I don't know if I've paid attention to that um yet, though. So, database name, we'll call it uh we'll just have it called code commute. User credentials, it will be um uh admin, right? That way you guys can steal my credentials. Imagine I forget to change it and I end up deploying this. Um, we use Azure database for Postgress. Um, I will use the cheapest configuration for Azure. You know me, my uh my ad revenue for YouTube does not cover the fast lane for code commute. So, we got to got to stay cheap. Uh, Docker image um just the latest image because I don't care. Connection string. Should the connection string be injected into your Blazer app as a secret environment variable?
Yes. Um, yes, please. Inject as an environ. Oh man, that was difficult. Um, number six, resource naming. No special naming cuz I don't know. I just want to see some progress. Uh data persistence for local docker. Do you want to persist data? Uh no no persistence required locally. Rock and roll. Set it up. Let's go. Nice. Nice. Okay. So just to see right distributed application that part's the same but this Postgress part's different and then we need to be able to have a reference. So I'm just going to copy that in. Was that the vibe coding part? Did we just vibe code? Can I say that I am a vibe coder now? I copied and pasted code from the chat over. We're vibing. Who knows if it works. doesn't even work. It can't find ad post ad postgress, but it probably said I need to
add a a nougat package, right? Or maybe it didn't. So, I got to break the vibe coding rule when I say which like I know that it needs a nougat package. Do I unvibe code by saying which Nougat package do I need to add? Sorry, I broke the vibe code and rules. Cool. Let's see. I'm going to go specifically into the package manager. Oh man, why did it dock all this? This is not what I expected. What am I dumb? Um, I feel ridicul. Does it? I copied it. It's probably like out of date or something and they have a new name. Microsoft as I just search for parts of it. No, I'm assuming it's going to be that top one. Yeah. Did it I think it hallucinated a package. I think that's what that means. We'll see. Oh man, did it really? That's amazing.
Um, okay. And it did. This is kind of funny. Uh, if you're going to do name parameters, do them the whole way through. But these uh sorry my camera's blocking the what's it called? Uh the tool tip parameter resource. So I feel like this is wrong. Oh, you got the Sorry, the tool tips even cut off from the chat. I'm the worst streamer, aren't I? There we go. Let's put you back over here, chat. Um but you can see add Postgress. Oh, now the tool tip is wrapping. That's Thank you very much for making me look stupid. Um name, but I don't think that's the configuration like those parameters aren't there. But there we go. Add database, right? Like remember AI is coming to take your [Music] jobs. Is there like a what am I trying to say? Um like credentials or something. That's the
resource name. So, we want that. And then what was in add database? It said name and database name. What's the I don't understand what's the difference between this one and the one after like a resource name and then another name with Okay. Is there something? Nope. I don't know. Or is add database separate? Oh, there's a username. How did I miss that? Was I just not looking at the tool tip? I feel very silly now. I think add database is not what I thought it was. Um, so it's doing it again. The tool tip is behind my camera completely and I can't see it. So the next one is a username, but it's a special type I resource builder. Can I just do that and it will work? One sec. I just want to try. So no, it can't. Um, I don't know what the
resource builder is. So, let's don't know the answer to this. Um, yes, connection string. Sorry, extra characters there. This also seems to be like a a pattern I see with this new line stuff, but there is no connection string. So let's let's try this. It did the wrong thing. So um that didn't work. Please provide another solution for this using Aspire. Oops. We'll see. We'll vibe code it over again. No, just come on. I bet you chat GPT could do it. But Aspire hosting is this even the right. Oh, that is I don't know, man. I bet you I could use chat GPT and it'll figure you need. What do I need, Devin? Both. I need uh Postgress and database. There's the connection string part. Was that even in the first one? Oh, it was. It was. So add Postgress. Yeah, that's the resource, right?
But I'm confused about this second line. Oops. Oops. Oh, from the docs. You're cheating. You're only supposed to ask AI for it. Where's the configuration, though? Um, like how do we conf is that all just going to be from the connection string, I guess. Is that why like why where's the connection string part come in? Well, that makes sense. Adding Postgress, adding a database. This is literally I don't think this can go on the internet. Why can't it search the internet? Seems very silly. Um, one sec. Give me one moment. I just want to see if I can pull up a chat GBT window easily. Okay. And I'm going to go back here. Let's take this. I'm gonna take this. How do I want to do this? I don't I wanted to but so Devon the add Postgress part it's not taking uh strings complains
about it. So there's some other type of uh parameter resource. I don't know how to get those though. builder. Sorry, I can't see anything because the tool tips are completely blocked. I think it's add parameter though, right? If I put it down here, maybe it'll There we go. Uh name value. I think it's this, right? DB user D. There we go. Look. Look. We're beating the AI. Our jobs are safe. And just cuz I need to see it like that. This is harder than I was expecting. Yeah, you and me both. I don't know where the connection string part comes in though. Um, but is that just another resource builder? [Music] Um, like this is the thing. I I feel very comfortable in chat GPT in comparison. So, let's do this. I'm just going to copy this. I would like to load the connection. What
do we What's the right way to say this? Um, from Let's just try that. Yeah, people are are apparently building full stack apps somehow without knowing anything. Remove this line exactly because it's not right. And then you can do this using net run. Pardon me. Oh, it's saying for setting the environment variable, but it's just saying to load it from the configuration. Interest and this is see this is a cool thing that Chad GPD is saying, right? Add parameter. I want it loaded from the environment. So, should I have done that instead? Oh, you know what? I think I see what's happening. Let me back up. Um, I think that how this code was supposed to be set up is that when you go configure Postgress, it's like great, now that you've got Postgress set up the way you want, when we want to go
run the web app, we need to give it a connection string. So it's going to make a this is I I I think I got this. We're going to be setting up the environment variable for our application not aspire but for the application we're running connection strings two underscores means it's going to be a nested parameter under there. So we're going to have a connection string called Postgress and the idea is that we should be able to ask Postgress for its connection string I think was the idea. So I'm assuming oh what is the type of Postgress is a resource builder with connection redirect sorry I'm trying to live streaming and having the camera is not good at least with a YouTube video like the editor knows I'm like trying to look around the camera and he can clip it out but I don't think
this is what I Not that seems wrong. Register to call back which of Oakland connection string is requested for a resource. No. So what did chat GBD say to us? I clearly wasn't reading. So for local dev in your blazer app, let's scroll back up. Remove that. You can do this by using this. This I don't understand what this is trying to say. net run and then it shows setting an environment variable and then calling net run. I guess I think we're yeah we're mixing a couple paradigms here. Then you don't need to wire up with environment. So what I want to ask it is there no way to ask the resources in Aspire to um get the get the connection string for the configured uh Postgress. Okay. But that doesn't work, right? So it says it can't be found. [Music] So, oh with connection
string no I don't know where it's it's like deciding to oh hold on this is an extension method so it's saying we can add this so the actual error I'm just going to copy it directly Sometimes I do this and I don't even give it any context. I'm just like, you're the you're the robot. You figure it out. Calling on the builder, not the resource. But we are assigning it. What the heck, man? I know this is what Devin said for the record. He had it split out, but like the return the return value when you chain stuff together, it's not going to change it. I'm pretty confident. Unless I'm just having a brain fart. Yeah, still doesn't work. when you chain this together up here just to kind of prove it that's the same thing except obviously the variables. So Postgress DB is still
I resource builder that doesn't work because post and I'm going to have to wrap up this stream soon. So I'm really sorry that like this is I knew this was going to happen for the record. I just didn't want to admit it to myself. Um, the key is with connection string extension on the resource builder at build time, not before. Yeah, I'm I get it, man. But I'm just saying that. So, okay, this is what I think it's trying to get. Yeah, it's like just build it yourself, which makes sense. But cool. Let's just do that. Okay. Yay. But this isn't going to work because I think it doesn't have anything with Docker. Um, so I'm just going to do one more thing and say if I have the following in Aspire, how can I make sure for local dev it runs a docker instance
of Postgress. that will be different in production because uh in Azure I will have a Postgress resource. Yeah, classic LM you're absolutely right. Here's the wrong answer. Another way. Okay, so this part makes sense so far. Um I think there's other ways to do this too. There's like it's not the same actually. There's like a uh run mode versus build mode, but this is uh separating out production versus uh local testing or development. So if it's not production, we're going to do this. What's the actual difference here? Does Aspire just like start a Docker image for me? I've never tried that. It doesn't feel right. It says I don't know, man. We're We're vibing, right? Just vibe away. Didn't have all the code. Oh, no. Oh, we vibed too hard. Um, undo. Okay, so what am I pasting in here? We still need the builder.
Oh man. Hey, but you know all those people making tons of money vibing away. We need the Why is that not working? This this whole thing disaster, man. You can't even do a string comparison to environment. Oh my goodness. What type is environment? I host environment. [Music] Um, no. No. I don't know, man. Okay. Um, bar is production. Here we go. Done. Uh, it doesn't like this. So I don't know what's up with that. It needed to be at Postgress server. So I I think this whole thing is wrong. But I think what it was trying to do is saying like if you're not in production, you need to go wire up a server otherwise. So this is just wrong. It's just the whole thing's wrong. Anyway, moral of the story is uh this stuff doesn't just [Laughter] work. I've used Aspire and I have
used Blazer and I'm pretty confident that after people watching this, they're going to say, "No, you haven't." Yeah, I know. Um that's okay. So, so far what we've gotten is nothing done, which is cool. If I run this locally, does it actually crash now because the Postgress stuff's going to crap out? Probably. Like I would expect that this doesn't work. Okay. Yeah. So, newer [Music] version. Pardon me. Why is it complaining about that? Did I control Z too far? Oh man, I might have went too far. Or maybe I didn't even touch that. How? What? Okay. But this is super interesting, right? So, I figured it wasn't going to work. But is it going to try? Will it actually run it in Docker? I'm like I'm blown away if that's actually the case. I think it will actually work. Can we do um where is
it loading from? Let's just do this. It's going to be environment variables. Are my configs going to load from here? I don't think they're going to load from the config file directly, though. Can I do them in here? Let's see. Sorry, I'm kind of floundering because I want to wrap this up, but I want to see it actually work. Um, debug. There we go. I just wanted to add it here. So, what did I call them? DB user, DB password, and is there a save? I think it just goes. Okay. DB user, DB password. Okay. Three years into being six months from AI taking our jobs. Yeah. Okay. So, still missing. Apparently, I don't know how to pass parameters on the command line or environment variables, but pretty cool because it looks like if I pass those properly, let's just let's just do this. We're
cheating. We're cheating. Oh, and it doesn't even one sec. You can do defaults, right? Parameter default. How do we make that new parameter default? No. No. Generate parameter default. Sorry, I don't know what I'm typing here. So, I'm trying to see like how do we make a new one of these. I No, I don't want that. Okay. I don't know. I think that's the end of the stream. We got the furthest we could just by using the template. We used cursor, which failed miserably for the record. That was terrible. Then co-pilot was hallucinating about packages and then I thought Chad GPT was going to come save the day. But maybe I was just floundering too much already. But um what's cool is that at this point based on running it in Aspire, it does absolutely look like if I have the environment variable set up,
I didn't realize, but it looks like Aspire will go run a Docker container. I'm fascinated by that. I thought I would have to do something different, but I guess they've kind of abstracted that away. Um which is super cool. What I knew I wasn't going to test today is uh having the Azure deployment wired up. Kind of just accepted that. Um even if it would have all worked and we did it in 10 minutes, I wouldn't have tried deploying into Azure on stream. I don't feel comfortable doing that. Um and then what we didn't get to do any of is the Blazer side, which is unfortunate. Um but like we have, you know, all these placeholders, right? All this stuff is a placeholder. All of it would basically go away. And then uh I was hoping to spend some time in the Blazer side. Basically,
the the cool part in my opinion would be like I'm if you don't know me, I'm terrible with frontend stuff for especially like web development. So, this would be a good example of me truly being like I want a shiny button and center the div and go and then see what it can do. Uh, a lot of the other pieces I can kind of I can tell when it's messing stuff up, but uh, front end stuff I don't know what's going on, man. Just make it look pretty. So, I was hoping we could spend time on that part, but we didn't get there. So, I'll have to see. I might resume the stream. Maybe I'll dig a different time to stream and do the coding part and get back to normal uh scheduled kind of AMA style stuff on next Monday. But I'll I'll try
and see. So, if you thought this was interesting, even though it was a complete failure, I will try to stream the rest of building this and uh I'll just have to decide if it's going to take the Monday slot or another slot. But thanks for being here. I'm so sorry that this didn't work out as planned, although I kind of anticipated it was going to be a bit of a nightmare. Um, I should probably do the thing that I normally do at the end of these, which is kind of show you guys where you can find some of the resources and stuff. So, normally, let me go back here. Normally, I have my newsletter and basically every live stream, like 99% of the time, is from the newsletter. So, no, you don't have to subscribe to the newsletter, but the newsletter generally has the topics.
By the way, thanks Peter K from New York. I appreciate it. Um, you don't have to subscribe if you don't want an email newsletter, but it's like a blog post, right? So, this was uh the one that went out on the weekend and this was a about the same topic, but usually I go through the content and kind of talk about it. And this is a clip from Code Commute where I was talking about this kind of thing. So, uh, put the link in the chat if you want to check it out. This is how I base a live streams. Um, I have a couple of YouTube channels. Obviously, you're watching, if you're on YouTube, you're watching from the main one. It's called Dev Leader. So, I'll put the link to that in the chat because some folks are not from there. And you can
see we're streaming right now, but this is where my C tutorials. The most recent sort of playlist has been on ASP.NET Core caching, Reddius. It's been fun to make put that together. So, you can check that out. There's also a resume reviews. So, I have I have a bit of a backlog to catch up on now. So, we'll put those together for folks. But, they're free. If you watch the resumeé review videos, they explain in the first minute how you can submit a resume. So that's how you go find out how to do it. Go watch one of the videos. Code commute is my other YouTube channel. This one is um I came here as a friend to say I'm hurt your vibe coding. Yeah. Well, Jesse, it didn't work. So it didn't work at all. Um thanks. I appreciate that. Um, but Code Commute
is the channel I have where uh I pump out tons of videos on Code Commute every week. They're a lot of fun for me to make. I don't edit them, aside from these Insta 360 ones, which are super cool. I'll show you one quickly. So, you can literally look around like I don't know if you can tell on the stream, but I'm dragging the window around, right? This is me in traffic. getting I'm still in traffic. By the way, for code commute viewers, this is like the worst part of my drive. I'm just highlighting it so you can actually see around. But this is me like trying to get onto here. But if we back up even further, it starts here. No, it goes back even further. I have to show you guys this because I spend so much time on this part of the
highway. It's like it's insane. Okay, this is it's even before this. Usually this part of the highway, you can see the cars to the left. Yeah, I forgot I had a little clip there. But this part of the highway, it starts backing up here and it's nuts. And I have to like merge over to this lane, which is an on-ramp, then it's backed up. Then I have to move over like four lanes of traffic. It's the worst. I hate it. But that's okay. Anyway, that's code commute videos are a lot of fun for me to make. Um, I'll plug courses. If you watch the code commute video that I filmed today, it's not posted yet, but I talk about some course ideas that are coming. So, there's a hint, but this is where I have my courses if you're interested. There's uh getting started in
deep dive for C if you're interested in learning about C. It's over 11 hours of material. And then I have some career development ones as well with Ryan Murphy. So try to share some insights for u you know especially conversations with your manager. If you watch code commute a lot of the stuff I talk about on code commutes captured in those courses. Uh and Ryan Murphy is a engineering manager at Yelp. So um a lot of insight to share as well. Uh car makes cool noises when you make those mergers. Yeah, cuz usually my foot's on the ground because I'm trying to move. And then finally, brand ghost is the product that I am building on the side. If you are familiar with my social media posting online, aside from, how do I say this? Uh, if I'm commenting on someone else's post, I don't
comment through brand that way because it a lot of the APIs don't support that. But if it's a top level post on any platform, it's done through Brand Ghost. If I'm engaging with comments on my own content, a lot of that's through Brand Ghost. Brand Ghost is what I build to support my own content creation and then I've kind of opened it up to other people as well. So, uh, team and I are working on Brand Ghost. It is 100% free to use if you just want to crossost across these platforms and schedule. No strings attached. You know where to find me, right? I'm not trying to scam anyone. Um, we fully believe that if anyone is interested in starting with content creation, doesn't make sense to have to go pay for a tool that's going to cross post and schedule. Scheduling should be built
into every content creation tool or social media platform for that matter. Sorry. And uh, crossosting is a, pardon my language, it's a pain in the ass. You shouldn't have to sit there copying and pasting posts to Twitter and to to Blue Sky and to Mastadon. Um I have some of my social media posts that go out to 12 platforms at a time. So the shorts, if you see the short videos I post every day, those go to 12 platforms. Could you imagine if every day I sat there uploading the same video to 12 platforms? I would not be making content anymore. So, um, encourage you if you're interested in getting started with trying out content creation, try out Brand Ghost. It's totally free. You can message me, ask questions. Like I said, you know where to find me. And, uh, if you have a small
business or something that needs social media marketing and you're like, I don't like keeping up with it. We do have paid for solutions that in my opinion would tremendously help. Um the part that I haven't mentioned on this particular stream is when I talk about posting content all these platforms. Yes, we have free crossosting and scheduling. I don't even schedule my own content. I have like a year over it's indefinite. One sec. Let me let me just show you. Let me just show you. Oh, I got to log in. One sec. Um, I just want to show you why this is cuz people like I'll do podcast interviews and people like, "By the way, like how do you post so much content?" It's coming. One sec. I just had to log in. Okay. So, when this loads, that's my content calendar. Okay. You can see
on the 28th I have 13 posts. on the 13th, 20th, and 27th. 23 posts. I didn't schedule these. It's already done. Let's go to the next month. What's it look like in June? It's a little slower for my stuff because there's a lot of posts, but it's already done. All of my content creation is like I've make the content and Brand Ghost has it done. And this is why for me, Brand Ghost is a lifesaver because I can just make content and then it goes out everywhere. So, like I said, if you're interested, try it out. It's totally free. There's a free trial for the paid for features. And like I said, if you have a small business and you want to try having some recurring content. So, if you have advertisements you want to go out on a regular basis, then you can use
what we call topic streams and that's your recurring content. So, I realize not everyone's a content creator or cares or has a business, but even if you're trying to learn in public, I think it can be really cool to post stuff on different platforms. So, that's the stream. I'm sorry that code.com didn't didn't come to fruition. Maybe next time.