730

February 14th, 2024 × #PaaS#Self-Hosting#Kubernetes

Own your own PaaS

Discussion on options for self-hosting a platform as a service to avoid expensive monthly per user charges from hosted providers.

or
Topic 0 00:00

Transcript

Wes Bos

Welcome to Syntax.

Wes Bos

Today, we are having an episode that is rallying against the $20 a month per user hosting services out there.

Wes Bos

We are going to be talking about hosting your own platform as a service, which is Everybody loves these amazing services that you pay $20 a month, per user for because they compile your code. They deploy them. They do all that good stuff for you, but they get expensive really quickly, especially now that the VC money is drying up. It seems like everybody is jacking, up the rates for that type of thing. So Scott has gone off the deep end, and he has learn the word Kubernetes

Topic 1 00:13

Rallying against $20/month per user hosting services and hosting your own platform as a service

Scott Tolinski

Yes.

Topic 2 00:48

Going deep on options and pain points of hosting your own PaaS

Wes Bos

And lots of other scary things.

Wes Bos

And we're gonna take a look at, like, hosting your own websites, but but even more than that. Right? Like like, hosting your

Scott Tolinski

own thing that will do the auto build for you. Right? Yes. Absolutely. Yeah. And and we're we'll be going Deep on what some options here and maybe, some of the pain points that I hit or or just some interesting things.

Scott Tolinski

But if you wanna host your own pass Without being out on your ass, you have to have Woah.

Scott Tolinski

You have to have software monitoring to make sure that your software Wes functioning as expected.

Scott Tolinski

And you know who does a really great job? Sanity. Century.io or century.ioforward/ syntax, actually, is the new URL for us.

Scott Tolinski

Go ahead. Check it out. Yeah. Check it out. You can give them a try. This podcast is presented by Sanity. But let me tell you, if you have any sort of errors that need fixing Singing you're softer, and and let's face it. We all know you do. Yeah. Sentry is the perfect tool to help you fix those errors, especially if they're in production before your users have to send you an email saying, hey. The thing's broken. You already know it's broken. You wrote it, but you know it's broken because Sentry told you it's broken. So let's get into it here.

Topic 3 01:59

Overview of platform as a service offerings from Vercel, Render, Netlify, Heroku and others

Scott Tolinski

Let's let's talk about it. So What what are these things first and foremost? AaaS, as you mentioned, a platform as a service. You've probably used a lot of these.

Scott Tolinski

Vercel, Render, Netlify, Heroku, DigitalOcean's app platform. There's a ton of these things. You know, you kinda get the vibe where you log in, you connect your GitHub, you tell it which repo you want it to go, you Potentially give it your build commands or where these things are located.

Scott Tolinski

Bingo, bango.

Scott Tolinski

The whole thing goes up onto the Internet With a a custom domain, then you get a free SSL.

Scott Tolinski

You you you connect your DNS records to it. You have your environmental variables in your groups, And then you have a website online. You didn't have to do anything set up to do that. You didn't have to manage your NGINX server,

Wes Bos

or NGINX. Is NGINX a server? Is that a correct way to say that, Wes? Yeah. Yeah. NGINX is a a web server that will handle incoming requests and do SSL certificates, and you're not NGINX doesn't actually run your code. It will pass it through to your actual your your application's web server, but NGINX or Caddy or Apache sits in front of your application to handle in Wes. We've done a couple shows on it as well. Yeah. It's funny. For most of my career,

Scott Tolinski

I did use a lot of hosting my own stuff via NGINX or even Apache. And for the most part, I just did what it told me to. They they weren't necessarily things I got too deep into.

Scott Tolinski

But you don't have to deal with any of that stuff because I personally those those are the worst aspects of hosting my own code Wes dealing with that stuff. So along came you You know, I think Netlify was maybe one of the first ones that people tried where you connect and you just get up and running. That was, like, super duper easy.

Scott Tolinski

Or or Heroku even before that. Heroku JS maybe a little bit less simple than Netlify. Netlify's super simple. And then you had companies like DigitalOcean, Render, and Vercel Coming in a little bit later to try to,

Wes Bos

do those in a different way. Vercel's now I think I think Vercel was before Vercel used to be called Zite.

Wes Bos

Yeah. Exactly. I'm pretty sure they were before the and they used to be only Node. Js hosting as Wes, no serverless.

Wes Bos

And they they totally flipped it. And Let me tell you. I was at Zite Day when the serverless platform was announced. I spoke with Yeah. Yeah. Man, history in the making, and we love these services.

Wes Bos

We joke about them getting really expensive. But at the end of the day, these Vercel, in order to make money, they cannot simply sell you the raw cost of using it. Like, AWS, you're paying for actually how much compute you're using at the end of the day. And for a lot of websites, that is very that pnpm pennies.

Wes Bos

And it it turns out that charging people based on actual usage is not a very good business Node, and you can make a lot more money by charging them $20 for everybody who needs to be able to log in per month and or just like like, for example, I'll pick my my bone with render JS I've been on render for probably 3 or 4 years. I pay them 1,000 of dollars a year, and they recently switched it from I log in. I pay for however many servers I want. I can auto scale. So I I I say I have 2 servers at a minimum. I can scale up to 5, and then the the traffic that I get, it'll it'll scale up more servers as I need it and scale them down as as I don't need them in a load balance at all for me. And then render switched, and now you have to pay for $20 a month just to have an account to turn the button back on.

Wes Bos

So that's an extra $240 a year for me simply to to do that. And a a lot of these other hosts are also now going in the regard of, Like, you just you just pay for monthly. Like, Neon kind of did this, but Neon is just saying, like, people don't know how much it's gonna cost them. And if you tell them it's gonna cost this much for a 1,000 reads and writes, like, that's a really good point. It's like, I don't know. How am I like, just tell me it's gonna be $20 a month, and then I'll use it. So Wes understand that as Wes, but I do feel, like the bills on a lot of these hosting platforms, especially if you've got side projects and you're not of course, people are People were telling me, if you can't afford $20 a month, then you shouldn't be in business. Like, of course, I can afford $20 a month to host this thing, but it's the We're always looking out for the the podcast listeners and whatnot of, like, if you have a little application, it shouldn't run away from you Wes all of a sudden you realize, holy crap. I'm spending a couple $1,000 to host these side projects.

Scott Tolinski

