The competition in cloud computing sector is tremendous. A lot of their operating cost depends upon what layer of abstraction they are offering. Most VPS providers have to charge you quitre a bit for your services, this is because a VPS is just a virtual machine running 24/7 on their servers, consuming their resources. But surely there are more efficient ways of offering up your cloud services? Enter PaaS; Platform as a Service.
Netlify and Heroku are two such platforms that offer developers to launch web apps ranging from lightweight portfolios and landing pages to business and ecommerce solutions. Let’s compare these two platforms and the various differences and similarities between them.
Both Netlify and Heroku are offered as a Platform where you can deploy your web apps, written in the language of your choice at affordable pricing. However, a closer look at their documentation and features shows that Netlify is geared more towards frontend developers and is ideal for static websites, where as Heroku has a more robust and functional backend support. You can launch apps written in Go, Scala, Ruby, PHP, Closure, Python and a few other popular languages directly on Heroku.
If you are a fullstack developer by trade, or need to hone those skills, Heroku might just be the place for you. It offers managed PostgreSQL as a service to go nicely along with your app written in one of the many languages that they support.
All of this said, I am surprised by the extent to which a static site (a site with just JS, CSS and HTML) can accomplish. This blog post from the co-creators Netlify shows their basic underlying philosophy and how it has withstood the test of time in the last few years.
You can also leverage Netlify’s sister projects like Netlify CMS to leverage the Git workflow to provide basic CMS like functionality. Although it is not as sophisticated as Ghost or WordPress, it certainly eliminates the stress of securing a database and other rigmaroles that a frontend developer might not be interested in.
Git and GitHub Integration
Both the platforms offer great support for streamlining your workflow. Everything from the build process to deployment can be automated. To put it simply, whenever you commit to your repo the app will be rebuilt and deployed with as little intervention from the user as possible. That said, if a build fails, because of some new error that was introduced or because it failed an automated test, the older version will still be online.
While both the services can be integrated other hosted remote repos like Bitbucket and GitLab, most organizations and developers end up using GitHub. Especially, since GitHub is the most popular of these services.
Netlify depends almost implicitly on these services to store the contents of your static site along with its code and instructions about their build process. Heroku on the other hand is kind enough to not enforce such conditions. You can use your local git repos and heroku CLI to manage the source code and store your assets on their platform, remotely. With Netlify, you do get a CLI but you are still heavily reliant on the GitHub, Bitbucket or Gitlab services. Remember that Netlify’s static sites store their contents over at these third-party services.
Both the services intend to capture the market by lowering the prices ridiculously to get independent developers involved. Netlify is still pushing hard its free plans while Heroku, who’s been longer in this game, gives us an insight into Netlify’s future as well. So let’s look at Heroku first.
Heroku offers Free service with 1user/1worker model. The app goes to sleep after 30 mins of inactivity and can use only 512 MB of RAM. The paid pricing is ridiculously small in the beginning where you pay for only what you use. Starting from $7 per month. But then it rising steeply from there to anywhere between $25 to $500 per month. What’s the reason behind this?
The business model is based upon increasing your user base by first enticing them into using your “Free” services. But of course, Heroku (and Netlify) would still have to pay for their server, storage and bandwidth, right? Now, this cost is added on to the paid users who, essentially, are paying not only for their own services but also paying an extra markup to compensate for all the free users on the platform. Therefore, the pricing rises steeply as your resource demand increases. If your website has a large user base, you may end up paying a non-trivial amount of money for a managed platform like Herko, compared to what a VPS would cost.
Even Netlify shows this trend very clearly, from the free plan you are catapulted straight to $45 per month plan for 5 users and then the next tier is at $290 per month which works for 10 users and offers a few features like Role-based access control. But is $290 double of $45?
Free plans are great for the developer ecosystem. They lower the entry barrier and allow everyone from students to hobbyists to learn with real-world tools. But they also incentivizes the abuse of such systems and often lead to the detriment of the organization providing them. The paid customer gets less for what they pay and the company’s finances suffers.
While that little rant about pricing may leave a bad taste in your mouth. Both the platforms are great places for web developers to start working on their new projects. Just remember to give back to the community in anyway you can. You can contribute to their excellent documentation pages. You can contribute by donating to free certificate authorities LetsEncrypt, which both the platforms rely upon. If your project does lead to some success you can consider buying into their paid plans, to help them continue offering such wonderful services. Who knows, you might be helping out a younger version of yourself by doing that