cf

cfnlite - a simple and sensible CloudFormation generator

Hacker News

cfnlite - a simple and sensible CloudFormation generator

TL;DR cfnlite is yet another YAML based config file format, but its the last one, I promise. <insert-relevant-xkcd> I wanted to create a CloudFormation generator with a simple interface and better devUX. Longer version: So I've recently found myself in a somewhat low code team which is pretty adamant on using CloudFormation for all IaC (we're all in on AWS). My background is mostly in building on-prem data centres and realtime video, so I'd never worked on "the cloud" before now. So, I spent the first two weeks speed running AWS basics and then another two weeks looking into IaC, mostly writing CFN. Very quickly I realised that working with raw CloudFormation is an PITA. I tried everything to create sensible, reusable, modularised templates - you know the kind of ideals most of our other code is built on - but it just become a pile of parameterised garbage. Anyways, I then discovered all the options for imperative IaC (CDK, troposphere etc), and had a mess about with those. Heres a hot take: I actually think YAML is better than most of the imperative stuff for at-a-glance debugging/understanding. Regardless, I knew for sure the team was never going to agree with using any of that (they said so lol). So I decided to build a little library for myself so that I could at least generate CFN for my own work. One thing lead to the other and I decided I could make some kind of CLI tool that takes a small config file and generates the CFN. That way, I wouldn't even need to write custom CDK code for each new CFN template I wanted to make. And thus the beginnings of cfnlite was born. It kind of started with a series of "What if..." type questions: - What if I could generate CFN from a small config, what would that config look like? - What if I didn't have to actually remember what CFN calls each type of resource? - What if it gave me all the required fields with some defaults? - What if I could validate types without needing to run the template? - what if the library could resolve dependecies and do all the !Ref/DependsOn stuff? - What if it had loops and simple ternary conditions? (haven't answered this one yet) After a while I realised I could create something in a language agnostic interface, an interface that the team already knew but would also hugely simplify mine - and hopefully my teams lives. I'm also a compiler nerd so I was never going to let the chance to write a code generator pass-up. I recognise to most I've just recreated a shoddy terraform (although this tool is heavily inspired by Ansible, my fav YAML based IaC) that nobody else will probably ever use but within my constraints, it solved a real problem and more importantly, has been super fun to work on. How it works Its basically a wrapper around troposphere: - yaml config comes in, it gets parsed - cfnlite builds a dependancy tree based on ref's and DependsOn - maps user input to troposphere objects for each resource (most of the logic is here) - spits out the template to stdout or a file

Share card

Actual performance

3points
Did not reach leaderboard

Launch Intel predictions

Analyze your own launch →
Product HuntOn track for Day 1 leaderboard · Strong signals: user, new, using · Missing: mac, agents, macos
91%91% predicted probability of success on Product Hunt, based on ML models trained on real launch data.
best fitHighest predicted score across all platforms for this description.
Indie HackersFits the IH revenue-focused audience · Strong signals: created, started, para · Missing: supports, reddit linkedin, podcasting
88%88% predicted probability of success on Indie Hackers, based on ML models trained on real launch data.
Hacker NewsStrong engagement from HN community · Strong signals: ide, io · Missing: https docs, excited, just released
58%58% predicted probability of success on Hacker News, based on ML models trained on real launch data.
nativeThis product was originally launched on this platform.
AppSumoStrong fit for a featured deal · Strong signals: interface, calls · Missing: plus, platform, intuitive
56%56% predicted probability of success on AppSumo, based on ML models trained on real launch data.
TrustMRRLess likely to generate early MRR · Strong signals: video, way, para · Missing: mobile apps, ios, personal
46%46% predicted probability of success on TrustMRR, based on ML models trained on real launch data.
Acquire.comPre-revenue stage for this audience · Missing: arr, mrr, revenue
17%17% predicted probability of success on Acquire.com, based on ML models trained on real launch data.
BetaListMay not resonate with beta-testers · Missing: web3, chat, crypto
0%0% predicted probability of success on BetaList, based on ML models trained on real launch data.

Incorrect prediction on native model

Similar products

Si
Simple Colorful HEX, RGB and HSL generator.34%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Simple Colorful HEX, RGB and HSL generator.

Hacker News4
A
A simple Passphrase Generator40%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

A simple Passphrase Generator

Hacker News1
Cl
Clex – simple lexer generator for C40%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Clex – simple lexer generator for C

Hacker News2
Si
Simple Highcharts Generator42%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Simple Highcharts Generator

Hacker News6
I
I made a simple AI Flowchart generator27%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

I made a simple AI Flowchart generator

Hacker News3
Si
Simple gitignore generator on the web – GUItignore51%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Simple gitignore generator on the web – GUItignore

Hacker News2
I
I built a simple Cron Expression Generator62%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

I built a simple Cron Expression Generator

Hacker News4
Uu
Uuid.now F# based simple UUID generator56%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Uuid.now F# based simple UUID generator

Hacker News5
In
In memory of Bob Ross, a simple painting generator, Gogh53%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

In memory of Bob Ross, a simple painting generator, Gogh

Hacker News90
A
A Simple Resume Generator43%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

A Simple Resume Generator

Hacker News22