Yeah. And and so, Wes, it's funny. You touched on a lot of things I had in the why section in your in your, little rant there, and and we'll go back to some of that stuff. I really appreciate it could get that Sanity, though, because I I agree with you a 100%.

Scott Tolinski

Before we get any further on the what side of things, I do wanna define Kubernetes here For the average listener, this is not for the Kubernetes professional. I don't need your Wes actuallys about this.

Scott Tolinski

It's basically a control center for managing Containers of applications.

Topic 4 07:18

Kubernetes explained as a control center for managing containers and making applications resilient

Scott Tolinski

You've all used these services where you could hit plus on a a container to scale it horizontally or vertically, those types of things. You can Add more resources quickly. You can, add more containers. You can have multiple of them that are, you know, fault, tolerant. So if one goes down, you know, they're sent to the next one. This is Kubernetes.

Scott Tolinski

Not not saying that every time you've used that, it's Kubernetes. But this is what Kubernetes does. It handles scaling, fixing, sharing resources, making your applications Node resilient.

Wes Bos

Can I ask a question for the listener? How is that different than Docker?

Scott Tolinski

Docker has a thing called, like, Docker Swarm maybe? Yeah. Yeah. It's I don't I don't I don't know the intricacies of why it's different. It's very similar, And it it functions in a similar space. In fact, when I was learning about, one of the services, Coolify, when they Weren't using Kubernetes. They suggested using Docker Swarm as an alternative. So I I would love for what we have a a guest coming on, David Flanagan coming on. Yeah. Yeah. He's gonna talk to us about Wes. Put that on the big old list of questions for David because,

Wes Bos

That's not something I know the intricacies of. Okay. So the the thing I was asking about, like, a Docker container is a single instance of a virtual server that is running Kubernetes architects, not Docker containers, but it architects

Scott Tolinski

multiple containers so it can It can scale them up and scale them down and do all that good stuff. We're Scott, again, we're not Kubernetes experts, but that's how I understand it. Yes. And and I think that's mostly what you need to know. And when we talk about Kubernetes as a concept in this episode, it's like, Hey. You know that interface that you've probably seen where you can scale up or down a interface? Like, that's that's it's not the interface itself, but that's Really what the concept of working in Kubernetes is.

Scott Tolinski

So as you mentioned, it's really like death by a 1000 services here. Right? You know, I I host a lot of side projects. And one thing that you used to be able to do very frequently, Heroku used to get, like, 5 free Dinos, I think they called them.

Scott Tolinski

Many of these services, Meteor, when it launched, had a free, like, hobby hosting plan. It used to be free to throw up a node server somewhere and not have great performance or anything, but just as a proof of concept.

Scott Tolinski

But, obviously, just like a lot of things, crypto miners have ruined that experience for most of us. So we no longer have that many, places where we can just go quickly throw up side projects.

Scott Tolinski

And many of you are left with maybe paying $7 a month or something for a node server for some side project that you don't even care about, you just want online.

Scott Tolinski

And and and Scott me, like, you've mentioned, Like, yeah, you could toss these things on, you know, paper usage situations.

Scott Tolinski

But sometimes you just want a server to dump a bunch of stuff on. You know?

Wes Bos

And you warp it to be able to be performant and work well and actually, you know, be much cheaper. Yeah. I I miss the days of I still have a PHP server. I I was laughing the other day is that I have a a Bluehost PHP server, and I'm not hosting any of my own projects.

Wes Bos

I have my dad's website, a couple of his clients, my wife's website, and I was like, man, I at at the at the time, at the the height of my WordPress days, I was freaking running, like, 40 apps on a single, like, a $6 a month PHP server, and that was the best. You know? Just throw it up there. And even for, like, the longevity of the web. Like, people say, oh, just throw it on Netlify or whatever. And I love Netlify, but the time will come when Netlify realizes Yeah. We need to make more money. And what are they gonna do? They're going to say, we're making some changes to our free tier, and the this is the way that it happens. This happens at all of the places. This is how these companies get people onboarded JS they have VC money. They give away lots of free services.

Scott Tolinski

Everybody gets it on there, and then they roll the rug out from under you. Yeah. Yep. Yeah. Yeah. And absolutely. I think that is a big concern here. And and I think one of the things you even mentioned about, like, WordPress hosting. Right? We all host WordPress sites in in maybe some of you want. Right? Maybe you're all working on application development, but I still host WordPress sites.

Scott Tolinski

And if people ask me, where's the best place to host a WordPress site? I don't know. Like, Bluehost? I know you hate Bluehost. It's not Bluehost. Don't don't, Bluehost. No. I know. I said Bluehost because I knew I'd,

Wes Bos

get a reaction out of you. You know what? I went to one of your old videos because the Syntax YouTube channel you should subscribe.

Wes Bos

I was like I was like, well, I wonder what, like, what are some old videos on this thing? Because it it's the the we changed the level of tutorials YouTube channel to SyntaxOne. So I went back to, like, one of the very first YouTube channel, and it's little Scott saying I am. Hey, guys.

Wes Bos

You could get a Bluehost for $3 a month. That was the price way back then. It Wes it was not only that cheap, but they paid me

Scott Tolinski

$100

Wes Bos

Yeah. Per mention, per sign up. I made bank on the Bluehost referrals

Scott Tolinski

for many years. Bank on it. Yes. I know. And and, honestly, I did host a lot of stuff on Bluehost, so it's not like I was just hucking it.

Scott Tolinski

But Yeah. Me too. Either way, You know, like, you wanna host a WordPress site real quick for friends and Sanity. They Node something.

Scott Tolinski

What are you gonna tell them to do? Pay pay $7 a month? Pay $14 a month? Or you can get a one click install with some of these services. And and so we'll be talking a little bit about some of these services in just a second here. So, maybe hold on hold on your horses just a little bit. But in in reality, your app shouldn't have to be bringing in money If you just wanna throw up a side project.

Scott Tolinski

And and I think some of the people who might hear this, like, hosting your own stuff on your own Virtual private Vercel. But I I like all my my things, my, SSL certificate stuff. I like my, auto deploy on commits that I might pipeline.

Scott Tolinski

Preview URLs and stuff like that. Well, check it out. A lot of these services do exactly that. Some of which do so in a very nice UI, some of which do so just on the command line, or some of them just through configuration files.

Scott Tolinski

But you can get the Netlify experience for anything, Node apps, WordPress.

Scott Tolinski

