As we progress through the latter half of 2024, we're inching closer and closer to the 20 year mark since AWS first launched in 2006. Since then, the cloud computing industry has grown tremendously, both in size and options.
Deciding how and where to deploy applications comes with a variety of considerations. Among these are the usual suspects such as cost, reliability, and security. In addition, there are myriad other things to consider when picking a deployment platform including ease of use and time from commit to deployment.
As builders who have deployed to almost all of the options out there, including many that are not on this list, we hope to give insight and options to help you decide how to deploy your applications.
Many of the people we talk to want to minimize their time deploying and managing infrastructure. Instead their focus is on building for their customers and growing their business footprint. In order to do that, they need the right platform to host their applications.
Here are FlexStack's Top 10 Deployment Platforms in 2024:
FlexStack
FlexStack is the the fastest way to build, deploy, and iterate on AWS. We've carefully engineered our platform to handle the most complex architectural configurations for a variety of use-cases and application states. Our platform is expertly crafted to scale your infrastructure as your traffic grows focusing on cost and performance optimization. In addition, it automatically provisions the right resources based on whether your environment is for development, staging, or production.
Why choose FlexStack?
- Building on AWS is 10x faster. FlexStack is the fastest way to build, deploy, and iterate on AWS.
- You can get started for under $10/month. Pricing stays simple as you grow. For a detailed breakdown see our pricing page.
- There is no complicated DevOps. Rely on FlexStack's battle-tested architecture without coding fragile infrastructure configuration.
Why choose something else?
- You are not using AWS. To you use FlexStack, you need to connect an AWS account.
- You need to use Kubernetes. Because we've optimized for cost and performance, ECS is a better choice than EKS.
Vercel
Vercel is one of the most popular platforms to deploy web applications such as websites, blogs, and e-commerce sites. There are a wide range of front end applications that can be deployed on Vercel though deploying a Next.js application is certainly one of the most popular reasons people choose Vercel.
Why choose Vercel?
- Only Vercel supports advanced Next.js features. While Next.js is open-source and can be hosted anywhere, some features are only available on Vercel. For more information and considerations, see our guide on How to deploy Next.js to AWS.
- Collaboration is easy. Vercel can deploy changes to a preview endpoint on every commit which can be used to review changes before merging code into production.
- There are a lot of integrations. Because of its popularity, many other services have built in support for Vercel.
Why choose something else?
- Vercel is largely a frontend cloud. While you can build API endpoints which run backend code, there are a number of reasons a different backend solution is preferable.
- You pay a premium on usage. Vercel runs on AWS infrastructure, therefore there is a markup. In addition, many useful features have additional paywalls within the platform.
- Lambda functions have limitations. For Example, the serverless functions on the Pro plan can have a maximum size of 250MB and max duration of 300s. See this Github Issue for an example.
Heroku
Heroku is a popular application platform that can be used to deploy many different types of traditional applications and services. Heroku's platform is a managed container platform that runs on Heroku's "dynos" which are fully managed container runtimes for a variety of different programming languages such as Python, Go, PHP, and Javascript. In contrast to Docker containers that can be built using an unlimited set of instructions, dynos are defined and managed by Heroku.
Why choose Heroku?
- Easy to use for developers earlier in their career. Hosting common infrastructure such a PostgreSQL database is easy in Heroku with a point and click interface.
- Focused on application development. Many teams need to allocate most of their engineering resources to application development rather than how that application is deployed. Heroku can be a good fit for small teams that are mostly focused on light to medium traffic full stack applications.
- Time in service. Heroku has been around awhile. With maturity comes a variety of defined use cases. When starting a new project it is probable that there is a decent workflow for your use case.
Why choose something else?
- Planning for internet scale. While Heroku can be a great platform to develop in the beginning, more sophisticated systems generally reach a point where a different platform is required.
- Heroku has Heroku ways of doing things. Because Heroku deploys defined dynos and has set workflows and add-ons, you do lose some autonomy and decision making capabilities on how your infrastructure works together.
- You have more control over your application with a Docker container. A well defined Docker container hosted on a managed container service covers most every need that Heroku does in their platform.
Render
Render is another managed platform that boasts usage by over a million developers. It is a "run-anything" platform that allows you to host databases such as PostgreSQL, in-memory caches such as Redis, or applications in Docker containers amongst a variety of other deployment possibilities.
Why choose Render?
- Easier to get started with than hyperscalers such as AWS, GCP and Azure. Render tries to thread the needle between supporting everything and catering to specific use cases.
- It is more feature-rich than single purpose platforms. You can deploy a variety of micro-services.
Why choose something else?
- No usage caps may mean surprise bills. This is common with many platforms, so you might need to set alerts to make sure you don't run into a surprise bill because of a spike in usage.
- Complicated pricing. Render charges per seat and then usage pricing. So with applications that have many services, it might be hard to predict cost.
- Compute pricing is up to 3 times as expensive as AWS.
Netlify
Netlify's platform helps teams ship web apps without thinking about servers or DevOps. Some key features of Netlify include a streamlined no-ops workflow and a robust set of integrations with SaaS providers such as Optimizely and Contentful. It's a good choice for frontend and content-rich business such as business web sites and e-commerce.
Why choose Netlify?
- Free to get started. Netlify has a pretty good free and pro tier for small projects.
- Jamstack friendly. Whether it's Svelte, Gatsby, Hugo, or any other popular Jamstack framework, Netlify likely has a starter for it.
Why choose something else?
- Next.js doesn't always work like advertised. Although you can deploy Next.js on Netlify, it is likely not going to work right out of the box.
- Surprise bill. If your site explodes in traffic, you may see a huge bill as Netlify charges a premium on their bandwidth. See "Netlify just sent me a $104K bill for a simple static site"
Fly.io
Fly.io is cloud platform that focuses on deploying and running applications closer to users by utilizing a global network of edge locations. It is designed to make it easier to deploy and manage full-stack applications with a focus on proximity, performance, and simplicity.
A highlight of the Fly.io developer experience is the `flyctl` cli, which is used to deploy directly from the command line.
Why choose Fly.io?
- Latency is very important. Fly.io operates in 35 different regions and is likely to be within 100ms of your users.
- Fast deployment and iteration. Fly.io has a great CLI and is really quick to get started.
- Feels like a traditional VM. Fly machines boot super quickly, so you get a similar experience of serverless architectures, but you still get a VM to run your applications.
Why choose something else?
- Poor reliability. Fly.io has experienced rapid growth over the last few years and as a result has had period of reliability that is sub par. See https://community.fly.io/t/reliability-its-not-great/11253 and https://fly.io/infra-log/2024-05-11/
- You have computationally intense workloads. If you're running a high performance database, you may opt for an option more catered to that type of workload.
Porter
Porter is a relatively new platform that was part of the Y Combinator 2020 batch. In a nutshell, Porter deploys to your own cloud account, whether it's AWS, GCP, or Azure. It offers a good balance between the ease of a PaaS and rolling your own cloud infrastructure. It's geared to growth-stage or seed funded startups that don't want the overhead of dedicated DevOps engineers.
Why choose Porter?
- Easier than managing a Kubernetes clusters.
- Start with a PaaS without outgrowing it. Since Porter runs in your own cloud account, you can eject the Porter platform unlike managed platforms such as Vercel.
Why choose something else?
- Very expensive. Both the cloud and bring your own cloud option for Porter are markedly more expensive than other platforms.
- Unnecessarily complex for simple projects. Porter uses Kubernetes under the hood, which is a huge overkill for a variety of deployments. If "workload" or "control plane" is not in your terminology for you deployments, you probably don't need Kubernetes.
DigitalOcean App Platform
The DigitalOcean App Platform is a relatively new offering from a company that has been in the cloud hosting space for some time. This platform allows you to publish code directly to DigitalOcean servers without having to think about the underlying infrastructure such as droplet size.
Why choose DigitalOcean App Platform?
- Deep integration with DigitalOcean. If you're already familiar with DigitalOcean, migrating from other services such as Droplets to the platform could save you time in the long term.
- Easier than managed Kubernetes. It only takes a few minutes to go from code to deploy with the managed platform wheres setting up Kubernetes will take much more time.
- Starting a new project. For new projects, choosing the platform approach will likely save you time and money up front.
Why choose something else?
- Not AWS, GCP, or Azure. Many startups choose hyperscalers because of the knowledge that they will not be able to grow out of the giant cloud providers.
- Large bandwidth usage. You may require more flexible billing.
- Not optimized for cost. You will have more fine grained control over infrastructure relating to costs if you choose a more traditional route.
AWS Amplify
Amplify is product that is actually a collection AWS services packaged into common use cases and workflows. Amplify utilizes a variety of different AWS services such as Cognito, AppSync, and Lambda.
Why choose Amplify?
- Uses only AWS services. Because Amplify uses other AWS services, you don't need to worry about billing with another platform or service.
- You're already using AWS.
- Lot's of AWS options, defined workflows.
Why choose something else?
- Developer experience: Despite the promises of simplified AWS experience using Amplify, you're likely to encounter difficulties, complexities, or gotchas while using Amplify.
- Ease of use. There are much easier and faster alternatives to hosting a GraphQL or a Next.js application than Amplify.
Deno Deploy
Deno was co-created by one of the creators of Node.js, Richard Dahl. It truly feels like an improved iteration of javascript as a fullstack programming language. It builds on web standards with features such as zero-config TypeScript.
Deno Deploy is a serverless platform for deploying Deno applications.
Why choose Deno Deploy?
- Develop to deploy time is minimal. You can deploy directly from the command line with minimal effort.
- There are no servers to manage.
- Subhosting. You can host third-party code using Deno's API.
Why choose something else?
- Not using Deno. This may seem obvious, though if your application is written in Go, Deno Deploy is not going to be a lot of use to you.
- Can be hosted anywhere. If you already have accounts set up elsewhere, you should be able to deploy your Deno app just about anywhere, such as in AWS using FlexStack.
- Low resource and execution limits. The Pro tier on Deno Deploy only allows for 5M requests/ month and 200GB of egress. After hitting these limits, the usage based pricing is quite expensive at $2/M request and $0.50/GB.
Conclusion
Now is a great time to be a builder. Whether you're a solo dev launching a new project, a startup planning for rapid growth, or a fast moving team in a larger organization, I hope this article has given you a summary of some really great options to deploy your next app.
One last note on why we think you should try FlexStack - you're going to love the experience of building with our PaaS and the power that comes with your expertly architected AWS infrastructure that scales with your applications.
FlexStack's vision from our founder: You should be able to bootstrap a startup for less than $10/mo, grow to infinity, and never have to migrate from your deployment platform.
If you haven't already created an account, sign up here. If you have any questions or need help getting started, feel free to reach out to us on discord or via X.