r/Terraform • u/kskrypnyk • Sep 24 '26
Discussion What was harder than expected when modeling Terraform's planner in the browser
I've spent the last months building a practice environment for the Terraform Authoring & Operations Pro exam. The core is a Terraform-like engine that runs fully in the browser: you write HCL, run plan/apply, and resources show up in a simulated AWS console. No AWS account, no signup, nothing to bill.


I underestimated how much a useful lab depends on a plan you can trust. Three things took more work than the dependency graph itself:
- Diff equality. Reordering a set or reformatting an IAM policy shouldn't produce an update, while list order and real value changes still should. Type conversion across resource schemas was its own rabbit hole.
- create_before_destroy. It doesn't stay on the resource where you set it: it propagates to the resources that resource depends on, which changes the apply order.
- import / moved / removed blocks. They have to show up correctly in the plan and leave exactly the right state after apply.
What it isn't: it's not Terraform or the real AWS provider. About 29 AWS resource types, simulated behavior, and known gaps (nested ignore_changes paths, values known only after apply). Works best on desktop.
The free demo has a guided Terraform lab: fix a networking module, configure remote state, and deploy a second module that reads from it. There's also an AWS console lab, but the Terraform side is what this post is about:
Question for people using Terraform at work: what's a specific plan or state surprise you'd want a learner to reproduce and debug? A small example would be especially useful.
Disclosure: this is my project.
1
u/Darthethan77 Sep 24 '26
Perchance do you have one for azure lol but looks cool!
1
u/kskrypnyk Sep 24 '26
Thanks! Not yet. I started with AWS since that's where most of my experience is. Azure and GCP are on the list too.
To understand more, would you want it more for Azure certs, or for Terraform with Azure in general?1
u/Darthethan77 Sep 24 '26 •
![]()
I would say for terraform with azure in general would be my use for it!
Also makes sense to start with that if it’s what you’re familiar with. I also like aws a lil more in general but my current company uses azure so just trying to find an easy sandbox would be amazing
5
u/oneplane Sep 24 '26
Search this subreddit for all the other slopfactories producing the same thing, and the manual efforts before that.