I noticed that Cody has a more recent video titled 'Serverless might bankrupt you (and how to deploy to a vps)'.. what a difference 12 months makes, pretty funny. IMO VPS + Coolify is a pretty mad OP option right now. Coolify can 'one click' things like Nuxt3 and even a whole Supabase implementation, right on your vps, pretty cool.
Y'all need to keep in mind that I live in the US where I can easily spend $20 just by buying some milk and two boxes of cereal for my family, so when I say I'd rather use a third party service, these prices do not seem crazy. If you have a real product that makes money, you won't care if you are spending $100 a month on services because those are just operational costs you can write off as losses in taxes. A good engineer will always keep in mind migration paths for if a service becomes too expensive and will NOT allow their application to succumb to vendor lock in.
For real, some of us gung ho devs who seem think they're talented enough to build production software from the ground up using no dependencies believe that everything should be done in the good ol fashioned monolithic way, when that isn't practical unless we are talking about billion dollar companies that have an extremely experienced and talented group of senior engineers to provide some level of abstraction as the company's internal tooling over cloud, shifting from 3rd party services to 1st party ones. But other than that, these SaaS products are so good for getting a software hit the ground running with so less effort.
This. $20 is literally a McDonalds meal for two people these days. Very cheap relative to US pricing. US product = US pricing guys. Like cmon now this is NOT expensive in respect to us. If this is expensive in your country then that is a local economy problem and not the product pricing itself. Id rather pay $20 than $100+ that SAAS charged 5 years ago. I have several amazon servers and $20 is peanuts with a lot of room for optimization.
I think most of this opinion comes from the inexperience of using these services at scale. If you have an app where you're able to abuse the free tier, then you're not operating at scale.
@@TwoVera dude most of us are not in the US you do realize most software engineer are offshore right, we cant be paying that much money for services lol...
Hahah I do a very similar conversion, in my case I say: “alright this is two beers” and then I pay for the service (I live in Sweden where alcohol is heavily taxed)
do your countries not have existing SaaS products that do similar things to Vercel, AWS, etc? If y'all are concerned about price, use a service in your country that provides these features. Also, don't call us influencers. I don't care how you host your stuff, I'm just sharing how I host mine.
@@WebDevCody most cloud providers are american, there is no chance of me using a local service provider because 99% of the time, they suck and also, they can become potential competitors, then ruin your service and then come up with their own version, i don't think aws will come after my startup idea! so yeah!
It's actually hard to find some services outside of the USA. If app is making money that's not issue, but if just want to live test your app because you are junior like me so I want to test if it even works I simply don't have any options, I do have to spend money to simply test stuff and frankly speaking it's too much. It's suprisingly hard to find any host for like simple node app. I even had trouble to find local service to host simple static www and only one that works great requires to use outdated node, commonjs etc because they are stuck in 2010... obviously you show what you use so I'm completely fine but for us living outside of USA or just poor guys trying to build something it's problematic.
The decision is easy for me because I have no money, so I have to do everything myself. But I think a lot of the effort for backend stuff is way overstated, pretty simple to set up NGINX, fail2ban, postgres, and then run whatever server framework you want. Guess it depends on your foundation as a coder and what knowledge you have. I think a lot of the more modern devs, from JS/bootcamp path, with no low level foundation, probably lean more towards services.
Hi, I am like you developing without money. I am a former teacher of the Ukrainian language, so it's hard to learn all of this stuff to build out the project on VPS. I wonder what do you need fail2ban for?
lmao. YT recommended this to me prob bc of the irony of ur new videos 😂. Keep up the great work tho! 🔥 Resources u make are awesome for people actually in the weeds of it all
People need to keep learning how to manage and build things on their own no matter what. there will come a time when everyone will be required to do so. Everyone forgot how to grow their own food and complain that the cost of food is high and keep getting higher.
your point has enormous merit but two things you don't mention: 1) those are recurring expenses so multiply that monthly price by however many months your service will stay active - if service is successful, should not matter much and 2) many of the services are priced in a way that if your project takes off you will have to pay out of the nose or slowly move away
This is often a skill and time issue. If you or the business don't mind the time and you have the skills (which I belive isn't as scary as it made to be) then you can configure a VPS to host product-ready application. Modern alternative to Vercel and Netlify for VPS can help as well. Solutions like Coolify are open-source GUI administrative platforms/tools that allow you configure your server without having to do the nitty gritty bits.
Dude, there isn't a single fkin reason why you can't do it all on a VPS, but if I were to expect more than 2-3k users I'd actually get a VDS instead, and just pin docker instances to individual cores, the only bottleneck you may face is probably bandwidth.
I believe your argumentation is flawed because you set those things up once on a VPS and then basically never have to do it again and you pay a fixed price no matter how much usage you have.
That’s true, but you also have recurring tasks being done on that VPS. Security patches, maintenance, etc. I believe plain usage of vps does not worth it nowadays. Throw docker in there, deploy your stuff. Something gone wrong? New vps restore backup run docker. You get more users and want to scale? Move your containers if a bunch of nodes with k8s
@@artistry7919 If your company or service reaches a certain size you could go for more than just a vps. Basically any hosting provider out there offers a managed hosting service where they take care of all the maintenance of your machines. Hetzner for example even offers hardware replacements within minutes. So I wouldn't count that as a real strong argument for Vercel etc. but still a good point to keep in mind. And I won't deny that this kind of stuff is more time intensive to set up.
It's never once. Thing break, fail, stop working, needs to be updated, and so on. One might need to implement (breaking) changes or upgrades. It shouldn't be frequent if it's set up correctly, which is what you mean I assume, but never is a very long long time.
@@lunarcdr3083 That is a valid point. But I still believe that it is worth to go through some occasional breaking and tweaking stuff. It Gives you a much deeper understanding of what is actually going on under the hood and makes you aware of potential risks or flaws in your code. This of course isn't for everyone but especially for smaller projects I think this is a very good approach to take.
Building software is always subjective to the situation you are in. For example currently our company works for small budge clients that would really appreciate if the don't have to pay for everything authenticated user etc. Most of these things you uave to nail down only the first time for the next implementation you will not spent more than couple of yours to set up ( talking about general functionality, like emails, authenthication etc)
@@WebDevCody I work with charities and communties and non-profit organizations that would never have paying customers and their whole budget is allocated towards, design, development and managing of the whole project not only the web part. And If I tell them that for the 1000 users that we have they will have to pay 25$ per month for authenthication, 10$ for admin panel, and so on and so on for the rest of the project lifetime (the oldest project is 10yrs the only upgrades we do is with the core framework ruby on rails). I think it will really hurt their budget. Where on the other side rails provides me with all the tools to built my email system and pay almost nothing for sending, tools for managing images and user uploaded files, all kinds of tools for authenthication which require a little bit of work but then are free etc, etc. That is why I said that paying for tools and services is relative and subjective to the project and the resources of a company.
1:00 This salary is for US based devs, I live in Colombian and I make 30k per year, so those prices are insanily high for me, I'm better hosting my apps on a 200$/year VPS
So as a saas staring up, I could spend even a week setting up half this stuff in a VPS and then not have to touch it apart from a few updates every now and then, or I now need to generate, at minute 7 in the video, $60 a month for services + $56 dollars an hour to pay myself the engineer who I would be paying anyway. And yes I am capable of securely setting up the services discussed this far, if you had started off with Auth + payment then there would be an argument. How many dedicated users would you at this point need a month to just cover your services fees before you even begin making any money yourself? $100-$150 seems a decent bet to spin up one of your "save yourself an hour" stacks, per month. That's a fair amount of money every month when you are trying to build up a client base for a SaaS which may fail, I mean you could probably buy a fair amount of groceries every month for that amount
It’s worth mentioning that every service has a free tier which will let you operate with no costs until you get a decent amount of paying customers. So technically it’s $0 a month while also investing no time with a lot of various tooling you’ll need for your app.
@@WebDevCody I'm not against the services being offered. I was against the way it was argued... Also you have now been lured into their specific service, as much as people claim that switching providers, whether it be SaaS or cloud, the very fact that they all still offer a free tier means in reality it doesn't happen. May I ask, in your video you mentioned that the VPS could crash causing an outage if a malicious user keeps uploading a file repeatedly, what happens if instead that happens when I'm using S3? Instead of having to explain an outage to customers and implementing some needed logging and reporting, the company is bankrupt, all the customers now lost a provider and I learn I should have implemented needed logging and reporting.
Disregarding the voices of other ppl agreeing/disagreeing with you, I genuinely thank you for making these types of videos. Everything you say are things I wish I learned in school.
sure thing! I'm ok with people disagreeing with me. My needs and budgets for building, hosting, and maintaining software are probably just a lot different than their needs or budgets.
just auth0 itself to actually be useful you have to pay around of $35 per month, in north american countries Canada and Mexico, for a startup or solo owner that it is some money to be pay monthly if you are short of income.
As a Linux enthusiast and a production factory worker, I want to help solve our company's problems by complementing and slowly replacing their ERP software and to roll my own. I'd expect no more than 100 users. Most features of the ERP software are not even used and there are huge discrepancies in stock keeping, resulting in a cascade of problems. At the same time, there is a need to document packaging processes digitally, and to better track orders in different stages of production. I don't want my app to be SaaS, and I want it to work entirely offline.
There's already a local mail server, a database server, etc ... I would just configure ZFS storage, a GitLab instance for CI, integrate portable devices like barcode scanners and a mesh of sensors that use LoraWAN... "rotating" docker images could be built and tested by temporarily connecting to the internet.
I completely agree with you, the thing is that as a freelance developer here in Nigeria, those costs aren't a light burden. Factored in with penny pinching customers, i hardly see any other way
@@WebDevCody even though it costs pennies having to add on those 3rd party services then boosts the cost. Paying between $30-50 a month for vercel, database hosting, storage etc (pls note that Im not sure of the pricing of these services, might have to check and edit this) Vs paying $7.50 on average for a VPS makes more sense to the customer. So what am I to do? I just have to put everything on the VPS cause I'm not gonna post for it from my pocket
@@anointingogalabu-maxwell4288 In your case if you are running multiple applications and too much work load you might end up having multiple medium to large VPS's running which will be even costlier. In that case you might even try to go full on prem if cost saving is your only concern. And just get a lease line for network and use a home server rack.
Thank you for the video. I don't have much experience, but I think, that we may start with a VPS, and later, as the project develops, we gradually take infrastructure modules out to cloud solutions - for the sake of security and scaling.
Yes! I use caprover for some personal stuff and it works great, but it's pretty much maintained by one guy and not backed by and organziation so I wouldn't put any production workload on it. Have you had any experiences with Dokku and/or Tsuru and how was it?
@@julian_center Projects maintained by one guy are always a risk factor. I agree with you. Sadly, I have never used any of them before. For personal projects, I used Digital Ocean’s app platform, and at my day job, I use AWS (which is overkill for small projects). The Tsuru project is maintained by a big Brazilian company called Globo. It has a TV show (BBB) that always brings a monstrous amount of traffic to their systems. If I’m not wrong, Dokku is the biggest open source PaaS. That’s why I recommend it.
you just convinced me to stick with a VPS. Just too many services , too many things to hook your credit card into , and I just run a setup script or custom program to setup everything I need once off , that acts as all these tools that you plugin into . Your file storage scenario because it just like setting up a service , you just create a system that sets limits . Also the server crashing is bad connection and down time because you can isolate everything and have multiple VPS on same internal network in clusters for redundancy . There are solutions for all of this and the way we know is because the company you are paying have already implemented them and most of them have an opensource system to help you manage them . But I get it , any additional layor is hard when youve never delt with it but after 2 times and seeing how much control you have , you start to see its actually better .
Solopreneur: VPS Small team: Single VPS Medium team: AWS/GCloud Large team: AWS/GCloud Very large team: VPS Subsidiaries of large team: AWS/GCloud Banking/Finance/Fed: VPS
I kind of like this breakdown. I use AWS for everything at work, but I personally would use AWS (with serverless) for myself (solopreneur) over a VPS any day. But even for your Fed category, I work on a federal project (not the FED as in money FED) and we use AWS.gov, so I don't think that's accurate?
@@WebDevCody Good to know that. Do VISA, Amex, SWIFT payment system, NYSE use Cloud for their core service? I don’t know but I doubt they use commercial cloud. I know Telecoms don’t use commercial cloud for mobile networking.
@@pajeetsinghI'm not sure about those financial institutions, but I would bet money they are using some form of cloud providers for some features of their application. The core application might still be using mainframes, but I'm assuming some parts of their system are trying to shift to cloud.
He's actually valid. I enjoy devops and tinkering with servers alot, but if I had the budget, I will save my time with third party services. When you run a business, you'd understand the importance of saving time with good third party service.
Infrastructure/DevOps is hard, don't do it yourself. However, certain software features are fine to implement on your own. For example, there is nothing wrong with simple cookie authentication if that's all you need.
How do you see it? By diversifying you make yourself dependent on x other providers. What if the authentication service fails as an example. Do you think that you always be better off in such cases with diversification?
There is risk with trusting third party services. For example we’ve seen the entire internet stop working when aws s3 has issues, and there is nothing you can do when they happens other than wait. But let’s be honest building a system that never has down time is a hard problem to solve and often not worth the engineering unless you’re a bank or Amazon scale. There are SRE experts who spent a lot of time designing resilient systems, so doing it yourself isn’t s trivial task.
@@WebDevCody I agree, as an SRE for an banking application we have huge list of downstream services and many of them in turn run on multiple cloud infrastructures and other vendors. And our own application run on AWS and other multiple vendors and also some parts of the infra is still running on our on-prem data center. Achieving a near zero downtime over the last couple of years has been a roller coaster ride. But yes as of today we main rely on the reliability provided by AWS and Cloudfare for most of our core services to be up and running.
Your math is backwards 🤣 $60 a month and saving an hour of dev time pays for itself on the first 3? You are assuming the admins / devs working on those parts of the stack will need to more than an hour a month configuring / updating stuff, which i don't think is realistic at all. Provided things are architected correctly and it's built for scale, maybe 30 minutes total a month, and that's assuming automated cron jobs can't handle things for some reason. I agree the initial setup time for a roll-your-own solution for the first month, would be expensive, but here's the thing. Even if you blow out the initial setup time to 10 hours ($600), that's *still* going to end up being cheaper after 12 months then paying SaaS and PaaS providers. The correct answer is, neither approach is best. You do a hybrid of both. Figure out which parts of the app are most difficult to scale / will require automated horizontal scaling. Logging and database automatically fall into this category. But compute? That depends on what kinda thing you're running in prod as to whether you actually need to scale this aspect. CI/CD? Same thing, does this need to be horizontally abstracted to an API / auto scaled? Most of the time no.
How is my math off? If a dev gets paid $60 an hour, and three services charge around $20/month each, that’s one hour of dev work will pay for 3 of these services. But yes, if you know how to set these things up, like production ready logging and system monitoring, sure, do it yourself.
still not worth it. because if you go for these services, their convenience locks you into their ecosystem, and good luck escaping it once your app scales. Also, once things scale the 100$ easily becomes multiples of 1000$. You pay for horizontal scaling, with horizontally scaling pricing. Start small, deploy a vps with docker compose. if app scales, spin up a rke2/k3s cluster and put your containers there. it's not as hard as you may think. Also, a lot has been said about reliability and maintenance. In theory your service plan includes sla uptime and all that, but do they compensate you if they actually go down? if planetscale for example has a major outage, who's to blame? who's to blame if your third party paas decides to change the api for whatever reason and for the framework you're using they no longer provide support for it? In the end these services are just masking a relatively good for production deployment - that you don't need as much time to setup yourself as you may think
Spending time to learn about all those stuffs also works like an investment towards your career, so in the long term it's worthy to invest time and learn about it, but if you have a product which you just want to get to production then using services like vercel is fine. Imo, combination of both is the way to go, e.g use your vps for app and s3 for static contents.
This expanded my horizons, however, I feel like if we put the lifespan of a start-up from beginning to mature, at first, there is no justification your app will be successful and most apps fall in this category, then as you grow and generate money, then these services are worth it, and finally when you get too big you actually hire devs, you start moving services back home. But again, most startups fail, minority reach that sweet spot, and very few hit the jackpot. If anything I learned from this video is the importance of micro-services, to build in a way where you can switch at any point specific purposes like economically speaking, I'd probably containerize multiple micro-services into a single VPS, except perhaps for the database, and as the start-up grows, I'd switch to these other solutions.
Using tons of different services can be a headache . Change of conditions , forced updates. You name it. That being said vps can be fragile in some parts . But I would rather my server crash than facing insane serverless bills. Though good services let set you limits . Just gotta pick the right onces and you can find a good balance
I like learning to do it myself, then I can create services and features that are not available anywhere else. I'll have a better understanding overall about servers. Also a lot of devs need to learn about software security in general.
It's more of a time and effort issue. People are so quick to say "you can build this yourself". While this is true, if you're a team of one, you can potentially be spending hours on building and maintaining parts of your application that have nothing to do with core business logic.
@@Lexaire In fact, they can. There is a strange trend nowdays that everything should be hosted in the cloud, with horizontal scalling, microservices and etc. But in fact, just the "big ones" in the industry have that kind of necessity as a "must have" (just in case). Most of the systems acomodate very well in a VPS with basic PHP and a Angular front or similar. People are using a canons to kill cockroach.
I agree with most of your points. I think it makes sense to use these services in a production application but for a hobby app some of them really just aren't needed. I think that no production app should roll their own auth, there are so many ways to get it wrong it's not even funny. ~$100/month is really nothing for you if you have paying users. The only concern I see is vendor lock-in and then being at the mercy of their price increases. For example auth0 recently increased their prices by 300% - from $0.023/MAU to $0.07/MAU which is insane, especially considering the difficulty of switching auth providers.
I don't like being reliant on all these third party services. That is why I'm going the Laravel route, which has lots of great first party implementation ready to go. Seems like a great choice, instead of this web of services you have to implement.
Thank you for bringing this info and sharing your perspective, I don't have much experience with server side systems in production. I will be using a VPS to host some stuff to learning about the moving parts involved, but i will definitively be always considering using third party services, they had years to perfect their services for that specific niche, I won't have that time nor dedicated engineers
A lot of these are good points, but it's not like the only cost for these services is money. You also have to learn whatever interface the service gives you, like now I gotta learn the AWS CLI and figure out how to integrate it with all my stuff, that takes expensive developer hours too. Also not everyone is writing apps in javascript
This is basically only simple JS/PHP form based application kind of stuff IMO. To me using a VPS is mainly for compute intense workloads which honestly the cloud kind of sucks at. Think any SAAS that does image transformation, data transformation possibly crazy SQL setups (paying AWS for Aurora/RDBMS is more expensive). Even trying to use Lambda and ingress and egress of large amounts of data it just all cascades down hill making the cloud and generalized form applications the only kind that can use these services without a lot of overfitting.
I agree in some area, but globally I feel held hostage when I host critical things in a third company hand. I prefer resiliance over simplicity / rapidity. But I don't think we are in the same area of work so I should be biased.
I guess it depends on what services you are depending on and how well you structure the code to not have a don’t of vendor specific libraries sprinkled all in your code
Hey man thanks for these vedios, I am currently building my saas and Vercel is not the way to go because I am running a process which takes a lot of process in summary I have user uploaded CSV and I process it and put it into a PDF, so what you recommed? AWS lambda , I thought before this vedio DO will work but I guess it's not the ansewer.
What about a junior dev that wants to build a product while learning stuff about deployment and servers. Would you say that one has got to pick between learning and building (quick) ?
People forget that getting started with any SaaS service also takes some time integrating into your current systems. And on a 6 month scale, the SaaS is likely a lot cheaper, but basically any SaaS is more expensive than doing it yourself, if you assume you will still be using it 2 years from now.
that's very clever to use these things as it saves much time, i have used almost every service you have mentioned and can say that these are effiecent, i have aslo setup on the VPS and yeah it takes more efforts.
will vendor-lock be an issue in this case? one of the fear I have when using all these services is that they might be out of business and I would have to migrate everything into another service. Any thoughts?
Vendor lock in is always a concern, and one should think about migration strategies before blindly using everything from their service without properly wrapping their apis with proxy functions.
If vendor lock in is your concern you can use as much open source tools where ever possible and use terraform or ansible and write your IaC as vendor agnostic as possible. And try to reduce your vendor list down to as minimum as possible. But at the same time also think about how long do yo want your app/service to run? Is your business going to out sustain the vendor you are going to include? And what is the impact for each vendor you are using if they run out of business / change licenses?
Those services are great, until they aren't. Either a feature you need doesn't exist, the company you're using changes policies, or unexpected overages. Sure it doesn't happen all the time, but having all of that in-house on a VPS is a long term cost savings. I'd only go with those services if I needed to get up and running quickly. Then as I grew I would quickly start planning out my own system. Yes maintenance is a pain and the upfront cost of a VPS is a lot, but if planned out properly can be easily done. Plus any tools you develop yourself can be sold as a separate product to other people looking to do what you did.
Good advice, as someone who grew up in the wild west times of the internet running servers and services for others, the biggest thing you're doing is outsourcing the problem to someone else which is worth the cash where you can stump it up. I spent years doing things myself, got hacked, learned the hard way that an unpatched VPS is a liability and slowly but surely upped my skills. I'm not sure I could do that now, one zero day and your entire database will be in someones hands in minutes and as you said - it can land you in some serious legal trouble. For those saying they can't do it now, that is fine. You don't have too - just be aware that this is the direction you want to head in as you bootstrap and generate income. The jump from a single dev doing it all to running a business is insane and one of the first things I had to learn was that my time was far more precious than I realised. All in all good advice, just maybe not for the stage everyone commenting is at.
I will stick to my VPS approaches. But I completely agree with you on the database and file storage part. It is stressful to always think about those and implement defensive measures in your backend for them.
Serverless databases: check Serverless frontends/frontend-apis: check But: What would be a good way to implement a backend service, that constantly listens on a, lets say, mqtt connection for data and based on that parses it and saves it to some external database? Afaik there isn't a good solution for almost constantly running services (as most serverless applications a paid per second of invocation, and this can sum up rather quickly).
I've used inngest for serverless queues and background jobs. My use case was very simple and not much traffic so cant vouch too much for the product but it did the job for me
I appreciate your opinions on this. I think they are missing some critical analysis and you strawman-ed the VPS argument but there are some kernels of value in hear a lot of people can take away
I think this is very valid in a lot of business contexts, but misses two major areas. 1. Small and heavily regulated businesses. These two groups typically have more available time capital vs growth capital and are happy to roll their own for either. A. Security Compliance - everyone claims to be HIPAA and SOC2 and that's not really trusted or even verifiable most of the time, especially since most companies go "We're compliant because it's hosted on AWS" 2. Projects - a lot of us roll out our own topping on a vps for hosting projects and personal tooling because $20 a month times the 10-15 services it takes to get started is unreasonable for just wanting to build something simple or even just for fun. To be fair for the context of tech startups and large company development where time is money and development cost is paid by developers multiplied times hours this is super fair. It's just that a lot of situations don't look like that, and outside of the US that cost can be comparatively unreasonable.
It is going to take at least a decade for medium size companies and larger corporations to change the idea in their budgets that software is something with zero overhead and that you only need to make a one-off payment to the cheapest outsourced team to make it work. For them software is something that only needs to get cheaper as time goes, and why pay for something when you could make the reports in MS Excel also?
one more thing I forgot to mention, in serverless services you can't save data in memory for later use (because every time you run an app, it executes in a different node on the edge). your only option is to use some sort of external data storage, which is gonna be much slower compared to memory.
I had similar thoughts about this, especially taking security care of to-and-fro of requests between Frontend, Backend, and Databases, and all the services of the app MANUALLY. I also wanted to know one thing: When you are developing for a Client, do you host and test stuff on YOUR AWS/Vercel/etc account first, and then change the env or other variables, or is it another challenge to serve the credentials to the Business Client ?
Depends on the contract. On our team our client has their own prod aws account which they deploy all our code onto, and we have a separate aws account we use for our team to develop with. It’s probably best to keep your stuff separated and create IaC they can run to create your same environment
A not so secret secret about devops is that you can just copy paste from previous projects, 90% + of everything here is just going to be the same no matter what you are building. However it’s great advice to be realistic about what you’ve accumulated in your IaC toolbox vs the project’s ambitions, realistically it’s going to be an hybrid in the end.
I love your explanations, but for me for example my first client app has a tiny budget. I couldn’t afford for any of that unless I paid out of my own pocket. Which I can’t afford. But that’s the trade back that I have to work more hours myself. That’s the issue with one man jobs
every client has a "tiny" budget 🤣. I mean that makes sense. If the client has a small budget and can't afford paying monthly for a service, then I personally would charge them more up front if I'm the one needing to maintain the server for them.
@@WebDevCody yeah they paid me like 30 extra months upfront aswell as monthly. But I can’t afford anything on anything but the vps. My hours are voluntary in my eyes where as big companies dig out my bank
Living in Dominican Republic i can tell you that i much rather prefer than spend a whole day in a $10 vps that spend 100+ a month in services, because if i were to make one app, its ok to pay the 100+ but what if i want to make several apps and try a lot of things? it add up, to put you in perspective, i pay 300 a month for my apartment, and this is a good one hehe, so yeah, i rather do it my self
You are working for yourself though. If you start making $50+ an hour, business owners are not going to want you to be spending a whole day rolling your own VPS over paying for a service.
The negativity in these first few comments perplexes me. I think of literally every purchase I make in terms of how many hours of my life it costs me to purchase vs how many it’ll save me. I do these exact same comparisons all the time. And, more often than not, the answer is just to pay for it rather than do it myself.
I think people angry about this video are those who really enjoying trying to ssh into a machine and configure it, or those who can't afford to pay for real hosting or services. If you have a real product, $20 a month is a joke, especially in the united states. I can easily pay $20 in an trying to buy fast food for myself and my wife.
@@WebDevCody If your product actually costs you 20 bucks a month, you don't have clients lets be real. We had a big brain guy on our team that did the entire company structure on Vercel, our bills were close to $60 000 a month, we got together, sent him on his happy way to hack stuff and re wrote the whole thing in GO, hosted on Azure, couple of load balancers, few vms to replicate our bill is $2000 before the first round of optimizations, we will most likely bring it down even more, saved enough money to get a new guy on staff. In the long run, when you have clients and want to expand those costs add up, you can't simply tell people it's fine because it makes money, it's a business at the end of the day, i am not building a charity to feed Vercel employees.
what if some of these services goes down, your app goes down. And like argument for infinitely scaling storage, for real? Do you have infinite money to pay for storage spamming?
3 месяца назад
what ever works for anybody is good, however i must say that hosting a production app it's more easy then what people think on a vps, also host your own database is more easy than what it sounds, i really don't understand when become the norm that for everything you need to pay for a service, also dev needs to understand that unless you are a devops, or do fullstack, your job is not to know how or where to host or deploy your website, or your web app, thats the job of someone else, and if is your own app, i think it woul give you lot of benefist to know how to host on a vps, how to do deployment, and no need to pay for any extra service, also self host is more easy than what the industry wants you to belive
The irony, but I still agree with a lot of your points like hosting the database on the same VPS that your app, I saw it a lot of times but always feels wrong.
Jeff Bezos, the founder of Amazon, is credited with introducing the concept of “Undifferentiated Heavy Lifting” in a 2006 keynote speech at MIT. He discussed the challenging and often unseen tasks associated with managing a digital platform, which online business owners must confront.
Another great video, I've love to see a more in depth video on how you made your logo start up video you did recently. As a developer trying to understand cloud hosting, it'd be nice to see what you do yourself to further learn the processes architecture wise. For example how did you keep costs so low? I think you mostly use a serverless approach? Would love a video breaking this down.
Interesting take, thanks for laying out your thoughts. However it doesn't fit well for the stack and design choices we've built our API with and the long running tasks each request triggers (typically a lot of dicomweb i/o and then transcoding, sometimes gigabytes per request. Medical imaging can be large when uncompressed) There is almost no UI (apart from static docs) because our api is consumed only by developers and their 3rd party systems, and splitting all the components out into like independent services on serverless infra just doesn't make sense when the components are so tightly coupled. Would love to hear your thoughts on this approach Cody if you read this
Your domain is out of what I have had experience with. I'd still find a way to use K8S or a managed docker container runner to run your application over renting a VPS or VM and setting up all the required dependencies on the machine manually (or via puppet, ansible, or chef). I just think there is a lot of overhead associated with managing, monitoring, and maintaining virtual machines that just isn't worth the operational cost savings that is hidden by developer hours. I'd honestly see if serverless could handle the processing because the max memory of a lambda is 10gb, and if you do the processing using streams, it might be possible.
The entire logic of this video is based on the presumption that price is the only thing you are optimizing for. VPS are reasonably priced and give your product a chance of pivoting to another hoster if prices change. Service dependance can kill a business on the spot with a single pricing change
about your last reason (the app exits on unexpected errors), not every language are single threaded with shitty error handling like javascript. in most modern language you can properly manage errors without disturbing other users, unless you do something resource heavy (which is not the case for serverless services, because of limited resources) that crush the entire system, you won't have any problem.
A great Example to not listen everyone on internet.
100%
this video is like WTF?
I noticed that Cody has a more recent video titled 'Serverless might bankrupt you (and how to deploy to a vps)'.. what a difference 12 months makes, pretty funny. IMO VPS + Coolify is a pretty mad OP option right now. Coolify can 'one click' things like Nuxt3 and even a whole Supabase implementation, right on your vps, pretty cool.
Great advice for people with wads of money
literalyyyy my thought currently hahahaahha
came to see the comments and am happy this is the first comment i see xD
So true! I stopped at 2:12; it's total BS. The argument are totaly out of this world
Y'all need to keep in mind that I live in the US where I can easily spend $20 just by buying some milk and two boxes of cereal for my family, so when I say I'd rather use a third party service, these prices do not seem crazy. If you have a real product that makes money, you won't care if you are spending $100 a month on services because those are just operational costs you can write off as losses in taxes. A good engineer will always keep in mind migration paths for if a service becomes too expensive and will NOT allow their application to succumb to vendor lock in.
For real, some of us gung ho devs who seem think they're talented enough to build production software from the ground up using no dependencies believe that everything should be done in the good ol fashioned monolithic way, when that isn't practical unless we are talking about billion dollar companies that have an extremely experienced and talented group of senior engineers to provide some level of abstraction as the company's internal tooling over cloud, shifting from 3rd party services to 1st party ones. But other than that, these SaaS products are so good for getting a software hit the ground running with so less effort.
This. $20 is literally a McDonalds meal for two people these days. Very cheap relative to US pricing. US product = US pricing guys. Like cmon now this is NOT expensive in respect to us. If this is expensive in your country then that is a local economy problem and not the product pricing itself. Id rather pay $20 than $100+ that SAAS charged 5 years ago.
I have several amazon servers and $20 is peanuts with a lot of room for optimization.
I think most of this opinion comes from the inexperience of using these services at scale. If you have an app where you're able to abuse the free tier, then you're not operating at scale.
@@TwoVera dude most of us are not in the US you do realize most software engineer are offshore right, we cant be paying that much money for services lol...
Hahah I do a very similar conversion, in my case I say: “alright this is two beers” and then I pay for the service (I live in Sweden where alcohol is heavily taxed)
If you don't live in US then suddenly those prices are a serious cost
That's what the RUclips influencers don't seem to understand
do your countries not have existing SaaS products that do similar things to Vercel, AWS, etc? If y'all are concerned about price, use a service in your country that provides these features. Also, don't call us influencers. I don't care how you host your stuff, I'm just sharing how I host mine.
@@WebDevCody most cloud providers are american, there is no chance of me using a local service provider because 99% of the time, they suck and also, they can become potential competitors, then ruin your service and then come up with their own version, i don't think aws will come after my startup idea! so yeah!
It's actually hard to find some services outside of the USA. If app is making money that's not issue, but if just want to live test your app because you are junior like me so I want to test if it even works I simply don't have any options, I do have to spend money to simply test stuff and frankly speaking it's too much. It's suprisingly hard to find any host for like simple node app. I even had trouble to find local service to host simple static www and only one that works great requires to use outdated node, commonjs etc because they are stuck in 2010... obviously you show what you use so I'm completely fine but for us living outside of USA or just poor guys trying to build something it's problematic.
@@wykydytronthat makes sense, thanks for sharing your perspective. I wish y'all had more options than depending on US products.
The decision is easy for me because I have no money, so I have to do everything myself. But I think a lot of the effort for backend stuff is way overstated, pretty simple to set up NGINX, fail2ban, postgres, and then run whatever server framework you want. Guess it depends on your foundation as a coder and what knowledge you have. I think a lot of the more modern devs, from JS/bootcamp path, with no low level foundation, probably lean more towards services.
Yeah it's easy to setup a web solution on a vps in one hour. If you code halfway decent a 3€ vps will support like 100 concurrent requests
@@NubeBuster yeah, oracle cloud free vps is pretty powerful, 4 virtual cores and 24gb ram, more than enough for any small app (99%)
Yeah fully agree
Hi, I am like you developing without money. I am a former teacher of the Ukrainian language, so it's hard to learn all of this stuff to build out the project on VPS. I wonder what do you need fail2ban for?
@@maksymdudyk1718 fail2ban is for security, it watches log files for suspicious behaviour, like brute force attempts to log into SSH, and bans the IPs
lmao. YT recommended this to me prob bc of the irony of ur new videos 😂. Keep up the great work tho! 🔥 Resources u make are awesome for people actually in the weeds of it all
hahaha same... aged well 😅
lol, same, I laughed so hard, I was like: wait a minute, didn't he just....🤣🤣🤣, well, we live and we learn 😄
People need to keep learning how to manage and build things on their own no matter what. there will come a time when everyone will be required to do so.
Everyone forgot how to grow their own food and complain that the cost of food is high and keep getting higher.
I think having a good migration path is the key. You start with these services, and have a strategy to migrate in case it becomes too expensive.
your point has enormous merit but two things you don't mention: 1) those are recurring expenses so multiply that monthly price by however many months your service will stay active - if service is successful, should not matter much and 2) many of the services are priced in a way that if your project takes off you will have to pay out of the nose or slowly move away
This is often a skill and time issue. If you or the business don't mind the time and you have the skills (which I belive isn't as scary as it made to be) then you can configure a VPS to host product-ready application. Modern alternative to Vercel and Netlify for VPS can help as well. Solutions like Coolify are open-source GUI administrative platforms/tools that allow you configure your server without having to do the nitty gritty bits.
Dude, there isn't a single fkin reason why you can't do it all on a VPS, but if I were to expect more than 2-3k users I'd actually get a VDS instead, and just pin docker instances to individual cores, the only bottleneck you may face is probably bandwidth.
I believe your argumentation is flawed because you set those things up once on a VPS and then basically never have to do it again and you pay a fixed price no matter how much usage you have.
That’s true, but you also have recurring tasks being done on that VPS. Security patches, maintenance, etc.
I believe plain usage of vps does not worth it nowadays.
Throw docker in there, deploy your stuff. Something gone wrong? New vps restore backup run docker.
You get more users and want to scale? Move your containers if a bunch of nodes with k8s
Maintainance is a thing, and the bigger your company/service is, the pricier maintenance gets
@@artistry7919 If your company or service reaches a certain size you could go for more than just a vps. Basically any hosting provider out there offers a managed hosting service where they take care of all the maintenance of your machines. Hetzner for example even offers hardware replacements within minutes. So I wouldn't count that as a real strong argument for Vercel etc. but still a good point to keep in mind. And I won't deny that this kind of stuff is more time intensive to set up.
It's never once. Thing break, fail, stop working, needs to be updated, and so on. One might need to implement (breaking) changes or upgrades. It shouldn't be frequent if it's set up correctly, which is what you mean I assume, but never is a very long long time.
@@lunarcdr3083 That is a valid point. But I still believe that it is worth to go through some occasional breaking and tweaking stuff. It Gives you a much deeper understanding of what is actually going on under the hood and makes you aware of potential risks or flaws in your code. This of course isn't for everyone but especially for smaller projects I think this is a very good approach to take.
Building software is always subjective to the situation you are in. For example currently our company works for small budge clients that would really appreciate if the don't have to pay for everything authenticated user etc. Most of these things you uave to nail down only the first time for the next implementation you will not spent more than couple of yours to set up ( talking about general functionality, like emails, authenthication etc)
Agreed, if your client can't pay $20 a month, then use django and host on a VPS, but I don't work with clients that don't have money.
@@WebDevCody I work with charities and communties and non-profit organizations that would never have paying customers and their whole budget is allocated towards, design, development and managing of the whole project not only the web part. And If I tell them that for the 1000 users that we have they will have to pay 25$ per month for authenthication, 10$ for admin panel, and so on and so on for the rest of the project lifetime (the oldest project is 10yrs the only upgrades we do is with the core framework ruby on rails). I think it will really hurt their budget.
Where on the other side rails provides me with all the tools to built my email system and pay almost nothing for sending, tools for managing images and user uploaded files, all kinds of tools for authenthication which require a little bit of work but then are free etc, etc. That is why I said that paying for tools and services is relative and subjective to the project and the resources of a company.
1:00 This salary is for US based devs, I live in Colombian and I make 30k per year, so those prices are insanily high for me, I'm better hosting my apps on a 200$/year VPS
So as a saas staring up, I could spend even a week setting up half this stuff in a VPS and then not have to touch it apart from a few updates every now and then, or I now need to generate, at minute 7 in the video, $60 a month for services + $56 dollars an hour to pay myself the engineer who I would be paying anyway.
And yes I am capable of securely setting up the services discussed this far, if you had started off with Auth + payment then there would be an argument.
How many dedicated users would you at this point need a month to just cover your services fees before you even begin making any money yourself?
$100-$150 seems a decent bet to spin up one of your "save yourself an hour" stacks, per month. That's a fair amount of money every month when you are trying to build up a client base for a SaaS which may fail, I mean you could probably buy a fair amount of groceries every month for that amount
It’s worth mentioning that every service has a free tier which will let you operate with no costs until you get a decent amount of paying customers. So technically it’s $0 a month while also investing no time with a lot of various tooling you’ll need for your app.
@@WebDevCody I'm not against the services being offered. I was against the way it was argued... Also you have now been lured into their specific service, as much as people claim that switching providers, whether it be SaaS or cloud, the very fact that they all still offer a free tier means in reality it doesn't happen.
May I ask, in your video you mentioned that the VPS could crash causing an outage if a malicious user keeps uploading a file repeatedly, what happens if instead that happens when I'm using S3?
Instead of having to explain an outage to customers and implementing some needed logging and reporting, the company is bankrupt, all the customers now lost a provider and I learn I should have implemented needed logging and reporting.
Disregarding the voices of other ppl agreeing/disagreeing with you, I genuinely thank you for making these types of videos. Everything you say are things I wish I learned in school.
sure thing! I'm ok with people disagreeing with me. My needs and budgets for building, hosting, and maintaining software are probably just a lot different than their needs or budgets.
Where do you host the db, the s3 bucket, logs. All of a sudden you're paying at least $100-$150 / month + usage + overhead
Exactly.. it adds up very quickly, especially for managed db's.. they are super expensive.
Vendor lock-in too.
just auth0 itself to actually be useful you have to pay around of $35 per month, in north american countries Canada and Mexico, for a startup or solo owner that it is some money to be pay monthly if you are short of income.
this video aged well
Top Video on my feed haha, the YT algorithm is taking the piss
As a Linux enthusiast and a production factory worker, I want to help solve our company's problems by complementing and slowly replacing their ERP software and to roll my own. I'd expect no more than 100 users. Most features of the ERP software are not even used and there are huge discrepancies in stock keeping, resulting in a cascade of problems. At the same time, there is a need to document packaging processes digitally, and to better track orders in different stages of production. I don't want my app to be SaaS, and I want it to work entirely offline.
There's already a local mail server, a database server, etc ... I would just configure ZFS storage, a GitLab instance for CI, integrate portable devices like barcode scanners and a mesh of sensors that use LoraWAN... "rotating" docker images could be built and tested by temporarily connecting to the internet.
This video is sponsored by Serverless
I completely agree with you, the thing is that as a freelance developer here in Nigeria, those costs aren't a light burden. Factored in with penny pinching customers, i hardly see any other way
What about using aws with serverless? It costs pennies
@@WebDevCody even though it costs pennies having to add on those 3rd party services then boosts the cost. Paying between $30-50 a month for vercel, database hosting, storage etc (pls note that Im not sure of the pricing of these services, might have to check and edit this) Vs paying $7.50 on average for a VPS makes more sense to the customer. So what am I to do?
I just have to put everything on the VPS cause I'm not gonna post for it from my pocket
@@anointingogalabu-maxwell4288 yeah I mean in that case you do what you have to do. A vps is probably your cheapest option.
@@anointingogalabu-maxwell4288 In your case if you are running multiple applications and too much work load you might end up having multiple medium to large VPS's running which will be even costlier. In that case you might even try to go full on prem if cost saving is your only concern. And just get a lease line for network and use a home server rack.
Thank you for the video. I don't have much experience, but I think, that we may start with a VPS, and later, as the project develops, we gradually take infrastructure modules out to cloud solutions - for the sake of security and scaling.
You can use something like Dokku or Tsuru to abstract a lot of things that you’d have to manage by yourself using a VPS.
Yes! I use caprover for some personal stuff and it works great, but it's pretty much maintained by one guy and not backed by and organziation so I wouldn't put any production workload on it. Have you had any experiences with Dokku and/or Tsuru and how was it?
@@julian_center Projects maintained by one guy are always a risk factor. I agree with you.
Sadly, I have never used any of them before. For personal projects, I used Digital Ocean’s app platform, and at my day job, I use AWS (which is overkill for small projects).
The Tsuru project is maintained by a big Brazilian company called Globo. It has a TV show (BBB) that always brings a monstrous amount of traffic to their systems.
If I’m not wrong, Dokku is the biggest open source PaaS. That’s why I recommend it.
you just convinced me to stick with a VPS. Just too many services , too many things to hook your credit card into , and I just run a setup script or custom program to setup everything I need once off , that acts as all these tools that you plugin into . Your file storage scenario because it just like setting up a service , you just create a system that sets limits . Also the server crashing is bad connection and down time because you can isolate everything and have multiple VPS on same internal network in clusters for redundancy . There are solutions for all of this and the way we know is because the company you are paying have already implemented them and most of them have an opensource system to help you manage them . But I get it , any additional layor is hard when youve never delt with it but after 2 times and seeing how much control you have , you start to see its actually better .
Running production system on a 10 dollar a month linode since 2017
Not much issues so far
Solopreneur: VPS
Small team: Single VPS
Medium team: AWS/GCloud
Large team: AWS/GCloud
Very large team: VPS
Subsidiaries of large team: AWS/GCloud
Banking/Finance/Fed: VPS
I kind of like this breakdown. I use AWS for everything at work, but I personally would use AWS (with serverless) for myself (solopreneur) over a VPS any day. But even for your Fed category, I work on a federal project (not the FED as in money FED) and we use AWS.gov, so I don't think that's accurate?
@@WebDevCody Good to know that.
Do VISA, Amex, SWIFT payment system, NYSE use Cloud for their core service? I don’t know but I doubt they use commercial cloud. I know Telecoms don’t use commercial cloud for mobile networking.
@@pajeetsinghI'm not sure about those financial institutions, but I would bet money they are using some form of cloud providers for some features of their application. The core application might still be using mainframes, but I'm assuming some parts of their system are trying to shift to cloud.
You just wrote down The Bell Curve meme for us.
He's actually valid. I enjoy devops and tinkering with servers alot, but if I had the budget, I will save my time with third party services.
When you run a business, you'd understand the importance of saving time with good third party service.
Infrastructure/DevOps is hard, don't do it yourself. However, certain software features are fine to implement on your own. For example, there is nothing wrong with simple cookie authentication if that's all you need.
For sure
I agree that Infrastructure/DevOps is hard, but if you learn them, you are a free man :)
Brother, maybe you need to try out... _containers_
What service would you recommend to host a nodejs server?
+1, trying to follow the advice from Cody's beginning of 2023 vid to stick to lower level ops when learning!
Railway works pretty well for a node server. I’d personally use an aws lambda express wrapper and host it via lambda and api gateway
@@WebDevCody You may have touched on this elsewhere, but do you have a take on middy vs express?
How do you see it? By diversifying you make yourself dependent on x other providers. What if the authentication service fails as an example. Do you think that you always be better off in such cases with diversification?
There is risk with trusting third party services. For example we’ve seen the entire internet stop working when aws s3 has issues, and there is nothing you can do when they happens other than wait. But let’s be honest building a system that never has down time is a hard problem to solve and often not worth the engineering unless you’re a bank or Amazon scale. There are SRE experts who spent a lot of time designing resilient systems, so doing it yourself isn’t s trivial task.
@@WebDevCody I agree, as an SRE for an banking application we have huge list of downstream services and many of them in turn run on multiple cloud infrastructures and other vendors. And our own application run on AWS and other multiple vendors and also some parts of the infra is still running on our on-prem data center. Achieving a near zero downtime over the last couple of years has been a roller coaster ride. But yes as of today we main rely on the reliability provided by AWS and Cloudfare for most of our core services to be up and running.
Your math is backwards 🤣 $60 a month and saving an hour of dev time pays for itself on the first 3?
You are assuming the admins / devs working on those parts of the stack will need to more than an hour a month configuring / updating stuff, which i don't think is realistic at all. Provided things are architected correctly and it's built for scale, maybe 30 minutes total a month, and that's assuming automated cron jobs can't handle things for some reason.
I agree the initial setup time for a roll-your-own solution for the first month, would be expensive, but here's the thing. Even if you blow out the initial setup time to 10 hours ($600), that's *still* going to end up being cheaper after 12 months then paying SaaS and PaaS providers.
The correct answer is, neither approach is best. You do a hybrid of both.
Figure out which parts of the app are most difficult to scale / will require automated horizontal scaling. Logging and database automatically fall into this category. But compute? That depends on what kinda thing you're running in prod as to whether you actually need to scale this aspect. CI/CD? Same thing, does this need to be horizontally abstracted to an API / auto scaled? Most of the time no.
How is my math off? If a dev gets paid $60 an hour, and three services charge around $20/month each, that’s one hour of dev work will pay for 3 of these services.
But yes, if you know how to set these things up, like production ready logging and system monitoring, sure, do it yourself.
still not worth it. because if you go for these services, their convenience locks you into their ecosystem, and good luck escaping it once your app scales. Also, once things scale the 100$ easily becomes multiples of 1000$. You pay for horizontal scaling, with horizontally scaling pricing.
Start small, deploy a vps with docker compose. if app scales, spin up a rke2/k3s cluster and put your containers there. it's not as hard as you may think.
Also, a lot has been said about reliability and maintenance. In theory your service plan includes sla uptime and all that, but do they compensate you if they actually go down? if planetscale for example has a major outage, who's to blame? who's to blame if your third party paas decides to change the api for whatever reason and for the framework you're using they no longer provide support for it?
In the end these services are just masking a relatively good for production deployment - that you don't need as much time to setup yourself as you may think
Spending time to learn about all those stuffs also works like an investment towards your career, so in the long term it's worthy to invest time and learn about it, but if you have a product which you just want to get to production then using services like vercel is fine. Imo, combination of both is the way to go, e.g use your vps for app and s3 for static contents.
I love the guys on youtube like you, who just drop constant knowledge for us, instead of videos where half of it is a promo for their course, etc 😀😀😀
quick question, are all these setups required for each update?
This expanded my horizons, however, I feel like if we put the lifespan of a start-up from beginning to mature, at first, there is no justification your app will be successful and most apps fall in this category, then as you grow and generate money, then these services are worth it, and finally when you get too big you actually hire devs, you start moving services back home. But again, most startups fail, minority reach that sweet spot, and very few hit the jackpot.
If anything I learned from this video is the importance of micro-services, to build in a way where you can switch at any point specific purposes like economically speaking, I'd probably containerize multiple micro-services into a single VPS, except perhaps for the database, and as the start-up grows, I'd switch to these other solutions.
Using tons of different services can be a headache . Change of conditions , forced updates. You name it. That being said vps can be fragile in some parts . But I would rather my server crash than facing insane serverless bills. Though good services let set you limits . Just gotta pick the right onces and you can find a good balance
I like learning to do it myself, then I can create services and features that are not available anywhere else. I'll have a better understanding overall about servers. Also a lot of devs need to learn about software security in general.
I really like the way you explain. So simple and concise.
do you have any videos for logging, please make a video about using different approaches to implement logging
I don't think so, but I may be able to make one about ELK stack since we use that at work.
ok thank you@@WebDevCody
This entire video is a skill issue lol
fr though, i mean imagine paying for an external logging service 💀
NGL I'm pretty tired of seeing this comment
@@austincodes I don't even know how you opened your computer without an assistant 💀
It's more of a time and effort issue. People are so quick to say "you can build this yourself". While this is true, if you're a team of one, you can potentially be spending hours on building and maintaining parts of your application that have nothing to do with core business logic.
Exactly @@malcolmn.5222
VPS solve 90% of the problems, in real world most of the time you will work in projects that will be used in a limited scope with limited user base.
What real world is this you live in because actual companies can't just host their infra on a shared 512 MB VPS.
@@Lexaire In fact, they can. There is a strange trend nowdays that everything should be hosted in the cloud, with horizontal scalling, microservices and etc. But in fact, just the "big ones" in the industry have that kind of necessity as a "must have" (just in case).
Most of the systems acomodate very well in a VPS with basic PHP and a Angular front or similar.
People are using a canons to kill cockroach.
This video aged like fine milk :D
Yeah - you live and learn.
I agree with most of your points. I think it makes sense to use these services in a production application but for a hobby app some of them really just aren't needed. I think that no production app should roll their own auth, there are so many ways to get it wrong it's not even funny. ~$100/month is really nothing for you if you have paying users.
The only concern I see is vendor lock-in and then being at the mercy of their price increases. For example auth0 recently increased their prices by 300% - from $0.023/MAU to $0.07/MAU which is insane, especially considering the difficulty of switching auth providers.
I don't like being reliant on all these third party services. That is why I'm going the Laravel route, which has lots of great first party implementation ready to go. Seems like a great choice, instead of this web of services you have to implement.
Thank you for bringing this info and sharing your perspective, I don't have much experience with server side systems in production. I will be using a VPS to host some stuff to learning about the moving parts involved, but i will definitively be always considering using third party services, they had years to perfect their services for that specific niche, I won't have that time nor dedicated engineers
what about coolify, does that change anything?
What about dokploy or coolify? Basically drop in replacements for vercel/netlify?
both work well imo
This aged well
😂
A lot of these are good points, but it's not like the only cost for these services is money. You also have to learn whatever interface the service gives you, like now I gotta learn the AWS CLI and figure out how to integrate it with all my stuff, that takes expensive developer hours too. Also not everyone is writing apps in javascript
This is basically only simple JS/PHP form based application kind of stuff IMO. To me using a VPS is mainly for compute intense workloads which honestly the cloud kind of sucks at. Think any SAAS that does image transformation, data transformation possibly crazy SQL setups (paying AWS for Aurora/RDBMS is more expensive). Even trying to use Lambda and ingress and egress of large amounts of data it just all cascades down hill making the cloud and generalized form applications the only kind that can use these services without a lot of overfitting.
I agree in some area, but globally I feel held hostage when I host critical things in a third company hand. I prefer resiliance over simplicity / rapidity. But I don't think we are in the same area of work so I should be biased.
I guess it depends on what services you are depending on and how well you structure the code to not have a don’t of vendor specific libraries sprinkled all in your code
Hey man thanks for these vedios, I am currently building my saas and Vercel is not the way to go because I am running a process which takes a lot of process in summary I have user uploaded CSV and I process it and put it into a PDF, so what you recommed? AWS lambda , I thought before this vedio DO will work but I guess it's not the ansewer.
What about a junior dev that wants to build a product while learning stuff about deployment and servers. Would you say that one has got to pick between learning and building (quick) ?
Of course it’s fine to learn, i spent a lot of time playing around with ssh into a virtual machine to do stuff
People forget that getting started with any SaaS service also takes some time integrating into your current systems.
And on a 6 month scale, the SaaS is likely a lot cheaper, but basically any SaaS is more expensive than doing it yourself, if you assume you will still be using it 2 years from now.
that's very clever to use these things as it saves much time, i have used almost every service you have mentioned and can say that these are effiecent, i have aslo setup on the VPS and yeah it takes more efforts.
What are your thoughts on using Coolify on a VPS?
These new videos are awesome. Can you do a video discussing the use of different databases with different hosting options?
Amazing video. One of the best development channels out there!
will vendor-lock be an issue in this case? one of the fear I have when using all these services is that they might be out of business and I would have to migrate everything into another service. Any thoughts?
Vendor lock in is always a concern, and one should think about migration strategies before blindly using everything from their service without properly wrapping their apis with proxy functions.
If vendor lock in is your concern you can use as much open source tools where ever possible and use terraform or ansible and write your IaC as vendor agnostic as possible. And try to reduce your vendor list down to as minimum as possible. But at the same time also think about how long do yo want your app/service to run? Is your business going to out sustain the vendor you are going to include? And what is the impact for each vendor you are using if they run out of business / change licenses?
what happens to your cloud bill when a user keeps uploading in an infinite loop?
YoI’m go brankrupt
Thanks for sharing Diagram in the description 😊
Those services are great, until they aren't. Either a feature you need doesn't exist, the company you're using changes policies, or unexpected overages. Sure it doesn't happen all the time, but having all of that in-house on a VPS is a long term cost savings. I'd only go with those services if I needed to get up and running quickly. Then as I grew I would quickly start planning out my own system. Yes maintenance is a pain and the upfront cost of a VPS is a lot, but if planned out properly can be easily done. Plus any tools you develop yourself can be sold as a separate product to other people looking to do what you did.
Good advice, as someone who grew up in the wild west times of the internet running servers and services for others, the biggest thing you're doing is outsourcing the problem to someone else which is worth the cash where you can stump it up.
I spent years doing things myself, got hacked, learned the hard way that an unpatched VPS is a liability and slowly but surely upped my skills. I'm not sure I could do that now, one zero day and your entire database will be in someones hands in minutes and as you said - it can land you in some serious legal trouble.
For those saying they can't do it now, that is fine. You don't have too - just be aware that this is the direction you want to head in as you bootstrap and generate income. The jump from a single dev doing it all to running a business is insane and one of the first things I had to learn was that my time was far more precious than I realised.
All in all good advice, just maybe not for the stage everyone commenting is at.
Thank you sir, excellent points you're making here.
This was a very useful overview
thats really a great subject thanks man
Sorry Cody, I watch this video and then I see some other new videos and I'm confused. Do you use a VPS or not?
I use both, but for simple side projects or personal projects, vps.
I will stick to my VPS approaches. But I completely agree with you on the database and file storage part. It is stressful to always think about those and implement defensive measures in your backend for them.
Pocketbase? Wound you host it on a Digital Ocean Droplet and host Sveltekit on Vercel?
if they have a docker image I could run, I'd just run that in a managed container host service.
Interesting point about security, but as others say it's much cheaper with a VPS as a non-US resident.
What production applications have you built? Have you founded a company?
I've work a couple of production applications during my career of full time development. I have my own LLC for my side projects.
Where can i find the graph used in the video?
There's no link for that in the description :")
Serverless databases: check
Serverless frontends/frontend-apis: check
But: What would be a good way to implement a backend service, that constantly listens on a, lets say, mqtt connection for data and based on that parses it and saves it to some external database? Afaik there isn't a good solution for almost constantly running services (as most serverless applications a paid per second of invocation, and this can sum up rather quickly).
heroku
There is, it's railway.
I'm sure AWS has a managed solution for that need
I've used inngest for serverless queues and background jobs. My use case was very simple and not much traffic so cant vouch too much for the product but it did the job for me
Just started working on my SaaS (in the dev phase) and this is a lot of information tbh
I appreciate your opinions on this. I think they are missing some critical analysis and you strawman-ed the VPS argument but there are some kernels of value in hear a lot of people can take away
I think this is very valid in a lot of business contexts, but misses two major areas.
1. Small and heavily regulated businesses. These two groups typically have more available time capital vs growth capital and are happy to roll their own for either. A. Security Compliance - everyone claims to be HIPAA and SOC2 and that's not really trusted or even verifiable most of the time, especially since most companies go "We're compliant because it's hosted on AWS"
2. Projects - a lot of us roll out our own topping on a vps for hosting projects and personal tooling because $20 a month times the 10-15 services it takes to get started is unreasonable for just wanting to build something simple or even just for fun.
To be fair for the context of tech startups and large company development where time is money and development cost is paid by developers multiplied times hours this is super fair. It's just that a lot of situations don't look like that, and outside of the US that cost can be comparatively unreasonable.
Great points this video, its important for the one man show type operation, value your time properly.
It is going to take at least a decade for medium size companies and larger corporations to change the idea in their budgets that software is something with zero overhead and that you only need to make a one-off payment to the cheapest outsourced team to make it work. For them software is something that only needs to get cheaper as time goes, and why pay for something when you could make the reports in MS Excel also?
one more thing I forgot to mention, in serverless services you can't save data in memory for later use (because every time you run an app, it executes in a different node on the edge).
your only option is to use some sort of external data storage, which is gonna be much slower compared to memory.
I had similar thoughts about this, especially taking security care of to-and-fro of requests between Frontend, Backend, and Databases, and all the services of the app MANUALLY.
I also wanted to know one thing:
When you are developing for a Client, do you host and test stuff on YOUR AWS/Vercel/etc account first, and then change the env or other variables, or is it another challenge to serve the credentials to the Business Client ?
Depends on the contract. On our team our client has their own prod aws account which they deploy all our code onto, and we have a separate aws account we use for our team to develop with. It’s probably best to keep your stuff separated and create IaC they can run to create your same environment
@@WebDevCody that makes sense, terraform to the rescue haha! It feels like to just start with SaaS just a Cloud Practitioner cert is enough
hey Cody loking forward to the VPS video later this week thanks love your content
😆
A not so secret secret about devops is that you can just copy paste from previous projects, 90% + of everything here is just going to be the same no matter what you are building. However it’s great advice to be realistic about what you’ve accumulated in your IaC toolbox vs the project’s ambitions, realistically it’s going to be an hybrid in the end.
I love your explanations, but for me for example my first client app has a tiny budget. I couldn’t afford for any of that unless I paid out of my own pocket. Which I can’t afford. But that’s the trade back that I have to work more hours myself. That’s the issue with one man jobs
every client has a "tiny" budget 🤣. I mean that makes sense. If the client has a small budget and can't afford paying monthly for a service, then I personally would charge them more up front if I'm the one needing to maintain the server for them.
@@WebDevCody yeah they paid me like 30 extra months upfront aswell as monthly. But I can’t afford anything on anything but the vps. My hours are voluntary in my eyes where as big companies dig out my bank
Living in Dominican Republic i can tell you that i much rather prefer than spend a whole day in a $10 vps that spend 100+ a month in services, because if i were to make one app, its ok to pay the 100+ but what if i want to make several apps and try a lot of things? it add up, to put you in perspective, i pay 300 a month for my apartment, and this is a good one hehe, so yeah, i rather do it my self
You are working for yourself though. If you start making $50+ an hour, business owners are not going to want you to be spending a whole day rolling your own VPS over paying for a service.
@@Lexaire thats my point, im not there
this aged very well
Very educational video, as always. Keep up the good work 🙌
The negativity in these first few comments perplexes me. I think of literally every purchase I make in terms of how many hours of my life it costs me to purchase vs how many it’ll save me.
I do these exact same comparisons all the time. And, more often than not, the answer is just to pay for it rather than do it myself.
I think people angry about this video are those who really enjoying trying to ssh into a machine and configure it, or those who can't afford to pay for real hosting or services. If you have a real product, $20 a month is a joke, especially in the united states. I can easily pay $20 in an trying to buy fast food for myself and my wife.
@@WebDevCody If your product actually costs you 20 bucks a month, you don't have clients lets be real. We had a big brain guy on our team that did the entire company structure on Vercel, our bills were close to $60 000 a month, we got together, sent him on his happy way to hack stuff and re wrote the whole thing in GO, hosted on Azure, couple of load balancers, few vms to replicate our bill is $2000 before the first round of optimizations, we will most likely bring it down even more, saved enough money to get a new guy on staff.
In the long run, when you have clients and want to expand those costs add up, you can't simply tell people it's fine because it makes money, it's a business at the end of the day, i am not building a charity to feed Vercel employees.
so hosting on premise,
the good old way?
what if some of these services goes down, your app goes down. And like argument for infinitely scaling storage, for real? Do you have infinite money to pay for storage spamming?
what ever works for anybody is good, however i must say that hosting a production app it's more easy then what people think on a vps, also host your own database is more easy than what it sounds, i really don't understand when become the norm that for everything you need to pay for a service, also dev needs to understand that unless you are a devops, or do fullstack, your job is not to know how or where to host or deploy your website, or your web app, thats the job of someone else, and if is your own app, i think it woul give you lot of benefist to know how to host on a vps, how to do deployment, and no need to pay for any extra service, also self host is more easy than what the industry wants you to belive
The irony, but I still agree with a lot of your points like hosting the database on the same VPS that your app, I saw it a lot of times but always feels wrong.
Jeff Bezos, the founder of Amazon, is credited with introducing the concept of “Undifferentiated Heavy Lifting” in a 2006 keynote speech at MIT. He discussed the challenging and often unseen tasks associated with managing a digital platform, which online business owners must confront.
Another great video, I've love to see a more in depth video on how you made your logo start up video you did recently. As a developer trying to understand cloud hosting, it'd be nice to see what you do yourself to further learn the processes architecture wise. For example how did you keep costs so low? I think you mostly use a serverless approach? Would love a video breaking this down.
9:54 perfect example of why not to use SaaS, one malicious user, and you have an infinitely scaling bill
Interesting take, thanks for laying out your thoughts. However it doesn't fit well for the stack and design choices we've built our API with and the long running tasks each request triggers (typically a lot of dicomweb i/o and then transcoding, sometimes gigabytes per request. Medical imaging can be large when uncompressed)
There is almost no UI (apart from static docs) because our api is consumed only by developers and their 3rd party systems, and splitting all the components out into like independent services on serverless infra just doesn't make sense when the components are so tightly coupled. Would love to hear your thoughts on this approach Cody if you read this
Your domain is out of what I have had experience with. I'd still find a way to use K8S or a managed docker container runner to run your application over renting a VPS or VM and setting up all the required dependencies on the machine manually (or via puppet, ansible, or chef). I just think there is a lot of overhead associated with managing, monitoring, and maintaining virtual machines that just isn't worth the operational cost savings that is hidden by developer hours. I'd honestly see if serverless could handle the processing because the max memory of a lambda is 10gb, and if you do the processing using streams, it might be possible.
@@WebDevCody Thanks Cody. I will explore the options.
Don't agree with everything but was nice listening to your point of view 👍
The entire logic of this video is based on the presumption that price is the only thing you are optimizing for. VPS are reasonably priced and give your product a chance of pivoting to another hoster if prices change. Service dependance can kill a business on the spot with a single pricing change
about your last reason (the app exits on unexpected errors), not every language are single threaded with shitty error handling like javascript.
in most modern language you can properly manage errors without disturbing other users, unless you do something resource heavy (which is not the case for serverless services, because of limited resources) that crush the entire system, you won't have any problem.
"Serverless might bankrupt you (and how to deploy to a VPS instead)"