With starting of serverless services like netlify vercel render and upcoming cloudflare pages, personally i loved them for many reasons like
- not worrying about vps/server downtimes
- in-built CDN, so site will be faster for visitors
- no need to push changes manually, with every push changes are live
- no need to use deployment scripts for each branch… these services provide seperate URLs for custom branches and merge requests so we can approve site only when everything is working, this has another side effect….i don’t need to install project locally in my pc at all…i can just check live site and approve changes 🙂
there may be many more features but i just forgot to write here.
Now i will try to write down pros and cons for each of these.
undoubtedly the best solution our there and the first most solution and using it for more than an year without hitting their 100GB BW limit ofcourse so i am on their free plan.
- very very easy to get started and widely popular
- can upload a project just by dropping into their website
- cli based update (no need to use git)
- allows projects from repository groups aswell (not just personal projects) i.e. gitlab.com/project/frontend not just gitlab.com/user/project
- max execution time for a build is 1hr (you might wonder why do we need 1hr but sometimes we do need more than 1hr for builds and i had one project where i hit this limit)
- 300 mins of build time, when working in team with 4-5 people working on multiple (4-5) projects….it is very very easy to hit that limit.
when i am about to hit that 300mins build time limit in netlify, i started searching for alternatives and i found vercel
- no build time limit
- cli available (i haven’t used though)
- create builds for merge requests and each branch.
- highest no. of CDNs compared to any other service (except CF pages beta ofcourse)
- easy to remember URLs ex: git.branch.name.repo.vercel.app
- no option to upload a site zip file
- you need to pay if you want to use group projects i.e. gitlab.com/project/frontend
probably most under-rated one which has most features from above two but didn’t get much attention it deserves and in facts…..you can use render with almost every programming (paid) not just a frontend site.
- no build execution time limit – when we had project which takes more than an hour, render came to our rescue
- create deployments for each merge request.
- no cli (or atleast i am not aware of it)
- no way to drop files to create project
but i don’t consider them as cons because i am not going to use render for these purposes.
overall, when cloudflare pages launches i am sure many people will move there because of more CDN options and more generous limits and in my opinion, it will be a game changer.
Update: I got access to cloudflare pages so lets review it
- too many POPs undoubtedly
- 500 builds per month
- unlimited bandwidth
- only github access (gitlab access is not yet possible)
- initializing build environment takes hell time (probably because it is beta)
- no search option to filter repo while creating a project, which is a PITA when you have many repos.
- no option to cancel a build (even if it is stuck forever)
- many builds failing with internal errors.
So what is the final verdict?
I guess… i will define like this
- prod sites: put them in cloudflare since site is avavailable from more POPs
- working with many devs and many commits: use vercel
- working with group repos: use render
- beginning out and even want a site by uploading zip: use netlify.
if you are just beginning out…..netlify will the best.
UPDATE 18-02-2021: After using CF pages, vercel many days for development builds, i am using render for development builds now because of the way they generate URLs for PRs
and i find render one to be easily shareable and rememberable.
and since it is only for staging/development…we are not much bothered about no. of POPs etc.