Like, think about it this way. You could have your own server. You could do a one click spin up in AppRite, a Pocketbase, a Redis, MySQL, all on your same server in just a couple of seconds and connect to a private privately under, like, one cost, which to me, If I'm working on a bunch of projects, that's super compelling.

Scott Tolinski

Because why? Well, I might not wanna pay whatever the for service for a private service on render to host a Redis service for my side project, but I still want Redis, and I still want a cache for it. Well, now I can just add it to my already existing server under those same resources.

Scott Tolinski

And I think that's, like, a A very compelling reason to potentially add some of this stuff because if you do want to add any of these little services, it adds up. And even if it's free to start, You have no idea if it's going to remain free once you start adding things like this.

Scott Tolinski

Yeah. I I don't know. I I found it to be pretty compelling, And the thing I was scared about most was losing access to the the niceties I had from those Platform as a Vercel. But it it turns out that you can get all of that. And I will say off the jump, if you have any Platform as a service that are either open source, paid, or the type of thing that you could host yourself. I'm interested in hearing about more of these because I have a list of several of these.

Topic 5 15:24

Overview of self-hosting platform options like Kubero, Coolify, CapRover, Goku, Piku, Kuber and Acorn

Scott Tolinski

Kubero, Coolify, Cap Rover, Goku, Piku, Kuber, and Acorn. A bunch of words there. Right? Oh, they all sound like Pokemon.

Scott Tolinski

They do sound like Pokemon. Which of these sounds the most like Pokemon? Cap Rover or Probably Daku.

Scott Tolinski

The Piku? Oh, Piku. That's like a Star Wars thing. Piku? Yeah. Obviously, Piku Cuber sounds like a Mario.

Scott Tolinski

Cuber does sound like a Pokemon though too, And so does Cubero. Honestly, all of these could really pass through Pokemon. Cubero sounds like the

Wes Bos

oh, dude. You got a Cubero?

Scott Tolinski

Wes, here is a game for our, live show, Pokemon or Wes service?

Wes Bos

Oh, I like that.

Wes Bos

Cubero. That's okay.

Wes Bos

Alright. We're adding it. By the way, React Miami, we're gonna be there. So maybe we should add that to React Miami. You should grab tickets to that right now, everybody.

Scott Tolinski

If you would like to play Pokemon or web service, it could be a continuation of one of our fan favorites JS a, Well, is it what do we say? It's like a NPM package or, a thing or both? Yeah. NPM package or

Wes Bos

That that was it. It was like, is this a carbon fiber road bike or a Npm package for maintaining dependencies?

Scott Tolinski

Yeah. That was that was a really funny one we did. We should do that one again. One of my favorite segments because writing it is just as fun as experiencing it with the audience.

Scott Tolinski

Okay. So let's get into these players. There there's a huge amount of variability in this world. Some of these contain UIs. Some of them contain, Wes CLI. Some of them have paid add ons.

Wes Bos

Yeah. So a lot here. So these services that you're gonna go through, these are not like a SST or a flight control, which is these are this is not software to deploy to AWS, or maybe it is, actually.

Wes Bos

These are just, like like, literally run your own server. It's not serverless. It's not scale up and down. It's just something that will You go and get a server somewhere, or, like, I'll walk into my server room, and I have a, a little Scott station, Synology, running there. Right? Like, I could install these on my Synology and literally host it in my house if I wanted to? Yes. Absolutely. And in fact, there's there's a lot of people that do do that. But you can also just install

Scott Tolinski

these on a VPS somewhere. I've I've been seeing a lot of people talk about installing some of these on Yarn. Seems to be like a big topic.

Wes Bos

There's not a lot of Cloud Yarn 64 hosts. Oh, Like, army mean, like like, the processor that's in the MacBooks and in Correct. Chromebooks and Your phone, probably.

Scott Tolinski

Some people are even offering hosting on a Mac, specifically. I think it's, like, using Mac Minis or something, but

Wes Bos

That's usually pretty expensive. If you if you use GitHub, GitHub actions, and you want it to run on a Mac, it's, like, 10 times the cost.

Scott Tolinski

Yeah. And and I think that's why people are going with with Yarn. What's interesting is that, like, Hetzner kinda seems to be the The cheapest to best option there, but I found them to be kind of awful to work on. And and, you know, a lot of people really like them. So I'm not I'm not talking trash about Hetzner, but as a American, like, literally asked for blood of my firstborn child to get signed up with a a cloud account there. So and I don't mean literally literally.

Scott Tolinski

I know that's a a trigger for some people.

Scott Tolinski

So you can host these things in a variety of places, of which can be very cheap. You can host them on a DigitalOcean droplet and get going in no time. Now I'm still a little bitter about the CSS tricks thing, so I might be looking at other places to host. But a, a shared Yarn 64 based CPU starts at £4 a month.

Scott Tolinski

4 or no. Those are euros. Sorry. That's the euro symbol. It starts at €4 a month. American.

Scott Tolinski

Yes. I know. For the for 2 CPUs, Four gigs of RAM, 40 gigs of disk space, and 20 terabytes of bandwidth.

Scott Tolinski

So that's really reasonable for an Yarn server.

Scott Tolinski

And so, again, you could It doesn't cost an arm and a leg. It doesn't cost an arm and a leg.

Scott Tolinski

Does it cost 64 arms?

Wes Bos

Yeah. That's good, boys.

Scott Tolinski

That's good. That's good. I like your arm and I like joke. Okay. Cubero. Let's talk let's talk about Cubero. Based on the name you might be guessing, this one has something to do with Kubernetes, and it absolutely does.

Scott Tolinski

Kubero is basically a Self hosted Heroku alternative.

Scott Tolinski

It uses material design from 1998.

Scott Tolinski

I know that didn't exist then, but it uses the old school material design aesthetic. And it honestly, I I I I've I'm trying to be nice to a lot of these. They're open source software. But, unfortunately, this one, like, does a lot of cool things and would be very nice, But it does look like it was clearly designed by engineers. So if you're the type of person who requires a, fancy UI or a UI that is, You know, doing a lot for you?

Wes Bos

You know, this one's maybe not for you. It is that about material design? How every time I hit a material design app, I'm like, oh, this thing's gonna Suck. Yeah. Like Well Why? Or or is it just is it just tired? Is it a tired UI? Tired. Yeah. Even Node Assistant uses Material UI, and I'm just like,

Scott Tolinski

I like I liked material when it came out, and that was, like, 10 years ago or something at this point. That's wild.

Scott Tolinski

