For example, I see a lot of people talk about it for static sites. But you get free static sites through GitHub, nearly free static sites on Amazon S3. What does Netlify do special that these others don't? I'm not attempting to bash the service, I just want to understand what its killer features are.
Second feature that is great is that you can use the cli to perform a draft deploy, which generates a unique public URL which you can share with your testers/marketeers/writers/translators etc. It's a great and easy way to quickly share test versions without having to set up auth (the draft URL's are a hash, so pretty long and unguessable).
Third useful feature is that Netlify can capture form submits. It's quite basic but works great if you have to whip up a quick page to gather email addresses, RSVP's etc.
It's also great that they have integrated Lets Encrypt, but Netlify did experience a bad outage a couple of weeks ago where wrong certs were served (for a different domain) causing a big scary warning for our visitors. Luckily this was resolved pretty quickly, but you do feel pretty powerless when something like that happens.
At Mailhardener we run most of our static content from Netlify and we are very pleased with the service that Netlify offers.
But yeah, it's basically like that but with some more modern features like being able to do this from a browser (no filezilla required!) and better control over HTTP headers and such.
However, I don’t think it had the ability to preview a deploy or roll it back with 100% certainty that it will be exactly as was before, which is something you really need when deploying is (too) easy.
"High Volume, Bandwidth Heavy Infrastructure On The Cheap"
And I'm pretty sure he's also cryptocoin-rich, anyway.
How is this different than `aws s3 sync local/ s3://your-website.com`?
2. Netlify is a CDN, so "dragging and dropping" would be equivalent to setting up S3 + Cloudfront.
3. You have to create the bucket before running this command. With Netlify you just drag and drop and it takes a couple seconds (if the site is small enough to be built that fast).
4. Netlify is also able to run a build phase before deploying. With S3 you have to do it locally or setup a remote machine.
With Netlify I can just hook it up to Github and they'll handle running any build scripts, and then smoothly flip from the previous version to the new one in single action.
netlifyctl deploy --publish-directory local/ --site-id site_id
I've been really happy using Netlify (with Jekyll) for https://www.checkbot.io/ - I didn't have to think about server admin at all when I got traffic spikes from Hacker News and Product Hunt traffic, and development features make working on the website really straightforward.
Features I like:
- Git based deploys automatically when you make a commit
- Git based rollbacks if there's a problem with the latest commit
- non-master Git branches are automatically deployed for preview
- automatic CDN + HTTPS setup
- no servers to admin i.e. they deal with security, scaling and configuration for you
- they do instant cache invalidation of images/CSS/JS files for you so there's no stale files being served after deploys
- before deploying you can run complex build scripts on Netlify to generate files to be deployed e.g. any static site generator you want to use, run arbitrary NPM scripts, you can download data that to be rendered on to a page
- you can use Netlify CMS as a friendly web interface to edit blog posts, articles and FAQs. It's easy enough for non-technical people so it's possible to use for standard business websites that would normally require something more complex to admin like WordPress.
You can cobble together something like the above yourself but Netlify makes it simple and robust so you can get on with more important things.
People that say you can do something similar with e.g. a Digital Ocean droplet are missing the point and are for sure paying with their time. If you've worked in web dev for a while you've probably tried to automate many of the above features yourself but it's just never going to be as robust as a service that has a dedicated support team behind it.
The answer could be, "Well, obviously, it's not for database-backed websites", or "Obviously it's perfect for database-backed websites, because now you can use their X feature for your database", or "Obviously, you use some other company to host your database but Netlify for everything else, which is a great improvement because...", or whatever.
What am I obviously missing?
You can call api's from JS and host your database separately, also possible that people use some kind of "serverless" database like google firebase.
Right, and the rest of them—a very significant portion—do. And yes, I realize that it's possible to use JS to fetch from anywhere, but what I'm wondering is what people are thinking when talking about Netlify.
Are they thinking that this isn't really for database-backed websites but can be used if some other Netlify advantage justifies putting your database and the server code that uses it in different timezones? Or is it the opposite, that this is actually a better way of managing a database-backed website?
What is the positioning of this new type of managed hosting with respect to websites that depend on databases full of, say, customer data? It seems as though that would be a FAQ, not an exotic niche.
See addons: https://www.netlify.com/products/
Also services like this allow you to have a "cms" which is the typical use of a db for _most_ websites: https://www.contentful.com/.
You are correct, heavy db users probably wouldn't go with a service like this :)
It deploys when you push, is based on Jekyll, and GitHub handles all of the hosting/HTTPS/caching themselves.
Out of the box support for prerendering is also fantastic too – https://www.netlify.com/docs/prerendering/
But that would be missing the point. It’s the promise that they’ll handle things for you. You don’t need to know how to configure a web server, ha proxy, systemd, firewalls, set up network topology or failover, nagios, collect logs, update servers, pay attention to security announcements. You just need to write your thing and commit it to git, and they got you from there.
You may want that for a bunch of different reasons. Maybe you legitimately have no idea how to do all of that yourself and don’t want to learn. Maybe you can do all of that yourself, but you don’t want to… there can be a bunch of reasons for that from cost/benefit to not wanting to bother maintaining a server for a one-off project.
This space isn’t really new, dotCloud in 2010-2011 I think I did the same thing — they supported a lot more backend languages, there had been some Ruby on Rails ones that were similar ‘git repo to production site’ hosting services, but I forget their names.
One feature they have that particularly made me go, “Oh… you guys are smart,” is https://www.netlify.com/docs/form-handling/ Any random small site usually wants some kind of contact form, and they’ll capture some POST endpoints for you and handle that. I imagine over time more and more things along that line will be added.
I don’t normally do JS stuff, but I’ve been learning recently. My friend, John, records videos for YouTube where in one recording session they make a half-dozen episodes. He’s been going on about wanting an app that has a global timer aligned with the video recording, and then a sub timer aligned with the episode with play/pause/flag/comment/delete functionality. I made it to learn VueJS and give him a good birthday present.
I got it set up and deployed in under 15 minutes with Netlify, it has SSL, is speedy, and with Netlify I don’t have to maintain anything or think about it any more: https://timer.onthebranch.com/ so it was a big win for me there.
The crazy thing is that app is basically all client side, and yet you need a whole managed server infrastructure just because there's no P2P way for you to share the code with your friend and for him to be able to run it.
It's coarse, rough, irritating and gets everywhere. It's the stuff that makes each tiny step that little bit more annoying. Checking how to set permissions on S3, looking up how to make sure things are redirecting to HTTPS properly, setting up a pre-live stage, etc. Each thing is pretty minor, each tiny interaction not a major deal, but together it's annoying. Netlify has not been annoying.
It's one of my favorite platforms because of its simplicity.
One Netlify feature I like is that if you host a domain with them, you can deploy branches to subdomains via git naming. This is good way to set up dev/test/prod environments with very little hassle.
Something I see in a lot of threads like this is "What's so special about that? I can do all that stuff myself while self-hosting!" Yeah, but should you? Setting all this stuff up is a bunch of schlep that has no productive value, and I'm quite happy to outsource it to someone who makes it easy and obvious.
There’s no such limitation with Netlify.
But Dropbox is something for laymen and casual consumers, it had a massive convenience quotient — Dokku and Netlify (and surge.sh and Heroku, etc) are for developers specifically, and git pushing to website generator is more or less the same experience with all of those services. There isn’t a gulf of difference between using Netlify and creating a Dokku droplet on DigitalOcean...
Edit: comment below helped me too, CDN, SSL, pretty URLs. All good value with Netlify. Thanks.
There absolutely is.
There might be one click deployment for tools as DO droplets, but if you're the target user for that kind of thing, you're probably taking on more responsibility than you're even understanding. It might even be that the one click setup has good security defaults and automatic updates set up. It might continue to work without any issue and any intervention for a long time, but by luck/coincidence. On netlify it will continue to work because someone is taking care of the things that need to be taken care of, not because of luck/coincidence.
Another perspective: You're a JS/HTML/CSS developer. Heartbleed happens. On netlify, you don't even need to pay attention. On DO you at the very least need to understand how to check that all your servers are updated.
Another perspective: I've managed linux servers before. I know how to do it. I don't enjoy it.
Netlify is definitely on my todo/reading list... I just tore down my personal website and blog, with the intent of getting it running elsewhere. For my blog, I exported all the details into markdown files with front matter, but hadn't done anything to get it re-published anywhere. So, who knows.
I have a genuine interest in exploring a lot of this, but motivation + time have been limiting factors for me.
"But wait...there's more". If you're a new to development or operations, you might be tempted to use something like netlify. If your project has a high probability(>75%) of generating real income, then DEFINITELY use netlify. Anything that stands between you and deployment is costing you money. But... if your project is a hobby or non-serious-revenue-generating endeavor: please please please do it yourself. Learn apache syntax, learn nginx syntax, explore why `setenforce 0` is for hacky amateurs. You'll learn marketable skills, that will help you in your future career endeavors.
Netflify creates a skilled "user of netlify". Doing it yourself creates an "engineer". Which of those two would you rather be?
Given the number of help threads and spotty documentation I had to look through to deploy a simple Wordpress site, I'd say it was more of a hassle than anything else. Unless you plan on doing this several more times, at which point you'd likely have worked the kinks out, stick with deepening your knowledge in an existing area of proficiency.
On DO, I learned that you have to set up everything yourself, like SSH, Apache, MySQL, PHP, SFTP. I haven't found good documentation on how to set up a Git workflow from my local dev environment, so that's the next step. I have a non-database PHP site I plan to use for that.
One of the many hats I wear is to do a lot of those things. I setup nginx inside a docker container to act as a reverse proxy for an http api living in another container, and now that's done but it's time to put on another hat and train users on the new core platform we're using, but now it's time for the legacy maintenance hat, but this hat is on fire, and...
If I'm working on a project for fun, I want to have as few barriers as possible, because I'm already facing an uphill motivational battle after a long day at work, or on a weekend where I just want to relax.
I did have to lookup `setenforce`, because I've never had reason to disable SELinux.
It almost worked for me with s3 buckets and then I hit a wall with SSL, and Netlify setup was quick, painless and lets-encrypt compatible :)
I don't mind AWS, but Netlify was just painless.
In similar fashion I use now.sh, I could upload a thing to s3 and fiddle with permissions and settings, or I could `now` :)
There is no restriction on S3 bucket regions.
Netlify is for one use case - front end developers deploying websites.
That means things like automatic asset compression and minification, feature support for things you’d normally need to setup a backend server for (login, form capture, etc), automatic SSL certs, CMS, etc.
Yes, most of their features can be replicated with other tools, but the point of Netlify is that you don’t need to with them, because they understand your perspective (hosting a static website as a front end developer) and they handle things for you.
Hosting on S3 is cheap and I know there are tools to help me, but it's complicated to set up.
Netlify hits the sweet spot by being integrated with git, so you still have to be somewhat technical, but taking care of of a bunch of devopsy stuff. Things that their customers either don't know to do or don't want to. For example I thought about setting up let's encrypt for my personal site, but netlify has that figured out.
I'm currently building a Gatsby/React site for a small grocery store chain, Netlify makes the process easy with hooks, cli, and many things I found on Heroku. Sure, I could host it elsewhere that has an S3 service but then I have to worry about configuration.
I’ve tried looking around an AWS account, it wasn’t pretty. I got it to run in the end, but I’m almost certain that some configurations were either problematic (as in I’m probably missing test cases) or downright insecure.
I had a blog with all the features (write in markdown, latex rendering, code highlighting with themes) and the looks I wanted in very little time, at zero cost with Hugo & Netlify.
I do have a github account, but I don’t really use it that much, so it makes no sense to me to become a paying user just to be able to host a site.
The other option involves making the repository public, so I lose the ability to meaningfully have drafts.
I prefer to see it as a build environment for your code, data, and assets. The data can change all the time, but it either changes as part of a build process or pulled from an external API.
Here's a good summary of a team choosing this approach for their data-heavy site:
It is confusing for non IT people who often think static means it can’t have any user interaction.
Netlify by contrast has the vibe of a swiss army knife or maybe a unix shell: a lot of very sharp tools that you can use to set up static sites in a lot of different ways and that compose nicely. I haven't done a ton with it, but you just get the feeling of a high power to weight ratio.
1. It's free.
2. Deployment steps are just push to git and you're done. Since I am using git anyway this is as easy as it gets.
3. Fast edge CDN (get's 100% on Google Speed Check).
4. https is taken care of.
5. DNS cname stuff is taken care of. and they didn't screw me over here, and let me use a different provide for email.
- I get free & automatic build, deploy and hosting of my JS app just by pushing to git.
It's convenient. It understands a lot of static website generators, runs the build, makes a preview, manages domains, DNS, https via let's encrypt. All in a single package. Nothing in that package is impossible doing by yourself, but it's just well executed.
GitHub doesn't support a build process, right? So you would have to do that yourself and commit that.
> nearly free static sites on Amazon S3
You'll have to manage the build and deploy here yourself then.
Netlify is great because its easy, and free (if you're under their bandwidth cap). They have really cool features like automatically deploying a preview environment for pull requests, or a/b testing different branches.
I run an open source video game companion site DestinySets.com where I have a lot of data in JSON files in my repo. Github + Netlify means I can take PRs for changes to the data, sometimes from non-programmers (or beginners), preview, merge and deploy from my phone, all for free (both money and time) Its pretty easy.
GitHub builds your site with Jekyll.
then i build and deploy with a bash tool i made called NanoCD: https://github.com/tkjef/NanoCD
has lots of helpful options. easy to wrap your head around. easy to add whatever workflows,tests you'd like.
I've done a static site from Terraform, and I've done it more recently in Netlify - Terraform was exponentially harder, end to end.
the whole point is that I don't want to futz around and use terraform, or read a tutorial, or build a bash tool or whatever.
It's literally like 3 clicks in Netlify and it'll handle _everything_ for me. I point my DNS to Netlify and then I've got HTTPS for free as well.
I used to deploy to S3 as well, and I had a small little `yarn deploy` script that did the webpack build and upload to S3 - its not that hard https://github.com/joshhunt/destinySets/blob/ae08807e3d23de9.... But Netlify is so much easier, especially when working from multiple machines.
A few things that I love:
- Extremely cheap (i.e. free for my needs)
- Deployment previews for every PR. Coupled with Renovate, this is a fantastic way to manage dependencies. Especially useful since it's a hobby project, making me time constrained.
- One click support for prerendering
- Managed SSL. One less thing I need to do.
- One click rollbacks for when I screw up.
1. Pairs the domain with the file server - I can buy a domain on Godaddy and then have it pair to my Netlify fileserver. Its pretty easy to get started. In the past I used Godaddy for everything, but now I do not have to.
2. Deployment mangement. If you have Github, you can setup automatic deployments to the production server. So, when you save some code and push it to Github, it will then push that code to your live server. In the past I would have to manually copy those files over. Now, I'm not sure exactly how to push manually through Netlify (I really need to brush up on it), so I turn it off if I'm working on some items that shouldn't get pushed quite yet.
3. It comes with security certificate (https) without any additional cost. In fact what I'm using is the free tier. I'm able to deploy an entire site for free (well my Azure server is costing me money, but still).
Hope that helps!
Is it a quota issue or Netlify not able to handle the load?
Form filled -> Pass submitted data to Zapier -> Chuck data into a Google Sheet
Basic usage for sure, but once it's in Zapier you can do with the data anything Zapier can do with data
It does more than that, but that's an easy pitch from my perspective.