I want to start by saying that - though I will be fawning over Netlify's service a lot - this is not a sponsored post or review. I just genuinely find their solution great, and think more devs could benefit from using it. Especially since you can try it out at the low price point of zero ;)
Ok, so what is Netlify in the first place?
Aside from posting intentionally bad developer puns on their Twitter, Netlify offers an “all-in-one platform for automating modern web projects”. Basically they provide a CI/CD pipeline that allows you to automate as much of your workflow as possible as a site admin.
From what I could gather, Netlify is geared mostly towards the coding crowd. A lot of the features they offer would probably get a shrug from non-developer site owners. As a coder, though, I consider most of them essential, and the rest at the very least convenient time-savers.
Before I dive into the details, I want to mention that so far I used Netlify to build static HTML/CSS sites and React apps, but it can just as easily service Vue and Angular, WordPress sites, Drupal sites and more. The features I describe below are general and from what I understand, they apply to all types of projects.
So, how does one use Netlify, and what is so great about it that I felt the need to write a post?
Using Netlify starts with integrating your project’s GitHub repository with Netlify’s pipeline. They have an easy-to-follow guide on how to do that. Once that is set up, every time you push to the GitHub repo, Netlify will run an automatic build of your site, and the new version will be up within seconds. I noticed at most a 10 seconds delay from the push to the updated build being up online, though that will probably vary depending on the type and size of project you're deploying.
The integration is a huge time-saver - push to repo, and the rest of the tedious stuff is handled for you. I did not encounter any problems with the automation at any point. After the initial setup, everything has run smoothly without any action required from my side.
Once the project is built, it’s available online on Netlify's default domain (projectname.netlify.app). It’s not bad, but for most projects that are not proof-of-concept, you’ll want to use a custom domain. Luckily you can do that even on the free plan (of course as long as you own the domain in question).
To use the custom domain, you need to set up your domain to use Netlify's DNS, which I found rather quick and painless. From then on you’ll be able to change DNS records and set up redirects inside Netlify's panel. For me that's just added convenience, since I'm more likely to be logged in there than to my domain's admin panel anyway.
One thing to keep in mind when using the free plan is that the project will always be available at the default Netlify address, even once you set up custom domain. Also, the free plan does not support password-protected websites, so once the project is built, it will always be publicly accessible.
When it comes to security, every site put up on the default Netlify domain comes automatically encrypted with SSL. If you add a custom domain, you have an option to include a cert from Let's Encrypt, which can be done with a few clicks.
Even though I don’t use any of the options I’m about to list here (so I can’t really comment on how well they work in practice), it’s worth mentioning that Netlify has some extra tools that help you run your site. Stuff like built-in analytics, managing signups and logins, OAuth integration for your users, or collecting form submissions without any additional server-side code sound like cool perks to me. These features are either free, or available for a small additional cost per site.
Overall, the entire process of setting up a website with Netlify, together with purchasing a custom domain, integrating the GitHub repository, setting up DNS and adding the SSL certificate took me just over an hour. That’s an exceedingly good time, considering that I also expect it to save me precious minutes every time I update the code.
Even though the free plan obviously doesn't come with any SLAs or guarantees, I didn't encounter any problems with the builds. I noticed no significant downtime or slowdowns, and at no point did I feel that I'm struggling to set something up. All the options I could possibly need were available out-of-the-box, with very little work required from my side.
Netlify’s free plan is a fantastic option to start if you want to host your personal website, and if you haven’t tried Netlify yet, I seriously encourage you to take it for a spin!