It came out a long time ago. And so I think that's really just it, is it just looks old, and that's fine. But this this thing is really easy. There's, like, really quick add ons to get going with just about anything you want, and that's kind of the thing you're gonna see from a lot of this stuff. Like, if you wanna spin up a RabbitMQ or a Redis or a MongoDB, it's, like, really super easy to be so efficient. Databases in there too. Bro, you can throw anything in here, and most of these have, like, Node click services to do so, which is fantastic.

Scott Tolinski

So Kubero is certainly an option. I don't think you need to get too deep into Kubernetes. It's it's basically you're just using a either a Curl command to install it. You're you're logging in. You're getting going.

Scott Tolinski

This one is Kubernetes based. Again, I I don't think you need to know Kubernetes to use this.

Scott Tolinski

Coolify is the one that I've been seeing suggested the most and is the one that I've used the most out of all of these.

Scott Tolinski

Coolify Scott I o, In my experience, has the best UI of any of these.

Scott Tolinski

What you'll see is a lot of the really high powered ones or the really Interesting ones are all either CLI or configuration based. But if you're like me, I like logging ESLint my Vercel dashboard and seeing in The red and green, indicators if something's failed to deploy. I like clicking on that and looking at the logs there. I don't wanna do command line for everything.

Scott Tolinski

And so that's really where I think Coolify shines is that the, UI, even though the CSS is in flux, the creator has mentioned that it's It's in flux right now. It still looks really good compared to most things out there. It feels modern. And for the most part, it feels like using a Vercel type of situation Wes, again, it's not like a serverless platform. But when you you connect your GitHub I have my GitHub connected.

Scott Tolinski

I then get to see all of my repos. I select the repo I want. I tell them my build command. I click go, and it has the exact same style of Tabs interfaces. Alright. You got your e and v variables right there. You got your build logs. You have automatic deployment on push. You have SSL Node domains without having to do anything to set it up with. It, like, automatically gives you the SSL just like any of these things. And most of these platforms will. Let me be clear about that.

Scott Tolinski

But you do get that experience that you might be more used to with this. And I think the the thing that I really like the most about it is that I was able to get up and running on a COOLIFY instance in, like, 15 minutes or less. So I I spun up a droplet on DigitalOcean.

Scott Tolinski

I ran I, right, SSH ESLint.

Scott Tolinski

I ran a curl command.

Scott Tolinski

I logged in. I created my account, Connected my GitHub. Deployed my site. Really Oh. You you take out half those steps, and it's the same as any other platform as a service. Right?

Wes Bos

And so Coolify I'm just looking. They have a pricing page.

Wes Bos

This is something that they host themselves, or you can host it Vercel.

Scott Tolinski

Yeah. Like So I think there's it's it would be like you're using render versus hosting render yourself.

Wes Bos

Okay. Okay. So If you do pay basically, COOLIFY is the controls.

Wes Bos

Regardless of what you do, you bring your own servers.

Wes Bos

But Coolify is the controls for architecting and and controlling your your actual servers. And you can either run it run the controls on their server for $5 a month, or you can host the whole open source part of COOLIFY as well. Is that right? Yep. Yep. Yep. And then What are you are you paying for the controls, or did you actually install COOLIFY on the DigitalOcean droplet yourself? I installed the COOLIFY on the droplet myself, and it was 1 it was a 1 com it was a copy and paste command, hit enter, and then log in. And then but you sent me a URL that had COOLIFY in it. I I thought, oh, he's paying for something here. Yep. How come the URL has COOLIFY in it?

Scott Tolinski

I don't know.

Scott Tolinski

I I I have since moved that off of the, domain. Let me even check that because I I've assigned that an actual domain now. Me even check what that domain was. It's probably doing some, like,

Wes Bos

like tunneling similar to how, like, a ngrok or CloudFlare tunnel works, where it gives you an external Deno, and it knows how to tunnel to your actual server in case there's like a what's the word where network traffic can't get in. Why am I blanking on this? A firewall.

Scott Tolinski

Firewall. There's a firewall in the way. Yeah. Firewall. We haven't heard that term in a long time.

Scott Tolinski

Yeah. I, you know, I I don't know where it's getting the domain. I just clicked it to generate a Generated domain, which I probably shouldn't have done because I think it automatically saved that generated one.

Scott Tolinski

And, What's interesting about it is it's it's like some weird generated string, then my I dot my IP address dot s Wes l I p Scott I o. So who knows what's going on there? But, you know, once I I just copied and pasted my actual domain in there. I pointed my Cloudflare to it based on the DNS instructions I was given, and it just worked. So, You know, I didn't have, I don't know. I had no issues getting up and running with my domain on it or even just giving you that quick little domain, which connected again straight To to my box here. So, yeah, I found Coolify to be really, really nice. And and to give you, like, just a generalized idea, Man, if I wanna spin up a WordPress site, for instance, I come into my Coolify.

Scott Tolinski

I select the project I want.

Scott Tolinski

I click new resource, and then it gives me a big old list of resources to install.

Scott Tolinski

Do you want to install, MB on here? Do you want to install a Ghost blog? Do you want to install MySQL. Just click it. It deploys it, gives you a URL for it, and you can connect to it privately.

Scott Tolinski

Man, that's great. I gotta say, it's it's super good. Nice. And one of the cooler things about COOLIFY too is that, yeah, you can do, like, a Docker Warp with it so you can get that That, you know, more more secure or or So it's not just like it's not just a toy

Wes Bos

for hosting side projects. You could use you could host your whole infrastructure on this?

Scott Tolinski

Yes. You could host your whole infrastructure on this, and you can specify which server you want any of your services to run on. So even if you have COOLIFY running on droplet a, you could spin up a droplet b And without even doing anything other than connecting the 2, within COOLIFY, you could say, hey. Deploy this app to droplet b And run it on droplet b. So that way, it is always going to be in its own droplet, in its own server that you could manage its resources separately. So I I think it the the UI for this stuff is really nice, and it ends up being really a good experience. A much better experience than I was expecting from Free open source software that is, you know, doing so much. This JS, like, a a really cool project.

Scott Tolinski

Next Node is CapRover.

Scott Tolinski

CapRover, This one seems really nice.

Scott Tolinski

