over 3 years ago Syntax Podcast
Buy It or Build It? A Service is Not a Solution
- 02:33 Overview of buy vs build services
- 03:40 Cost of services vs cost of building
- 04:05 Financial burden of services
- 07:12 Evaluate time to build vs use service
- 09:51 Company's core business vs maintaing service
- 10:03 Escapability from services
- 15:17 Hosted APIs pros and cons
- 19:39 Cron jobs as a service
- 20:48 Checkout services
- 24:30 Hosting services
- 26:10 Open graph image services
- 27:28 Search services
- 30:32 Custom search vs dedicated service
- 33:36 Auth services
- 36:59 Image services
- 37:53 Video hosting services
Hosted APIs pros and cons
Scott Tolinski
These aren't all equivalent services. They don't all do the same thing, and many of these can be hosted on their own, or Or you can spin up your own box with these things on them. So there's definitely some nuance to this discussion,
Wes Bos
on on this type of thing? And I think that's mostly gone away, but I know I have a little a tweet from, like, 3 years ago of how are you running cron jobs on Vercel? And every now and then if someone finds it via a Google search and they say, hey, is there any a date to this. I bet they will roll it out at some point because it's in that, and then and then that'll fix everything from from going on out. And I didn't have that set up, so that's something I've got on my list to do. Yeah. That's certainly the benefit of not using
Wes Bos
And I I think there are certainly some times where it has bit me. That that's actually a really good question is sometimes it makes sense to just get up and running as quick as possible, spin up clusters and Kafka and all this type of stuff is like, whatever. Like, it could probably save charge based on just having a seat plus usage.
Wes Bos
A serverless function because serverless functions It's another one of those services say, I can I can run this myself,
Scott Tolinski
or super good, I suppose,
Wes Bos
Vercel specifically does not have cron jobs.
Wes Bos
just, it. That need to be indexed, and then it will return it. But that that's a major thing to,
Scott Tolinski
but there's a lot of services out there that will make it really easy it. To click a few buttons and get an API going. And sometimes that's really super good, So there's a lot of, like, really interesting build it yourself options out there for, Boss, and Scott
Scott Tolinski
is it really that hard to have a database
Wes Bos
Update something or fetch something or whatnot.
Wes Bos
Then you just got to think about the long term. I remember, like, a long time ago, Unsplash,
Wes Bos
generally only run when somebody visits them, and you can't say Just visit it every 10 seconds so people would write services that would and there's there's other things. Like, you'd run them and see the responses and whatnot.
Wes Bos
a year for Heroku.
Wes Bos
this code every hour to go
Wes Bos
a service that will ping
Wes Bos
I'm I'm trying to find the blog post because I remember when that was posted. They've obviously they've moved from that now. Probably at a certain point, they go, yeah. It's Why?
Scott Tolinski
But, also, like,
Wes Bos
on Heroku at the time. And they basically said, like, it's just a couple guys running this thing.
Scott Tolinski
and it's largely been fine. But, Again, like with anything, there are certainly times where I've been like, man, it would be way easier if I would just,
Wes Bos
$300,000
Wes Bos
we're just gonna kinda, Like, run it. You know? Like, we're not gonna worry about the the cost of this type of thing. And the people were being like, well, you could in a serverless function. And then I have I literally have a page on my website called forward slash thumbnail.
Wes Bos
And out of that popped up
Scott Tolinski
It's a it's a big conversation to have there, and I guess it depends on on,
Scott Tolinski
a year to to build. That's a lot of money. You could also pay that money to a a single freelance developer who could do it for you. You know? Yeah.
Scott Tolinski
and an API yourself.
Wes Bos
how do I run And basically they were just hosting all of the images
Scott Tolinski
Yeah. It's a that's a tough question for me and one I struggle with personally because I always lean to the side of build it as you'll notice in this discussion,
Wes Bos
they they posted a blog post of, like, why we pay $1,000,000 and then look at the results and type a little bit more,
Checkout services
Wes Bos
syntax coin when the thing drops or, you know, PayPal if I want to add it. Yeah. Yeah. And I I I personally have intimately,
Scott Tolinski
Yeah.
Wes Bos
and they take a certain cut. What was the one that went up to 10% recently? Everyone was like, strip all the Google branding.
Wes Bos
but generally, you just have to do the math.
Wes Bos
is often something that is a little bit scary to,
Wes Bos
defer to somebody else on this one. Yeah.
Wes Bos
because it's not it's all it's both very complicated. Scott Scott just said right there how complicated it can get, Especially if you're doing recurring payments, either the hosted service if you built it or, So I'm writing a I wrote a little, Like, npx script that will take your,
Wes Bos
Stripe.
Wes Bos
So there's that. And then you also want the ability to like, is this even something that I can build myself? Okay. So if I go to your search
Scott Tolinski
vaulting or storing customer as a, like
Scott Tolinski
cards,
Wes Bos
It has coupons, but not Flexible coupons. And then like, I think they implemented like country code coupons because I was like, they're talking to me like, hey, move over to Stripe checkout. And I was like, well, you don't do Party purchasing power like. Oh, yeah.
Scott Tolinski
Courtney and I just both watched the first 2 Austin Powers, by the way. Oh my gosh.
Scott Tolinski
hey. Cancel this Users subscription. I have to say, okay.
Scott Tolinski
But then also Yeah. Once you get into sorry. Sorry, West, to interrupt. Once you get into
Wes Bos
Except it. And then paste it back into your clipboard.
Scott Tolinski
hit this problem. I mean, I I chose to roll my own with Braintree.
Wes Bos
the features that I wanted were didn't exist in any
Wes Bos
Gumroad. Yeah. Yeah. So gumroad. And then out of that, a A lot of people recommended lemon squeezy. You talked about that paddle, And that's more of a joke because,
Wes Bos
to write your own or to, like, have to update it and things like that. You sometimes just like, I'm gonna There's a couple other Netlify didn't at a time, but now they do.
Wes Bos
do I lock in entirely to a specific regret
Wes Bos
Throw me oh, that's to and to use one of these things because you can think like, oh, am I gonna spend 3 weeks making my own GraphQL API, or am I gonna spend a 3 seconds MPX, and I'm up and running on that thing. And I'll probably go with the faster one when I'm excited about getting a project up and running.
Scott Tolinski
how about throwing a little bit of a bone here? So, throw me a freaking bone here. Right? Austin Powers. Hey.
Scott Tolinski
Hit hit Braintree. Like, how many months has this person been subscribed to? Okay. They've been subscribed here 4 months. It. Alright. Now I have to say, okay. They've been subscribed 4 months
Wes Bos
that's so good. It's remember, everyone used to do Austin Powers, And then, like, Borat came out, and people did Borat for Oh, yeah. Like, 6 years. Yeah. Anyways, checkout is a very Scary one, AWS layers, but then Then you think about, like, some of the more complicated instances where,
Open graph image services
Scott Tolinski
API to position text and whatever onto an image, more money, YouTube, that's bad. But if you're building level up tutorials or Isn't that bad?
Scott Tolinski
They have their own, like, system everything. And sometimes you're refreshing the page being like, why the heck doesn't this work? But Yeah. Yeah. I mean, you can you can build your own.
Wes Bos
you can convert that SVG to
Wes Bos
and then
Scott Tolinski
what we're having to do is use Cloudinary's
Scott Tolinski
You can make a component in anything
Scott Tolinski
Cloudinary one. And I was just like, oh, great. Okay. Well, that's that's this is all good. And then so I I purposely kind of ignored it just because I was bitter That I I you know, because the Cloudinary one is fine, but it's by no means easy. It's it's not like a lot of fun.
Scott Tolinski
and then I have it generate that image and then serve it for Open Graph images. Right?
Scott Tolinski
But you could do this. There there's that new Vercel package. What do you know what it's called? Yeah. It's called Vercel o g.
Transcript
Wes Bos
Oh, you know, just, rocking. I'm writing a little shell script, this morning, which, is kinda cool. I wrote a little,
Wes Bos
entirely TypeScript, I find that frustrating, Bandwidth is one of those things that is expensive And I had, An image very easily. So it's it's actually kind of a really neat approach to it. And they look really good. I thought first I was like, s v g. That seems kinda limited. Right? But I see a lot of people using them. They look great. Yeah. It was funny because that, like, came out maybe the day after I finished my, Do I want to maintain my own checkout form All of those. They they add a lot of and then store it just stores it in memory for,
Scott Tolinski
And this is mostly it. Just going to be us pontificating
Scott Tolinski
I'm from Denver. That's right. And with me, as always, is the West boss. West, what's up, my man? Hey.
Scott Tolinski
And then I I used as const and then used type of key of or key of type of. Keys Key of type of. Yeah. Key of type of. Yeah. Yeah. Yeah. And it was all all super nice. So I I, it depending on what type of project you're working on. Right?
Announcer
Monday. Monday. Monday.
Announcer
the craziest,
Wes Bos
npm pack. Here, I'll tell you the problem I'm having, see if if you have this problem as well, is, sometimes I wanna test some JavaScript. So I just paste it in the console and and run it and just to kinda Go back and forth and play with it or or I'm playing on the page.
Wes Bos
that you that you're working on.
Scott Tolinski
I wonder, what would be the right solution here, and then I thought, oh, wait. As const, as we just talked about, is the right solution.
Announcer
the tastiest web development treats coming again hot. Here is Wes, Barracuda,
Scott Tolinski
but I can understand why you would have that need or why anyone would have that need. There but there's never been a situation where, man, I'd really need that, but, I I think that's a a really fun little experiment,
Scott Tolinski
On this Monday, hasty treat, we're gonna be talking all about strings and regex and looking into our database to find things. And our our search system is by no means as robust as something like A dedicated search system, I've been doing Austin Powers, like, for, like, a a week.
Scott Tolinski
on the cost of services versus the cost of building things yourself, But I think it's a conversation worth having for many people. My name is Scott Talinsky. I'm a developer.
Scott Tolinski
Buy it or build it, when you should use a service, and when maybe you should build it yourself.
Scott Tolinski
cool. Hey. Guess what I used, I know. I I hear you, man. And and there are some times, like, You know, I built level up, and I decided to
Scott Tolinski
yesterday, almost like right away. I I was having an issue in TypeScript, and I was thinking,
Wes Bos
Kinda It could be anything, basically, I had to update my Chromium version, and the new Chromium version is Over 50 megs and doesn't fit in a serverless function.
Announcer
Open wide dev fans, get ready to stuff your face with JavaScript, CSS, node modules, barbecue tips, get workflows, breakdancing, soft skill, web development, the hastiest,
Auth services
Scott Tolinski
And it is largely been
Scott Tolinski
Yeah. We we can do this last 1 and then and then call it. I said we were gonna move to these quickly.
Wes Bos
Ever And now there's lots of services to sell products online where you can drop it in,
Wes Bos
which is, if you have invited that person, if you have a team license, if That like it will search their credit card, like the charge ID and their name and their email. And like, basically, it fuzzy matches all of those. And I was, like, sitting there the other day. I was like, I
Scott Tolinski
or reidentify
Wes Bos
but still sketches me out sometimes.
Scott Tolinski
That has gotten to be Yeah. Way easier to have a email based auth.
Scott Tolinski
a authorization system, and I know it inside and out. So if I need to augment it, Then I can. That said, it's not as robust. If I want to add OAuth stuff, I gotta do that myself. If I want to, And, you know, here I am 5 years later or so, and there are Certainly many days in which I'm like, man, I wish I would just eat that cost because I probably spent private accounts or whatever themselves in a way that's like, Oh, you now have to change your passwords to meet the new security settings of this new host, right, even though we already have your your password. That that seems like a big headache for me. So I was able to essentially take Meteor's auth system and rebuild it myself using the same,
Scott Tolinski
I think that now that we have, like, 1 password
Wes Bos
you wanna have a single sign on for We need to,
Scott Tolinski
Now the big caveat there is I needed to do mine my own. Right? We we had a Meteor site, and Meteor did off for me.
Scott Tolinski
I even you know, here's here's to how I double dipped, it. Because not only did I roll my own auth, but I got 2 video courses out of that and how to build your own auth. So not Not only did I get to do a deep dive into auth systems, and we got several syntax episodes out of it. And now I have a deep understanding of not only how to build an auth, it. But how to build a 2 two factor authentication system, how to build
Wes Bos
Merging of accounts, like you said, log in with Twitter, Facebook, GitHub, which, by the way, like, crazy about gumroad.
Scott Tolinski
And I have a database full of users, and I didn't want to make all of those users reauthenticate
Scott Tolinski
Yeah. It's it's all a all a trade off. I was surprised Azure.
Scott Tolinski
I rolled my own auth as you you you might be getting a theme From this episode, I rolled my own off, and it's been You can certainly
Wes Bos
all of your services I'm sure that makes it 10 times harder than what I'm doing, which is just single payments.
Scott Tolinski
actually very easy.
Wes Bos
when somebody clipboard contents, parse it into JavaScript with I'll I'll say the Vimeo thing is just working for me as well, so I just honestly,
Scott Tolinski
Last 1, images.
Wes Bos
So I don't know if that counts as writing your own, but I certainly Like, you take a look at probably the email newsletter is is probably the biggest one.
Wes Bos
There's, yeah, there's a lot in it. And I it's not that complicated, hundreds of emails queued up, and they didn't actually clear until a while. And that that was a lot of support coming in. People had bought stuff but weren't getting it.
Scott Tolinski
you know, a classic problem of OAuth systems is somebody signed in with a Google, then they also signed in with their email, and they're saying, like, oh, I have 2 different accounts Now so, like, merging those accounts is something that some of these services do, whether that's Auth0 or,
Scott Tolinski
and authentication system and have it be secure.
Wes Bos
across I I just rather do other things. Yeah. I hear you. Yeah. In,
Scott Tolinski
it. Like, super base or whatever. Right? decided to pay the man and not have to worry about that type of thing because they are focusing on other things. Yeah. Totally. What about, like, cron jobs? No. I've always this one kills me. I've always written my own, so I don't I don't even know any services that for cron jobs. So It. You get live streaming. You get data analytics. You get thumbnail generate. I mean, the Cloudflare one, the API was super sparse. It it felt like it was pretty half baked. Awesome. All right. Well, that is buy it or build it.
Wes Bos
The email, you get a link to something.
Wes Bos
host my own.
Scott Tolinski
hashing insulting methods that they needed.
Escapability from services
Wes Bos
there's a little bit of setup you need to do to have your domain verified on Postmark. But but what I really should have done is have a second
Wes Bos
It did go down Eighteen different applications you want to factor off. You need to send somebody SMS token. And then, like, what happens if they lose that? And you have to have support for that type of thing and it's pretty simple. Maybe A couple 100 lines of code to do that. I have magic links,
Wes Bos
Like, write your code towards 1 vendor's package The Cloudinary like API has has kind of become
Wes Bos
all of your code,
Wes Bos
the other day for not go down, but it was basically they were delaying sending an email for 14, 15 hours.
Wes Bos
and Maybe they will too as well. But who knows? Right? You know what? You know what? When I think about a lot, and I love Firebase, but With Google's track record of renaming and shutting things down, I often think, like,
Wes Bos
because I was I probably had hosting providers that sit on top of,
Scott Tolinski
my chips in that basket. You put chips in a basket?
Scott Tolinski
But I I'm not gonna be putting, 24,000 using
Wes Bos
Yes. I you can do that. Okay.
Wes Bos
at least if you're using, like, MySQL or something like that, you can say, alright. Well, it's so expensive.
Wes Bos
Can I do something like that? So an example where you can get out of a service really easily is Something like Postmark.
Wes Bos
I do have a capability
Scott Tolinski
that, like, is really no it's, like, probably one extra step to use Node mailer as opposed to using the Postmark API package or whatever. So, oftentimes, people will reach for a company's given Node package even if it's doing something that is very painful of being done without it. Like, what's the I'm just looking at the documentation here, 1, the size of your project, and 2, like,
Wes Bos
when you can just use a straight up SMTP and configure it with literally two lines of code. It's It's just a username and a password that you set on environmental variables. Yeah. Sometimes it feels like a 1 company At the very top, you could just use something like Vimeo. That's what I use, and I pay the man and and move along.
Wes Bos
And that was really frustrating because people oh, no. No. That's
Scott Tolinski
just removing their services from the web. So, yeah, I that's one of the reasons why I personally never jumped on Firebase.
Scott Tolinski
few companies that I would trust less than Google to maintain or keep a service around. You know? Google has you know, using a service is always the right solution. But I think Yeah. We need to take it on a case by case basis. Right?
Scott Tolinski
I'm just gonna move this to to something else. And I'm I'm Graph cool disappeared just straight up. I mean, they became Prisma, but they pretty much just straight up disappeared as Graph cool. Yeah. I think that it just happens. And and, you know, there's there's very, a for,
Scott Tolinski
I looked at Firebase. It's like, oh, this is cool because it does a lot of the stuff Meteor did for me,
Wes Bos
verified and there and then I just used, like, I just used Amazon
Wes Bos
like, I know there's supabase and things like that, but I like, that's not the same thing. Like, Firebase is a host of service. And to use it, you generally, you use
Scott Tolinski
As a selling point to their product, we make it nice and easy to get going with our thing even though it's really easy to do in straight up node, but we make it that. And so everybody else is like, oh, we gotta do it too. And the next Then you know, you have all these,
Wes Bos
I've been using Postmark to send my So it could could really add up, especially if you're, like, running a project that is not making money. So it's kind of interesting. They they have volume discounts and whatnot too. It's all, A big math equation. Right?
Wes Bos
in the fact that I'm just using Node Mailer. Node Mailer just takes SMTP credentials,
Wes Bos
And that people were trying to reset their password. It wasn't. So they try to reset it 6 more times and then those would eventually they'd be getting 6 more password reset email, you know, like, It's just kind of a bit of a nightmare. And at that point, I thought, well, An image, the title, the URL. You pass in all the data that you want for it to render out to. And, Of the services.
Scott Tolinski
Okay. So let's talk about some actual services here. So, like, as we're we've kind of alluded to APIs. Right? I mean, there are a lot of these services whether it's, hosting on something like Supabase
Scott Tolinski
packages that barely do anything above the standard functionality,
Wes Bos
Like, 10 years ago or or 8 years ago, there was another a very popular database provider that everybody used in their Ios apps. Mhmm. And they basically said, you got 3 months to
Wes Bos
email transactional service ready to go, Or I could just hot swap but
Scott Tolinski
like like, what is the difference a difference there between using Postmark's node package Mux is gonna be the same price in my experience, and the APIs are way better. And then you get you go Yeah. Mux is like a developer.
Wes Bos
the Firebase packages and everything like that. And, like, it. I'm sure they wouldn't, but, like, there was another one. Remember there was, like, a database? Probably not a good idea to put all of our images in a Heroku thing and and use a a CDN in front of that. And these tools are much easier, but it's kinda interesting at the time where they clearly and, That was a big one. When I did, I wrote my own checkout.
Scott Tolinski
Yeah. But escapability is a big one. Like, what
Scott Tolinski
happens if you need to move off of this thing because it's either becoming too financially burdensome or if it's blowing up. Maybe companies go out of business. That's a whole thing. Right? Companies are not nothing lasts forever.
Wes Bos
And, like, maybe sometimes they have things like inlining CSS or something like that. I can't see what that feature would be. So, like, why would you,
Scott Tolinski
or AppRight or Firebase or Hasura
Hosting services
Scott Tolinski
I think there there is probably, if you're looking for a job, it. There's probably no more valuable skill than getting good at AWS. Right?
Scott Tolinski
I I think it's gonna be endlessly useful.
Wes Bos
What's the Microsoft one? Many, many years ago, I ran my own I just look at how much Algolia is. It's a dollar per 1,000
Wes Bos
I I said, maybe 2023 Yeah. Yeah. I wrote my own off as well. I use passport JS, Get off our servers. We're shutting this thing down, and it was just like, oh,
Scott Tolinski
utilities and things. But This episode's getting kinda hasty or tasty. Oh my gosh. 37 minutes.
Scott Tolinski
Oh, Azure.
Wes Bos
is my year to learn AWS,
Wes Bos
features on top of it for deploying and building and Gone are the days of just having an MP 4 file and putting it in a video tag.
Scott Tolinski
What about, like,
Scott Tolinski
probably my year to to learn AWS, just to get straight to it. You know? It's our year it. To learn AWS. I have that I have that on my, to do list as well. You know? It's something that I I very much agree. Right? Because a lot of these services are just sitting on top of AWS,
Wes Bos
infrastructure. They sit on top of AWS, Google Cloud.
Wes Bos
and restarting and and whatnot.
Wes Bos
because I was just going through the the gripes of
Scott Tolinski
We built our ours it. With Cloudinary. So I ended up going with the service, but it is still building our own at the end of the day because,
Scott Tolinski
And they're largely providing you with handy,
Video hosting services
Wes Bos
Let us know what you think, what should be bought and what should be built to it as syntax of them. We love hearing it. Other than that, that's it for today. Thanks for checking it out. We'll catch you on to Wednesday.
Wes Bos
So that's really nice, This is another big one is do you pay?
Scott Tolinski
Video streaming. Yeah. Yeah. And and as somebody who's, like, intimately looked into this process,
Scott Tolinski
I highly recommend going with an option like what Wes chose to do with, Like Vimeo We also have things like search. Right? You can use a service like Algolia
Wes Bos
standard.
Scott Tolinski
All things considered. Granted, if you're building yourself. Because many times, I think it gets conflated that, you know, hey. Build it yourself is always the right solution or,
Scott Tolinski
you can use AWS, You could use a service like it. To compress and serve up the correct size images and those types of things, or, you could certainly use sharp.
Wes Bos
40 gigabytes, And then it's your 1st born after that, you know, like, that's how they get you. Oh, this is great. This is great. Oh, how much is that? Then we run you over with the truck.
Wes Bos
And if you go with You can go, like, straight up post your own servers. Even you could do that.
Scott Tolinski
That is like I I'm repeatedly, but it sends
Scott Tolinski
I'm sorry. My dogs bark. We never have dogs bark on this show. I'm very sorry, folks. It's it's not that bad for us. Right? It's considering that's it. Our core business, we're happy to spend the money on the video part of it to be seamless. Totally. Totally.
Wes Bos
Mine is incredibly expensive. I think I pay, it. Like, $10 a year, so I need to host all my video.
Scott Tolinski
Head on over to syntax.fm
Wes Bos
I probably should just put those stream them straight off YouTube. I could probably save a lot there. But, anyways, to to do that for you. Interesting.
Wes Bos
But then we also talk to the folks at, or the the folks at Sanity.
Scott Tolinski
for a full archive of all of our shows.
Scott Tolinski
It is a tremendous effort. So unless you are trying to be Netflix
Wes Bos
no matter what.
Wes Bos
And that's nice because
Wes Bos
and they wrote that themselves,
Wes Bos
that you can just, like, put the ingest URL in front of your existing URLs? I know that, like, it tells you what it has access to,
Scott Tolinski
it. Mux, let's see. You got Mux
Wes Bos
Granted, I I do a lot because all my free courses are on there as well, so that's That's a lot of bandwidth that I'm paying for.
Scott Tolinski
or something like Mux over the build that you're sussed. Because if you're building it yourself from the ground up, of built into node.
Scott Tolinski
to how easy images were for in Drupal for me. Like, a lot of my development career, I I know this is like a common theme is, like, how can I get back to how easy this was in Drupal? Now granted, Drupal has its own issues, but, like, there's some some things
Wes Bos
and that's what Wyze is doing. They're taking the feed off the camera and running it through Kinesis because they do streaming. They can, like, degrade the quality if it's necessary, things like that.
Wes Bos
Or you can use sort of like an intermediary, why didn't you build it yourself if x, y, and z? And, and then it will search based on customer ID, And basically, it it renders an SVG, transactional emails the credentials I I was just looking at the Versal docs. They are recommending using GitHub workflows, which is kind of a interesting What else do we have here? Checkout.
Wes Bos
not anywhere near cloud Cloudinary is one of those
Scott Tolinski
And don't forget to subscribe in your podcast player
Wes Bos
It's you often need major infrastructure to do for, I don't know, probably 6 years now, and,
Wes Bos
because it it It was too expensive for them to do that type of thing. And that's that's the other thing with these services as well. Sometimes, oh, it's free for the first
Scott Tolinski
Peace. Peace.
Scott Tolinski
and you could or you could use a bit move in or any of these other ones that have a whole ingest process where you then have to what what what you do in these other ones, you ingest your video. It creates of my own developer salary essentially fixing bugs or writing the code than I would have if I would've just gone with the service. So there's definitely, it. Like, major trade offs there. I I think some of that is like,
Scott Tolinski
like, pulling in lessons from from my Drupal days back into my my daily life, and It's so interesting to think about. I I think it's, one of those things you just always have in your mind to, like, some of the other authentication services that come baked into,
Wes Bos
So Sanity has their own built in, like, image compression resizing, whatever,
Wes Bos
Apps that are websites just like, oh, it does that? It does that? It does that? There's so many like, they've sponsored us in the past, but, like, I legitimately,
Wes Bos
I'm always amazed that all the different things that they they can do for you.
Scott Tolinski
monthly views. You're looking at, like, $140
Wes Bos
as long you can always get your images out, especially if you use the, like, special URLs, using sign in with Twitter or sign in with Facebook for anything. The only thing I like is sign in with GitHub. I try not to do it either.
Wes Bos
I've also looked into Cloudflare stream,
Scott Tolinski
monthly views. A 24 month 24,000
Wes Bos
I think people use, like, Amazon Kinesis.
Wes Bos
Let's do the last one here. Video hosting. There's there's a couple different, like, levels to this type of thing.
Scott Tolinski
Based on the quality in which a user is requesting at any given time and by the end of it, yeah, you're you're feeling very upset. Yeah. Yeah. And added a note package
Scott Tolinski
a month,
Scott Tolinski
I I think if you're talking Cloudflare versus Mux, or any of these services that exist to it. Essentially, help you with data and an API.
Scott Tolinski
Yeah. You know, I I I'm, like, often just trying to get back
Scott Tolinski
or YouTube, there's really no reason to build it yourself. I mean, heck,
Scott Tolinski
Twenty versions of that video, stores it into a folder, makes database records, and then you have to query that database to get the correct version of that video my roles. I could type in a role, and it's gonna give me everybody of that role. Right? It does a fuzzy find for any of the properties In which I'm telling it to do so, and it it it's just a big old regex.
Wes Bos
to do that type of thing. ImageX is another one. But then there's There's also, like like, Cloudflare also just rolled out their own
Image services
Scott Tolinski
but I have, like, a 1,000,000,000 a 1,000,000,000 referral bucks on Cloudinary, so I'm not paying anything for it. So I you know, it's a cost.
Scott Tolinski
to our stack, and it makes it really easy. It. You import an image, and in that import path, you just pass in some parameters, and we'll, generate the images for you. That said, I largely do everything Cloudinary because it's easy. Cloudinary can get expensive,
Scott Tolinski
The the of Vite Image or I think that's what it's called, which uses Sharp
Scott Tolinski
You could also roll your own Cloudinary type of system if you want, but, again, you're paying to host that and whatever. So To me, this is one of those ones where I'll often just reach for Cloudinary because it makes it super duper easy. But, again, I can certainly see the benefits of not.
Search services
Wes Bos
And the solution to that is you have to use And that basically is just a function that runs every so often. And And when people started moving over to serverless, that was kind of something that was missing. It's like,
Scott Tolinski
and use other services to take screenshots of it, whether that's, like, something like puppeteer or something like that. Yeah. There's a lot of different
Scott Tolinski
To to do search or you could custom build it. Like, anytime that we've done search on level up, it's largely just the tremendous track record of of, And now what I'm I'm stuck maintaining is basically a system where instead of being able to say, managing reoccurring subscriptions.
Scott Tolinski
Yeah. From the the show Silicon Valley. It's a Google search box. They had to install it. We had to pay somebody to configure it. Boom. They they got searched for their site. But it was a giant pain in the butt, and it cost a lot of money at the end of the day, but it was very good. They needed robust search, and it needed to work that way. So, What what's the life cycle of this project going to be? Where do you see this thing going? Do you do you see this be blowing up? Do you see this being something that you're gonna have to pay for for the rest of your life?
Wes Bos
But you can't use AWS layers on Netlify or Vercel.
Scott Tolinski
You have to maintain it. These are puppies that you have to take care of for the rest of their lives.
Wes Bos
So then I had to downgrade and it would So and then I'm gonna hook that up to, like, a keyboard shortcut in better touch tool. So it basically just pastes JavaScript it's gonna be. That's So cool. Yeah. That's, I've never I've never had that need, I'm using puppeteer, do I want To be spending time building and maintaining this type of thing because even like Century is a perfect use case. Century is entirely open source, but All kinds of people pay for it. Why? Because you probably don't want to have to put something so mission critical, Me too. And at the time, I was only doing it because But then, like, AWS also has their own suite of tools that does that. And they've not never been as popular as Some of these hosted services. So I'm thinking, like,
Wes Bos
to an older version of the package and use an older version of Node. Js. And I I probably sunk, like, 3 or 4 hours into it. And at that point, you got to say, like, is this worth it? Like, what's my time worth? You know? Yeah. And actually, that could be an alternate title. Well, 2 alternate titles for this episode. What's my time worth? And 2, it works until it doesn't because that's how a lot of this stuff really truly is. Right?
Wes Bos
OG, open graph images. That's what I'm using is, because I need to sometimes just run it in the console or in an environment that doesn't have TypeScript for whatever reason.
Wes Bos
with All the hosting providers that I pay for and all the monthly costs, and they're starting to they're starting to get up there, you know? Like, you, whatever, for $5 a month, $10 a month, 25 a month, and there's 3 or 4 of them. And before you know it, you go, oh, man. Like, the serverless stuff is supposed to cost me pennies, isn't it?
Scott Tolinski
like Algolia,
Scott Tolinski
Yeah. It just again, the same thing repeated. It depends on what you need. Yeah. I I never I've never actually done, like, a full blown search.
Wes Bos
Waits for it to load, takes a screenshot of it, If you use Firebase, you go all in on Firebase. And,
Scott Tolinski
solutions out there, and I even saw people getting the open the, Vercel OG thing working With, like, here's a Svelte component, and it turns it into an image.
Wes Bos
the that's when the whole thing gets very messy. Yeah. So so tricky. And then also, like, something that is so mission critical to your business
Wes Bos
There was an issue vendor like Stripe, Most most services now have cron jobs where they call them scheduled functions.
Wes Bos
I don't know, a couple hours as long as it wants to and serves it up. And it's been working great until it didn't.
Financial burden of services
Scott Tolinski
to them, And I think there are some of these things that have bigger and smaller costs based on, which it's in every other service. Do you wanna know something funny that happened with me and our crown jobs? I I have a, like, a cron job that, We have a database and an API for ourselves,
Wes Bos
Like, anytime I talk about either a service or something I built, it's Credible how many people come out of the woodwork and say, why didn't you just use,
Scott Tolinski
And I it. I I looked at it and I said, they wanna take that kind of percentage? I'll just build it myself.
Scott Tolinski
Yeah. So do we wanna what do we wanna get into next, I think? Do we wanna talk about individual services, or do we want to talk about, CSD. Welcome to Syntex.
Wes Bos
So, like, like, I was, like, looking it up. Netlify, Vercel, the puppeteer just goes to that URL, base
Scott Tolinski
I don't know, a month, 2 months, 3 months, you know, GitHub plus 1 to that or
Scott Tolinski
4 developer salaries, 2 developer salaries, whatever, to build it
Scott Tolinski
like, what is the actual cost of building and maintaining the system
Scott Tolinski
what the things actually are.
Wes Bos
render,
Wes Bos
it's incredibly frustrating because sometimes building it yourself would take it forever, and it's not something you wanna maintain. And and on the flip side is, Issues in terms of features and filtering and whatnot. And then I also ran into issues with, other things like doing recurring payments. There was a whole startup called Recurly around that. I think Stripe now will do recurring payments, And that is a excellent solution if you wanna stream the video but Still, I have a little bit more control over that type of thing. No. I was gonna say if you really hate yourself, a whole bunch of the other ones out there. I was, like, looking up, like, what their, like, base cost is, and render, I think, was the last one. They're all, like, $25 I quickly ran up on a lot of I know that's what Wyze uses. I was, like, doing some dipping into the Wyze video streams to try to get it to play in the browser,
Scott Tolinski
Yeah.
Wes Bos
than it used to be, when I just used the DigitalOcean box for my type of thing. Can you pay your render.com bills? Can you hear Universal.com or like like a service provider that sits on top of Stripe, like lemon squeezy? Or do I write my own and have the ability to
Scott Tolinski
And, So, you know, we We don't wanna get existential here, but, you know,
Wes Bos
this is a lot more expensive,
Scott Tolinski
bills? Look. We have some in here like screenshots and open graph images.
Scott Tolinski
burdening yourself with. So I I think that is, like, kind it. Something that you always need to have in mind is, like, is this worth it to pay money to someone else to do something to make your life easier versus Is it worth it to spend, but it worked for us because it didn't need to be anything greater than that. It. It it really just depends on what your needs are. I remember a client of an agency of ours at one point had to buy a Google box, it. A literal a literal box. Oh, yeah. Server. Yeah.
Scott Tolinski
And at the time, you know, I could have used something like early or I think there was a few other ones that had good APIs for
Scott Tolinski
versus it. That monthly cost because building and maintaining systems also have bills. They also have big costs
Evaluate time to build vs use service
Wes Bos
I think of, like, old Navy. They must have AWS Lambda package, That's actually, I have for for my, like, course platform, like, the admin side, we have, we actually do have a search, which is you you just put something in.
Scott Tolinski
and just call it a day, which is what I ended up doing, But it was it was too much maintenance for me for 1 project when there's, like you know, just just for, I think, a limited benefit From there. And then I think you also have to talk about, man. So you sure used to be a lot easier in some ways, but, Also, I get to do a lot more. So Exactly.
Wes Bos
SCS to to send the actual emails, and it worked pretty good. But, And then you via query params, you pass in,
Wes Bos
Like, these email newsletter places, they they spend a lot a lot of time on, like, deliverability and and and checking things and clicks and all that type of stuff. And And now that I write
Scott Tolinski
What kind of company are you running? Are you running a a company that is a email service, or are you running a company that's Whatever your actual mission is. Right? Because you might end up be you might end up accidentally running an email delivery service by accident.
Wes Bos
20, 30, 40,000,000 people on their email list. Right? Like, I wonder if At that point, maybe they just go and and build it themselves,
Scott Tolinski
So good one for me like that was, GitLab. I used to host LevelUp on our own GitLab on my Yeah. DigitalOcean Box. And I was like,
Wes Bos
and have to maintain that type of thing and upgrade it and Create it and whatnot. And and most people are like, you know what? I don't have time for that. I'm just gonna pay the bill and slap it in my code base, and I'm up and running.
Scott Tolinski
but definitely was not for me. I think an interesting point there is, like,
Wes Bos
When that's on your own lap, it's certainly something you can do. And I know a lot of companies who have, Yeah.
Scott Tolinski
Are you spending all your time doing that work?
Scott Tolinski
I'm having to run updates on this thing. I'm having to pay for the DigitalOcean box. I'm having like, well, I'd probably be better off Just spending the $5 a month or whatever on the, like, introductory
Wes Bos
I don't know, like, some some of these companies have,
Cron jobs as a service
Scott Tolinski
goes, where set set their maximum amount of months to be 1 more Or one less than what they're currently subscribed to or what. There's no there's no cancel in the future method. I mean, they're so it's like you have to build in all of that logic. And then if you if you mention them, say, hey. You really not, you know, Stripe or these other systems have this this functionality. Their reply is, well, it. You can use one of those other systems then. It's like, okay. Well, I recently added
Scott Tolinski
To me, personally, I end up getting the same email 4 times, and I'm just like, okay. Great. Maybe I should fix this at some point.
Wes Bos
interesting thing to you. So low frequency use a GitHub work it slow because you can schedule cron jobs in a get a GitHub workflow, which is kinda interesting.
Scott Tolinski
an hour from now or whatever, and then it'll send that same email 4 times
Scott Tolinski
like, like, I'll say, hey. Send this email, hook to this on a service and not have to worry about it.
Scott Tolinski
this is like a a a current bug that I'm dealing with on the site. It it says once for each container that our API is running on. So if our API is in, like, 4 containers or whatever, the the the it sends 4 times. So this isn't like
Wes Bos
hosted service service that is similar, All these, like, turn turner arrays. You know, it's it's weird. It's a it's incredibly difficult, but it's a a whole world. Yeah. Save my bacon, and it made my code, I think, a lot type safer. So,
Overview of buy vs build services
Wes Bos
Like, it's funny because TypeScript is a Hosting.
Scott Tolinski
Yeah. Coming in hot. So okay. So in this episode, I think what we're going to do primarily is start talking about, And how easy ish it was to write my own authorization
Scott Tolinski
that that episode, I think, really helped me with some TypeScript stuff that I had never dove into. So thank you for that a little demo you gave me and, oh, that's awesome.
Scott Tolinski
and yeah. Yeah. Our own show coming in coming in handy. You. Coming in hot.
Wes Bos
programming language as well because you have things that do things, type of, key of infer,
Wes Bos
That's a whole is a whole different world when you get into using I don't know how many hundreds of emails or password resets. People bought courses, and they didn't have access to it.
Scott Tolinski
you know, just The general concept of working with services versus building something yourself, and then maybe go through some examples of, like, what is a service first, what is maybe pros and cons of some of them. But, you know, since this is a hasty treat, we're not gonna be spending a tremendous amount of time on everything.
Custom search vs dedicated service
Wes Bos
I guess for it's a dollar per 1,000 requests. So for every many, many years ago. It looks a little bit more which is basically
Wes Bos
c s, and that includes autocomplete.
Wes Bos
when I wrote that, it's it's just a big regex, And for high frequency, they are recommending using Up Dash, which is a,
Wes Bos
to do it. Like like, what What do we have? How much is a Golia right here? Do you know a Mongo has their own service too?
Wes Bos
and then you can turn them on and off based on what you want to search. And I really like that because I always hated, like, the PayPal search And have the added benefit of being flexible like Plus actual usage on top of that. And I was, like, looking at some of my bills, and I was like, wow. Like, many. I probably have seen like 10 of them. Cron job as a service,
Wes Bos
I what I used to do is used to be able to, like, embed
Scott Tolinski
Where if you're using a MongoDB and hosting it on Mongo, you get access to Atlas, which is full text search. But Or drop a review if you like this show.
Wes Bos
And I think I think the actual equivalent to Algolia is to use something like a last to search where, some of these paid services, like, it's And that always killed me because I was just like, Really? I need to pay $10 a month to run a CronJob a self hosted email newsletter solution, run pieces of content through their index All of these paid services are starting to, strategy Let's talk about strategy really quickly. I generally think, like, upfront, you need to evaluate,
Scott Tolinski
Dude, I still did that. Yeah. I I did that for my my personal blog that had, like, 4 posts on it. It's like, yeah, people are going to love to search on my blog.
Wes Bos
yeah. It's not that expensive. But I guess if you've got A 1000 people searching on your thing a day, that's $4 a day if if you think that it runs 4 times for that.
Wes Bos
But like also like there's like you think about like the WordPress search versus
Wes Bos
Google custom search into your site. And then I remember there's, like, some CSS hacks where you could, and then type a little bit more and then hit enter. That's is that 4 requests? the ability to mature at this point. So at at some point, I will revisit this year this this conversation, but
Wes Bos
Like, there's there's no comparing the 2. The Algolia search is so much better,
Wes Bos
the Algolia search.
Wes Bos
box and type something
Scott Tolinski
We also have things like auth. Right?
Scott Tolinski
where, like, the search bar would say, like, what are you inputting? A transaction ID? Yeah. An email address, a first name, a last like, who care? You tell me. Yeah. You should know. Yeah. That's how our that's how ours works too. I I just type in if I start typing SEO, it's it. It it's gonna find me based on my email, my ID,
Wes Bos
you continually it. Like an API, like Scott does, which is something like Mux.
Wes Bos
So that just cost me,
Cost of services vs cost of building
Scott Tolinski
So I I think the big point,
Scott Tolinski
And that is perfectly fine if it. You are aware of the financial burden in which you're, really forego a lot of services.
Scott Tolinski
and get it up and running faster, whether that is a straight up no code solutions or services that help you do many of these things that we'll be talking about.
Scott Tolinski
we've often talked on this show about death by a 1000 services or death by a 1000 subscriptions everything everything eventually will return to this earth, and, easy ish.
Scott Tolinski
buy your way through a project If you're out there using Mongo, there's something called Atlas search
Company's core business vs maintaing service
Wes Bos
Let's also talk about escapability.
Wes Bos
You need to think about if I do use this service and I decide I want to get out of it in the future.