What is AWS Amplify?
Amazon Web Services (AWS) Amplify is a full-fledged web platform created by Amazon to assist mobile and web-based developers in building and fully hosting their full-stack applications, which are scalable and completely operated by AWS.
AWS Amplify offers a full solution and lets developers access it for their developing needs. The main reason AWS Amplify was developed is to meet the high demand for cloud computing and building applications. A cloud model system such as the AWS Amplify is readily available and has on-demand network access to a shared pool of resources. AWS Amplify was launched in 2017; since then, it has served the needs of many developers. It is a full-suite package with tools and AWS cloud services, making creating mobile and web applications easy.
To be more technical, AWS Amplify is multiple things:
- CLI – toolchain to generate, integrate and manage AWS services
- Admin UI/Amplify Studio – The WYSIWYG editor to build full-stack apps
- Client Side JavaScript Libraries – easily integrates your fronted with AWS services
- Amplify Console – the place where your app gets deployed with GitFlow workflow
Now, let’s examine AWS Amplify pros and cons.
Pros of AWS Amplify
Very rapid prototyping
With the AWS Amplify platform, the basic stuff is provided in the in-the-box platform so that you do not need to start coding from scratch; this speeds up the App development process, and you can set up a prototype of an Amplify project even in one day.
Easy start without AWS knowledge
AWS has a huge ecosystem with many different solutions – with Amplify, you don’t need to care about which services are being used and for what – AWS Amplify will do it for you. (This is also a con in some way of AWS amplify framework).
Nice multiple environment handling
You can set up a feature-based deployment without impacting other environments like staging, production or other developer space. This deployment has its own domain and its own backend services that allows you to develop and test your changes before moving to the next step in your workflow.
Cons of AWS Amplify
Hard to go “outside of the box”
Probably your application will grow from day to day, and someday, you might collide with the reality that you need some solution that is not integrated into AWS Amplify you can try to modify CloudFormation templates on your own, but it needs your CloudFormation knowledge, and it doesn’t guarantee that someday the AWS Amplify CLI doesn’t overwrite your changes. Another way is to use CDK, which also requires knowledge of it.
Hard to maintain because of consistent change
AWS Amplify platform is growing very fast, which means it is constantly updated. The new changes and updates that are implemented require you as AWS amplify user/developer to learn and constantly keep up regularly otherwise, you might stay even on two major outdated releases, and upgrading from that point is really a pain in the back.
Too much magic
AWS Amplify generates and sets up services for you – you cannot control which AWS service is being used, and you don’t even need to know that, which also blocks you from learning the “real” AWS components.
Linear growing of Github issues
The issues in AWS Amplify GitHub repositories are growing from day to day, so the new bugs or feature requests are faster than the contributions from the Amplify community (there is even an issue created in 2017). So if you have a brush with any missing feature or bug that is already created in their repositories, it doesn’t guarantee that it will be solved this year.
Is AWS Amplify worthy of use as a production solution?
AWS is a perfect tool to use when your project has a well-defined roadmap, and this need matches its capabilities. As much as AWS Amplify offers a wide range of capabilities, it is only recommendable for handling small projects with well-defined goals, for instance, an app at the starting stage. When an app grows or scales, using AWS amplify becomes complicated.
So, where is AWS Amplify worth using?
The fact that AWS Amplify is not recommendable to use for a large project does not mean that it is totally of no use; here are some of the projects you can actually work on effectively using AWS Amplify.
MVP Project/Prototypes
When you quickly need to set up a project that will be started over again, Amplify it’s a good choice – the built-in toolbox gives you really quick prototyping, so your MVP will be quickly deployed even for free with an AWS Amplify free tier.
Static site hosting
If you want to host a static web app AWS Amplify is a perfect choice, to be honest, you don’t need to worry about infrastructure, deployments, scaling, CDN and caching – Amplify does it for you.
For any bigger or more complicated projects, I recommend you look for some of the AWS Amplify alternatives like Firebase, Azure App Service, or Supabase, but make sure that they match your requirements. Maybe you have something well-tested else to recommend – drop it below.
Conclusion
As a result, you have seen the positive and negative sides of the solution that AWS Amplify is – in my opinion, Amplify isn’t the best solution to pick when you know that your project will be mid/big scale or you don’t have a well-defined scope of your project, there is also a few cases when Amplify fits right.
Also, what’s important remember that post is written over some period of time but Amplify is growing day by day, and a lot of things can change, so maybe in future, AWS Amplify will be one of the best and only way to develop apps on all scales, from nano to large apps or Amplify will die as not maintained AWS product. ¯\_(ツ)_/¯
In the end, I want you to share your experience, feelings, and use cases of AWS Amplify in the comment section below, I’m sure that more than one of you has a really good experience with that platform.