Generate CloudFormation templates online
Tags: aws, cloudformation
Published: 2019-08-30 10:05:33

> What if you could generate the AWS CloudFormation templates online just the way we generate an AWS IAM policy using policy generator? 

That was just a thought I've had for a long time and I hoped that sooner or later someone would take the bullet and create a web-app or something since authoring long CloudFormation templates is dreadful. But that didn't happen for a long time, what happened was DSLs e.g. GoFormation (in Golang), SparkleFormation (ruby), Troposphere(python), AWS CDK etc. They just pushed the entry barrier for authoring templates even higher, it also took longer to generate templates with them, especially for Administrators who are not always handy with coding. We had few visual tools e.g. AWS CloudFromation designer which doesn't quite justify the title 'a visual editor tool': there's a bit of learning curve to it, generates noisy diagrams for managers or architects and one still has to keep the AWS CloudFormation docs open in a separate tab and refer to it back and forth and manually write json anyway. There are some useful IDE plugins with intellisense but much of the writing and looking up is still left to the authors. _I found all existing tools lacking in **Quick Adaptability**_. 

So I decided to create [CloudKast](https://krunal4amity.github.io) - an online AWS CloudFormation template generator. Even though the tool is still under developement preview, it already can support many features that one would expect from a visual IDE for CloudFormation. It allows not only generating a cloudformation template but you can also import an existing template and continue editing it further. It also provides template validation against your individual AWS account. Thus CloudKast allows you to focus on the big functional picture of your architecture. The following are the features of the tool. 

- An intuitive form-based UI interface.
- Inline description of each Resource Property with valid values it can hold wherever applicable.
- Required, conditional or optional properties are highlighted differently.
- Form validation for each section to ensure that 'required' fields are filled in.
- An 'intrinsic function' widget to generate functions.
Auto-populating function fields e.g. Ref, Fn::FindInMap, Fn::GetAtt
- A 'Property Dealer' widget next to each custom property of a resource i.e. properties that do not hold primitive values.
- Import functionality to import existing (json) templates for further modification.
- Supports Yaml
- A copy button next to each section, to be mainly used while modifying an imported template.
- 'Download' option to download the template to local comupter.
- Upload option to upload the template securely to an AWS s3 bucket.
- Validate the template securely by providing AWS credentials of your AWS account.
- A sleek, simple and easy-to-use UI interface
- Provides 'How-To' videos to further reduce the little learning curve required.
- Runs fully within the browser memory with no backend. 

I would request you to give it a try and let me know your feedback on the tool. Looking forward to hearing from you, till then happy coding.