AWS Amplify has released a brand new CLI Toolchain that makes it easy to create & configure AWS cloud services on the fly directly from your local environment.

The CLI will allow you to add features like authentication, GraphQL APIs, Lambda functions, web hosting, analytics, storage & more to your existing app without leaving your command line.

This CLI complements the AWS Amplify Library to provide an end to end solution for the creation, configuration, & implementation of scalable cloud-enabled applications with a Rails-like experience focusing on developer efficiency. AWS Amplify supports not only JavaScript applications & frameworks like Angular, React, & React Native, but also native iOS & native Android.

Serverless

Many of the AWS Amplify CLI features are serverless, meaning you can hook into an existing battle-tested & scalable solution instead of building, managing & deploying your own infrastructure from scratch.

This CLI & toolchain for the client greatly lowers the barrier to entry for developers & companies looking to build full-stack applications allowing them to not only iterate & experiment quickly, but also giving them the ability to do so at a lower cost.

AWS Amplify also offers an opportunity for traditionally front-end developers to leverage their existing skillset / language specialty & move further up the stack by taking advantage of services like Amazon Cognito for authentication & AWS AppSync, a completely managed GraphQL API, that would traditionally require a back-end developer to implement.

Additional Toolchain Features

Along with the CLI there were also some other major new features released.

GraphQL Transforms

AWS Amplify has added a GraphQL Transformer library that drastically simplifies developing, deploying, and maintaining GraphQL APIs from your local environment. You can define a schema with a basic type(s), add directives for things like data relationships, authorization, or search, and then the the library expands and creates a full AWS CloudFormation template that implements your data model.

GraphQL Codegen

The AWS Amplify CLI has added a new codegen category that plugs into the deployment workflow that automatically downloads the GraphQL introspection schemas from your endpoint, and generates Swift or TypeScript. For Android it also downloads the schema & the code generation happens through Gradle.

This codegen automatically creates the introspection schema as well as GraphQL documents (queries, mutations, and subscriptions) that are compiled into a strongly typed class.

Visual Studio Code Plugin

The AWS Amplify VS Code plugin gives you autocomplete & code snippets for many of the Amplify API features available in the library for use in JavaScript, TypeScript, or JSX files.

UI Component Library

Also check out the beginnings of a new component library that allows you to scaffold out pre-styles & configured components to build out things like authentication & photo-pickers with only a few lines of code.

Client-side Frameworks

While the AWS Amplify CLI supports both native & JavaScript environments, the AWS Amplify library only supports JavaScript for now.

There is also first-class support for JavaScript frameworks like Vue, Angular, React, React Native, & Ionic. The library provides preconfigured components for these libraries to do things like provide an authentication flow, allow for file uploads & file downloads.

My Thoughts

I’m really excited about this project. I had a chance to learn about AWS Amplify before joining AWS back when I was doing consulting. When I saw what they were working on & their vision of the future, I immediately knew that this is where I wanted to be.

AWS Amplify moves us into a new paradigm of application development that we’ve not really seen before, but something that you will undoubtedly be seeing a lot more of in the future.

With these new tools developers have the ability to take advantage of existing managed services, allowing us as developers to do what we do best: develop our applications, write code, create features, fix bugs & experiment.

I think we will begin to see more & more serverless web & mobile engineers that are tasked with not only building out the front-end, but also with understanding how to create, connect to, & configure managed & serverless services. I also see this as a burgeoning job title / role that will eventually be as common as a front-end or back-end engineer.