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.
- I get free & automatic build, deploy and hosting of my JS app just by pushing to git.
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.
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.
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
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?
It does more than that, but that's an easy pitch from my perspective.
2. Good support
3. Custom domains with SSL
4. Takes care of most important backend stuff (forms and webhooks)
5. Functions (Lambda with zero config needed)
6. Abstracts server stuff like [redirects](https://www.netlify.com/docs/redirects/)
Lambda and redirects are the best. I can just put my scripts in a folder and they automagically work.
In my LinkedIn profile my website address is not clickable, so people are copying it to browser. This gives me bogus source data, but with Netlify I can do a one-liner:
If you go to [patrykkalinowski.com/li](https://patrykkalinowski.com/li) from my LI profile, you'll end up on patrykkalinowski.com/?utm_source=linkedin&utm_medium=profile
From my reading of https://www.netlify.com/pricing/#forms you will need to pay $19/month/site (!) just to collect the data from 1000 form submissions. By the time you have a couple of sites like this the price is already way too much for me and anyone else with basic backend knowledge. I hope I've misunderstood.
It's $0,019 per submission, which I think is a fair price if you're actually sending that amount (and making money from it). It would costs you much more to build unless. That said, for personal (free) use there are a lot of alternative options.
They give you the ability to have 2,000 contacts in the system at one time for free.
With this ngrok competitor making it easier to experiment with lambdas/serverless technologies, they're creating a compelling reason to use them for production builds.
I know in the github integration workflow, you have to manually upload the file and then link it which is kind of a pain if doing multiple images.
Just migrated our wordpress blog to jekyll + this. So far the content writers aren't super happy but the SEO speed scores are better :)
When I visit my friends place I usually just use their computer, otherwise I'll use my MacBook pro or desktop. I don't think about setup much, I just use whatever devices around me to access and write code on my server instance.
I just gave it a spin though and got this:
Netlify Dev ◈ Starting Netlify Dev...
Netlify Dev ◈ Overriding dist with setting derived from netlify.toml [dev] block: null
Netlify Dev ◈ No dev server detected, using simple static server
Netlify Dev ◈ Unable to determine public folder for the dev server.
Setup a netlify.toml file with a [dev] section to specify your dev server settings.
Anyone have this tool working locally?
Essentially, it takes your code (from a repository), runs a build command (if configured), and serves the result over HTTP on some domain.
I learned Jenkins creating the pipeline to AWS in less than a day.
Sure they are not a huge improvement compared to your setup. But streamlining the procedure for someone not familiar with the pipeline is a great benefit.
Now I use NearlyFreeSpeech.NET exactly because I do have to pay for it. I'm not sure how Netlify is able to offer their free tier. But I've learned the hard way that if you're not paying for it, you're not the customer.
Netlify CMS itself is a lot more raw but I see huge potential there, especially since it's open source. Our InfoSec folks loved the idea of content changes as commits. And the maintainers on Gitter are super open to help folks and work through changes. Already submitted a PR that was accepted and has made it into a release. And we haven't paid them anything yet, even with Google Single Sign-On integrated.
Can you expand on what do you mean by this?
Netlify absolutely kills it with their entire suite of offerings. I highly highly recommend people try it out if they haven't yet.
Their free tier is probably too generous though. I know someone running the biggest website in a massive niche and they are serving their SPA for free from Netlify.
Your point stands nonetheless — they could certainly be losing money on certain large users of their free tier. Serving relatively static content has gotten extremely cheap across the board, though, and like the parent said, they might be benefiting from the pricing by more indirect means.
For this product I'm wondering what does this give over, running setup and deployment scripts locally? Or running a VM connected to CI server that would run test and production deployment?
I noticed that one of the features mentioned is this --
> Netlify Dev automatically detects common tools like Gatsby, Hugo, Jekyll, React Static, Eleventy, and more, providing a zero-config setup for your local dev server.
If your framework supported by netlify, just plop the projects with no configuration.
I found one or two Python projects supported by netlify -- https://www.netlify.com/tags/python/
It looks like Netlify caters to frontend development, as far as backend, mostly static site generators supported.
I would try this out for Vue.js
How do you see `netlify dev` comparing to `firebase serve`? The `--live` feature sounds great and I can imagine the config variables are handled better, but otherwise I'm anticipating a similar experience. Is that correct or am I missing something core?
You're right, as a video service, we cannot do everything through them, we use our own encoder service with AWS Lambda, and manage users through a NodeJS app. And Netlify is a very important part of our stack, as it holds our main client app, which connects to these other parts of our stack.
Btw, congrats on TalkJS! Looks amazing.
Offtopic, but can anyone explain the differences between Zeit Now v2 and Netlify Edge?
We are working on adding support for a 100% local development workflow in Netlify Dev. It would be lovely to know what you think is missing from stateful local workflows in both Zeit and Netlify.
For instance Zeit can host a standard node server to serve your application if necessary https://zeit.co/docs/v2/deployments/official-builders/node-j...
Whereas on Zeit Now the root of the website can be a web server written in multiple languages, and offer the ability to make your own "Lambda Builder" if necessary https://zeit.co/docs/v2/deployments/builders/overview
/* /.netlify/functions/app/:splat 200!
You're just lying to yourself when saying local is the same as cloud...
Stuff like Lambda@Edge, Cloudflare Workers etc all have very strictly defined APIs that are executed on V8 (modified for security, but not enough to be incompatible). If you run a pure function on your local machine you can be pretty sure it’ll run on the edge.
We’ve already done this quite well with Docker - the image you run locally is cryptographically the same binary bytes you’ll run on production. It’s not that surprising to see it for edge functions.
But as far as I know, unit tests aren't the place to be in terms of serverless testing.
Integration and E2E tests are much more important and that's where the whole "run locally" stuff breaks down rather quickly.
You need to test them with the services they are using and replicating your whole cloud infrastructure locally is nearly impossible.
“Decoupled web projects involve so many components. The hard part is testing all the pieces locally, together. Netlify Dev delivers this beautifully with one command.”
What are these "decouples web projects" and "components" and "pieces" that are hard to test locally, together?
A++++++ would recommend.
I mean, I could tell you that I too love Netlify with a passion but that would make it even more suspicious. But trust me, it's great. Try it for yourself.
Disclaimer: I’m a JAMstack n00b and the last real web app I built was “old school” where we did crazy things like keep a session token around and server the HTML, CSS, and JS from a web app. As such, I may be slow on the uptake.
AWS Amplify is focused on providing you a backend (with GraphQL) powered by AWS services (dynamoDB, lambda). You can run an entire dynamic application with just AWS amplify. They also provide frontend hosting now, but that part I haven't used (oops that was your core question sorry). It seems that the CLI tool just configures S3 and CloudFront for you. This is probably much less polished then using netlify.
I guess i can see the value since i do realise im dependant to my internets connection to do some dev this last days (im a hacky ceo).
Thanks to the team and great work as always!
I love everything about gatsby/Hugo/etc on Netlify but the lack of good CMS with out of the box SEO tools for writers to easily publish is a no go for my clients.
Tried Netlify CMS and it unfortunately required way too much work to compete with the full featured Wordpress setup my editorial clients are used to.
https://www.contentful.com/ (used this with jekyll)
I did a test to https://trusting-heisenberg-a82012.netlify.com/ and I get "Page Not Found
Looks like you've followed a broken link or entered a URL that doesn't exist on this site.
Back to our site"
Other than that, it is a neat idea.
Currently I use netlify's redirects in production and maintain equivalent nginx configs for dev parity and a fallback just in case.
I'm super happy with the netlify build/edge products.
Also, the docker solution works for everything. So whether it’s a node app, or python, or Go, or Ruby... the process is the same.
I love docker but it's just not good enough at handling watched folders.