I don't have much to say on it because I haven't tried it, but it does seem, Obviously, the UI, if you click on it, it's a little less little less pretty, but that doesn't, you know, that doesn't disqualify anything. It it does all the stuff you wanted to do. Gets you going with a, SSL for for free and easy, gives you Docker Swarm, gives you a g a a GUI, lets you do one click to install a bunch of stuff. And it is it's basically saying, hey, man. We know this stuff can get expensive, so we're gonna make it really easy for you to host your stuff. I found Caprover to be fine. It's not the one I used From my my experience, but based on their docs, it seems like a decent option.

Scott Tolinski

Doku JS one that I saw when people were talking about Coolify or any of these. There's all do DOKU was the webstorm of these Wes there's always 1 person being like, you gotta use DOKU.

Scott Tolinski

You know? Who's the 1?

Wes Bos

I I installed this. Do you wanna you install this on on what? Yeah. Probably 2 years ago, I went through this whole, these services are are getting expensive.

Wes Bos

I wish that there was some sort of self hosted Heroku or self hosted whatever. And, what's interesting about Railway and Heroku and DigitalOcean app platform is they all use these things called app packs, which are just descriptions of how to set up a, how to set up a server. The Heroku has made all of their sort of images open source, and Different services can actually use them, Node, DOKU uses those app packs.

Wes Bos

And, I thought it was pretty cool. At the time, I just I just kept hitting, like, little, like, config errors and whatever, and I just I Said Scott it after about 4 hours of trying to get it run. So it's probably better now. Yeah. And there's also Wes you'll see NIX packs a lot,

Scott Tolinski

n I x packs. Yes.

Wes Bos

That's, like, the new version of the Heroku app packs?

Scott Tolinski

Yes. And so a Nixpack, you know, that that's kind of what it does. And you can use Nixpacks with most of these or Whatever the Docker config for these JS.

Scott Tolinski

I'm a GUI kinda guy.

Scott Tolinski

So for me, I'm like, I'm typing in my my text boxes and hitting save. I know that Is it going to, you know, not be the way that many of you like to work in, like, your packs and stuff like that? And that's cool. Very useful.

Scott Tolinski

It might be something I eventually get into here. Who knows? I'm going down a a slippery slope of hosting my own stuff. Next thing you know, I'm gonna be I'm gonna be actually knowing what to do with Kubernetes.

Scott Tolinski

So, DOKU is a CLI based. If you would like a UI for your docu instance, I guess you would call it, for your docu, You have to pay $849 for a license. So if you like a a UI, Docu's probably not for you. But if you're the type of person who likes to do things through a CLI, it it is very Heroku like in that sort of way. I think it's a good option.

Scott Tolinski

It it's it seems like it's very well liked. The people who who like it seem to, like it. I do. Like I said, I'd like to see those UIs and things, but it does seem to make it really easy to not just do the general stuff that you wanna do, but, to do some fancy stuff as well. So, You know, give dokoo a try. I think it's Wes liked.

Wes Bos

Did you look into Ludoku at all?

Scott Tolinski

LeDoku.

Wes Bos

Ludoku. So because doku. It's probably Docu if if we're thinking about it because it's Docker. Right?

Scott Tolinski

Yeah. Maybe.

Wes Bos

Yeah. Like, Of course, there's a CLI, and there's APIs for interacting with it. So it looks like somebody wrote a, it hasn't been updated in 2 years. I don't know if it's it's any good or not, but, someone else wrote another UI for for it it makes sense that they would charge $850 because for, like, in a business that's spending, like, 100 of 1,000 of dollars on servers, like a a little skin to throw on and to click on these things. Like, the $850 is nothing to a lot of companies. But if you're a indie maker, that's that's a big, chunk of change.

Scott Tolinski

Especially if the point of doing this is save money. That's Exactly. I think if you're the type of person who is getting deeper into this stuff and wants the most out of it, Docu seems like a great option. It does support Yarn 64, and the reason why I'm saying that is because Piku is the next one. And Piku was inspired by Dohu as a means of supporting Yarn Sanity four to run specifically on a Raspberry Pi cluster.

Scott Tolinski

So this one seems like it might be a little bit more Hobbyist project type of situation. You wanna throw something up onto your local Raspberry Pi or perhaps a Pi cluster.

Scott Tolinski

Seems like PIKU is designed for that and is Docu like. Again, I haven't used it. It JS CLI based. There is no UI for it.

Scott Tolinski

Kuber or Kuber, Kuber Scott cloud or Kuber dot cloud. I guess it could be Kuber, but it's with a c. Kuber Scott cloud.

Scott Tolinski

Deploy your apps on Kubernetes easily. It has no UI JS far as I could tell, config based.

Scott Tolinski

You might not need to know Kubernetes. I have JS a note, but it feels like you might.

Scott Tolinski

And I say this because I have not tried KuberCloud.

Scott Tolinski

I, You know, I I I didn't wanna get too deep into Kubernetes. I wanted to know what it was. I wanted to get my stealth up and running, and I didn't wanna turn this into a, Oh, boy. We're gonna have to, like, really get deep into the weeds. But KuberCloud does look kind of nice.

Scott Tolinski

That said, the configuration does scare me a little bit. It does seem like the feature set for this thing is really good. And last but not least is Acorn. Acorn has a Pretty website, but it's, CLI based. There is no UI for it again, and their docs show you getting up and running with Python. Node you know, it It doesn't feel like the option that most people who are, like, just looking for a Netlify alternative wanna pick. So some of these, whether it is Kuber, Acorn, Node, Kubero.

Scott Tolinski

Some of these feel like they might be for the more intense use case Rather than Coolify, which seems like, oh, hey. I wanna just get what I had going with, render.com going on my own DigitalOcean droplet.

Scott Tolinski

So if that's the type of person you are, which matches the type of person And you'll probably just say, hey. Coolify works for me. It's easy to get going, easy to install, works everywhere, and, is is pretty effortless.

Wes Bos

Sweet. Yeah. I'm gonna try throw this on my on my NAS, and I'm try trying to look at how to do it, though, because, like, it's not a docker image because it it can make Docker images.

Wes Bos

Right?

Scott Tolinski

Wes, we should have the creator of Coolify on here to talk Yeah. A little bit. He's been,

Wes Bos

He and I have been chatting a bit on Twitter, and he's a really cool guy. And he really seems to love this project that he's working on. So wonder if there's, like, a VM image I can install, because I hit that with Node assistant as well as I initially installed home assistant as a Docker image, but a lot of the good Node assistant plug ins are in themselves Docker images, and you can't run a Docker into Docker. So I had to switch my home assistant to running as a VM.

Wes Bos

And then the VM can then spawn many Docker images. Yeah. What a world.

Wes Bos

What a world. I'm gonna go back to my variables in JavaScript.

Scott Tolinski

Yeah. I know. And and if you're out there, You know, you are an expert in this type of thing or you have more questions, reach out to us. By by all accounts, I'm a hobbyist who just started Experimenting with this stuff, and Wes has not used it. So this is what I have found.

Scott Tolinski

If you have contradictory information or have found better or different things, Hit us up anywhere. We're we're happy to to have that discussion. In fact, we're gonna be having David Flanagan on who does a lot of Kubernetes. I mean, that's, like, his thing.

Scott Tolinski

And if you have any questions about this stuff, by all means, let us know, and we'll try to Get those in front of David, somebody who's actually an expert in this area that we can really ask all the questions to.

Scott Tolinski

So, again, the challenges here with hosting your own pass platform as a service.

Scott Tolinski

Getting things like high availability, you know, that you could get just by hucking some cash At a a render server or something? These things do require Kubernetes knowledge or one of these more intense Services or getting into Docker Swarm. I don't even know what the higher availability picture is for Dockerstorm or Swarm. I I have no idea. I have not looked into it.

Scott Tolinski

So it's not as just as easy as logging in and clicking a button oftentimes.

Scott Tolinski

You might have to learn a little bit about Docker and Kubernetes.

Scott Tolinski

That is a concern. I have not had to get there yet, but I can see Getting my foot in the door into this space JS being like, yeah. You might potentially have to learn some of this stuff, at least to a little bit.

Scott Tolinski

You have to keep your server up to date still. You know? I don't know. Things have exploits. Linux has exploits or whatever comes up. Whatever you're running your you you still gotta keep this stuff up to date. Yeah. Remember Remember heartbeat? Yes. When was that? 5, 6 years ago, heartbeat came out. And at the time, a lot of people were still managing their own Nginx,

Wes Bos

so We all had to figure out how to be Sysadmins and go up update our servers, and that's always kinda scary too. Updating anything with the database,

Scott Tolinski

definitely scary.

Scott Tolinski

And another thing is, like, if you wanna run things on the edge, this is not for you. You know? This is tossing up side projects. This is potentially hosting your own cache servers or stuff like that. Edge of your bed. More like it.

Scott Tolinski

Yeah. I don't I don't get that what you're trying to say there. Okay. Oh, like,

Wes Bos

it's not like, the the opposite of the edge, which is high availability running in data centers close to the user.

Wes Bos

The the opposite of that is a PC underneath your desk or, on sitting on your a laptop sitting on your bed that's serving it out to the world.

Scott Tolinski

Yes. Do not close this laptop. It runs the entire company.

Wes Bos

Wes, that's apparently, Just like a funny story is, GitHub Pages runs Yes. What's the the Ruby based thing that that runs on GitHub Pages if you wanna have, like, a site builder.

Scott Tolinski

On GitHub Pages.

Wes Bos

Jekyll.

Wes Bos

So the GitHub Pages, you can obviously host just HTML, but they also support this thing called Jekyll, which will is a static site builder, and it will build the website for you.

Wes Bos

Apparently, Jekyll was running on just like a PC under someone's desk Yarn into, I I think that actually came from when we had the folks from GitHub on that story. I thought that was really interesting that, like, it became a very popular feature, all while just running on a PC in somebody somebody's desk.

Scott Tolinski

And that's a good lesson. You don't Yeah. Always Node the serverless function or whatever that people are talking about as being the thing you need. Sometime, you just straight up need a node server, and that's good enough. Let me tell you, the the the app that I have running on my COOLIFY server loads in Fifty milliseconds.

Scott Tolinski

And, that's pretty dang fast. Okay? So, you know, people talk about you need this, you need that. Hey. You you don't Always need this, and that sometimes you just need what works. Right? So, my final thoughts, I tried Coolify. I liked it. It was easy to get up and running. I'm going to continue to host stuff there. I may move it off of DigitalOcean because I'm a salty

Wes Bos

salty man. I one one more thing I'm just. You've been talking about this.

Wes Bos

I didn't even realize, like, servers could run Yarn 64. Like, I realized it, but I didn't realize it was so readily available because not that readily available JS the problem. Oh, it's just starting to pop up.

Wes Bos

Because, like, they're they're Yeah. In lots of cases, they're faster at running things. Like, and with all these, like, AI models starting to come out where people are trying to we have a show coming up on running AI models locally.

Wes Bos

Mhmm. It's going to be interesting because, like, you're not gonna throw that on a serverless function because sometimes it takes, like, 3 minutes to to process and run. You need a long run running service for that. Right? And I'd be interested to see if people are like, okay. Well, We wanna run it ourselves, but

Scott Tolinski

we need to deploy it somewhere. So maybe this type of thing is gonna become more popular. And you know what? Some of these, services out there that offer Yarn servers so, like, one of them is Scaleway.

Scott Tolinski

Scaleway specifically advertises it itself as, Scott AI models.

Scott Tolinski

So it's basically, like, saying, hey. Our servers are good for running AI in the cloud, And they they have Yarn 64 servers. Now one thing that I've noticed is that most of these are based in Europe. And what I haven't found JS I haven't found a good solution in the Yarn space that hosts Or has, US based servers. Hetzner has it.

Scott Tolinski

What I what was the one I just said? The, Scaleways.

Scott Tolinski

Scaleways. Another one I've been suggested is RackNerd, although I haven't looked at them at all.

Scott Tolinski

So I have no idea. A lot of these places do offer servers in the US but not Yarn servers. I wonder why that is.

Wes Bos

Interesting. I wonder if Coolify works with, like, just straight up AWS Wes c 2.

Wes Bos

AWS e c 2 is their server full offering. Let me double check that, actually. How to deploy Coolify on AWS

Scott Tolinski

with preconfigured e c 2. Yeah. E c so it is e c 2. Okay. Let's see. I mean, let me confirm here. Con preconfigured

Wes Bos

AMI. I don't know what AMI is. If you can get it running on e c two, like, that might be the cheapest way. Generally, Amazon is the cheapest, but People don't necessarily gravitate to it because it is the most painful to to set up, which is we've asked this question many times, and We've had many different, flight control on SST.

Wes Bos

It's just like, why does Amazon not build a Vercel? You know? And if the if they would put out

Scott Tolinski

every single company out of business that is existing in this space that just sits on top of

Wes Bos

AWS or a rapper. And everyone's gonna say, Wes, that's what Amplify is.

Wes Bos

Yeah. If if Amplify is as good as Vercel, Vercel would not in business. Right? There's a reason we all use Syndax uses Vercel. I use it for a lot of my projects.

Wes Bos

It's really good. People there's a reason we pay up to use it. It's it just works, and it's awesome.

Scott Tolinski

I will say, though, it's not without its problems. I mean, we had situations be we've had situations because Running serverless, obviously.

Scott Tolinski

Oh, yeah. Yeah. In in running on Vercel specifically, that you wouldn't happen if you were just running a node server. And it's like, well, do we actually need to be running serverless? Is that really solving the problems for us if, one, we're still paying Out the butt for it, and it's you know? I mean, because it's not like for sale's cheap.

Wes Bos

No. No. It's it's not cheap. So, Yeah. It really depends. We are having issues with the, it was not finding the files in the SvelteKit adapter.

Wes Bos

We had some WASM files that were not referenced anywhere, and the package we were using just assumed that the WASM file would be beside it. But the way that Vercel bundles things is if it doesn't know that a file exists via the require tree, it doesn't included in the actual serverless bundle, and we could not, for the life of us, figure out. It looks like SvelteKit. I saw something come over GitHub. The SvelteKit adapter has has fixed that, so we need to try it just yet. But right now, we wrote a if you go into the syntax repo, there's a file called Why do I need this dotjs? And it just copy and pastes the files into the serverless functions before we deploy.

Scott Tolinski

I'm just here so I don't get fired dotjs.

Scott Tolinski

I, I I let me tell you something actually really interesting too before we we move off of this This topic Wes.

Scott Tolinski

I, like many other people, have been working in BUN or alternative run times. And you get to the situation where you're like, Does Netlify support Bun? Does render support Bun? You're at you're at you're beholden to the hosting platform if they support these types of things.

Scott Tolinski

Let me tell you. Here's how I got bun working on COOLIFY.

Wes Bos

Oh. I pointed it to my repo. The words you Yarn saying right Node. Sorry.

Wes Bos

You got bun working on COOLIFY. Continue.

Scott Tolinski

I got BUN. It's working on COOLIFY.

Scott Tolinski

And, let me just tell you, all I had to do was to say BUN install whatever, and COOLIFY picked it up and automatically installed BUN on the system for me. So I didn't have to install BUN. I didn't have to tell it Tolinski Bun. It installed Bun. So, yeah, I got I got Bun running

Wes Bos

with with no no fuss, no mess. So Yeah. I I I'm pretty sure Koolify has an extension called if you ain't got Buns, hon, then it just installs it. Yeah. That's what it is. If you ain't

Scott Tolinski

got Buns, hon, perfect last.

Scott Tolinski

No notes.

Wes Bos

Oh, alright. I think that's it. This I'm I'm really excited about this. I kinda wanna try to spin up a a little instance of it. And we should say, also, like, people are always like, oh, you're You're so cheap and whatever.

Wes Bos

We get for sale for free. I Scott I got unlimited Netlify account. I can host everything for free for the rest of my life, if I wanted. The reason why we talk about this type of stuff is not because I don't wanna pay $20 a month.

Wes Bos

These companies give us free hosting. You know? But the reason we talk about it is because it's it's really interesting. And we do think about everyone who's listening to this type of thing, and it it's important that we all learn to to host our own servers if we wanna throw projects up for free.

Scott Tolinski

Yeah. And you might be out there hosting 15 WordPress sites for clients At x amount of bucks a pop when you could be using a service like this to do it much easier for you. So, I mean, It's it there's definitely a lot of situations where I I think developers get into this mode where, hey. I'm building this, so everybody must be building this. When in reality, we're all working on different kinds of stuff Node different different types of projects. And I think it's important to realize, hey. If if it's not Viable for you. That's okay. I just had the same discussion on on Twitter. In fact, I had to stop talking on Twitter because people are are wild about HTMX.

Scott Tolinski

We're like, I don't know. There's so many people that get so insecure about other tools. Like, bro, you don't have to use it. Nobody's telling you to use it. I'm just exploring this thing or talking about these ideas. It doesn't mean that all of a sudden these I don't know. I I asked what types of interactive things are you doing, And people had the wildest replies.

Scott Tolinski

They'd be like, I need time travel debugging. Alright. What do you need that for? Oh, well, I need it. Actually Wes really handy. Yeah. I know it isn't. I know it's really handy, but it's only really handy when you're dealing with a lot of data, or perhaps you're building something that needs actual undo functionality. Node will undo functionality.

Wes Bos

It's funny that you say that because I was before you joined, I was talking to Randy about the the Apple episode, and people Let us know their their opinions on on Apple and and the open web.

Wes Bos

And, like, it's crazy that I was telling Randy how People get angry all the time at at certain things. And if you talk about a certain piece of tech that's not the way they do it, then they get Very angry. And it's I think the the biggest thing is that shows, like, an inexperienced developer JS when someone cannot possibly foresee that people have different problems than they have. Yeah. They have different stack setups than they have. Like, Some people would say, oh, yeah. Like, you could just use, like, a meta framework for absolutely everything. And, like, no. People have other some people still need GraphQL APIs because they They have many pieces of data coming in. Like, there's so many different problems and so many different instances that need to be solved that you may not be even considering on what that looks like.

Scott Tolinski

Yeah. I know. And I think if if we had doctor, Tolinski on the show, I think she would diagnose it as just being insecure. Right? These people see something they don't know that much about. They're gonna lash out about it because, they don't they don't know why other people need it because they don't need it.

Wes Bos

Who knows? Or or I I also think that people think it makes them look smart when they're really opinionated about something. Yeah. Some people really love to argue on Twitter. Yeah. It doesn't it doesn't make you look smart, at at least not to me. You know? Like, maybe for for beginners, it makes you look look really smart. And we've said this many times before. It's like, you often see beginners have lots of opinions on things because it it makes it makes them look like they they know what they're talking about. But in reality, You just look like a jerk in a lot of times. And that's it's fine to have opinions, but there's there's a there's a line there.

Scott Tolinski

Yeah. Yeah. You gotta stay open minded.

Scott Tolinski

I I posted a link to a a hacker news that was posted 19 days ago, which is oddly enough, and says ditching pass, why I went back to self hosting. Now I found this not only did I find the blog to be interesting, but I found that I linked to the comment section specifically.

Scott Tolinski

There's a lot of discussion around cost to actual cost, what people are using and what they aren't. It's full of typical hacker news nonsense where People Yarn, again, arguing about the things, but I did find the whole thing to be just an interesting read if this is something you have interest in. And, again, we're gonna have David Flanagan on the show who's an expert in in Kubernetes stuff. So if you have any questions about deeper things here. Let us know. We will pass them along to David because I'm sure we're very curious too. We're gonna pick his brain.

Scott Tolinski

So That's it for this episode. Let's get into sick picks and, shameless plugs. Wes, do you have any sick picks?

Wes Bos

You bet. I got a really good one for you today. And can I can I go run and get it, actually?

Scott Tolinski

You bet. Yes. K. Node sec.

Scott Tolinski

Yeah. Absolutely.

Wes Bos

Alright.

Wes Bos

I just ran all the way upstairs because it is a video podcast now, and I wanna be able to share what it is. And it is what is called a GripStick.

Wes Bos

You gotta pull it back. It's too close to the camera. I gotta be one of the makeup influencers. There we go.

Wes Bos

Grip So a grip stick is That doesn't sound right. The like, I mean, this is as seen on TV. The best way to seal your chip bags or, pancake mix or any any sort of plastic or cellophane bag.

Wes Bos

And the way that it works is that you just fold it over.

Wes Bos

Wes what are these? Chester's Yarn twists.

Wes Bos

Chester's corn twists? What Yeah. Is that? I don't I don't even know. Do do you have this guy, though? They're like, oh, yeah. To cheetah. Yeah. We have Chester Cheeto, but he's just like the Cheetos guy.

Scott Tolinski

He's occasionally, like, kinda delinquent in commercials.

Wes Bos

Yeah. He's he's he's kind of a yeah. He's definitely a delinquent. I would I would say that's it. But the way that works is chip clips. I hate chip clips. You Node? You you put the clip on, it falls off or whatever. Pain in the butt. So these things are called the GripStick, and you basically just make a a little, crease and then, zoop, and then it's airtight.

Wes Bos

Like, I feel like I I might quit my job and be, like, a a salesman for this type of thing because it's so nice. And you can get a pack. And, like, my kid had some cookies in their lunch, and they didn't eat the whole pack. So what I did is I just grabbed it and threw a little one on this morning.

Wes Bos

And it's like, I I can't believe how awesome they Yarn. And you can I got them on AliExpress? It's, like, $2 for a pack of, like, 8 or something like that. Super cheap, and it just keeps your food super fresh. And I've just been, like my wife is so sick of me showing her new things that I can grip stick. She's like, I get it. They're they're nice clips. It's not that exciting. But I was like, Scott will care. I'll show Scott.

Scott Tolinski

And you know what, Wes? There you know, I'm I've already opened the browser and started searching for them.

Scott Tolinski

So, yeah, I care. And I Yeah. Not only do I care. I'm gonna order some, and I definitely see the utility. I've always wondered to myself with chip clips, What are these doing besides making this stuff not fall out of the bag when you pick it up? Like, they're not keeping it fresh just by folding over the bag or, You know, my there's Scott any better than just crinkling it up and rolling it up, but just man, what a what a nice little thing there you Scott. Yeah. Big fan of this. Well, I don't, you know, I don't necessarily have anything super interesting, but, you know, I will sick pick Something that I I have all over my house now that I've been I probably sick picked this at least once before, and sometimes we do repeat sick picks. But I have been slowly but surely changing all of my light switches to be The Caseta.

Scott Tolinski

I have the the Diva, which is the one with the dimmer, and then the Claro, which is just the normal smart switch, or there's the accessory switch. I've been putting these things All over my house, slowly but surely, because they Yarn expensive. So I'll buy 1 or 2 at a time, install it. I still have maybe I still probably have a third of the house to do still, but I love these smart switches Opposed to, like, I've used smart bulbs in the past, whatever.

Scott Tolinski

But I have my home assistant. I have routine setup. My wife hates it because it Shuts off the lights at the kitchen table at 8 o'clock when she's sitting at the kitchen table sometimes.

Scott Tolinski

But I gotta say, having the dimmer everywhere, having these smart routines, it it doesn't get any better, and the software is fast. It's efficient.

Scott Tolinski

The biggest downside with any of these Casetas, anything, is is the price. So, again, slowly but surely, or if you're doing a whole bunch at once and you have the Cash to spend on it. I have found, as far as all smart light switches go, the Casitas really do seem to be the best.

Wes Bos

Yeah. I'm I'm a big fan of those ones as well. I have I probably have, like, 8 different kinds of light switches because I've tried them all. And, by far, the worst ones are the Wyze, unfortunately, which kills me because I love Wyze as a company, but they always always lose Wi Fi. And I have a commercial level Wi Fi setup at our house, so it's not a Wi Fi.

Scott Tolinski

So, yeah, don't get the wise ones. Sick. Well, shameless plugs. I'm gonna shamelessly plug the syntax YouTube. We're posting We're posting quite frequently, and we're gonna continue to post there. I'm gonna be putting out later today. It'll be very live by the time you hear this. A video on what it's like to code with the VisionPRO on. So if you're interested in in VR encoding, I have been using it daily. I Did not want to take it off last night, while Wes or yesterday. All day at work, I was coding with it on except for when, Randy and I had our meeting, I took it off for that.

Wes Bos

Awesome.

Wes Bos

I'll shamelessly plug the Syntax YouTube channel. Check it out. Just go to YouTube, type in syntax podcast or I think that's the best Node. Scott com

Scott Tolinski

youtube.comforward/ At syntax f m. They have a new URL style structure. They change this all around. It's at syntax f m rather than forward slash channel Forward slash u c y.

Wes Bos

Whatever. Yeah.

Wes Bos

Yeah. That's good. Although, like, search it. I think that helps.

Wes Bos

I Wes seeing how mister Beast doesn't link any of his YouTube things anymore because, apparently I don't know. The these, like the Algo. People talking about the algorithm, but apparently people's experience were going to search it. I know. It's so frustrating. Freaking algorithm.

Scott Tolinski

Hey. But while you're there, smash that like button, ring the bell, cook thumbs up on all the videos, and tell Wes and I that we both look handsome in the comments. We would all love that. Tell us who's handsomer, though. Alright. Well, you don't

Share