Inspiration
Having been new developers on old projets, we know the horrors of joining development on a massive codebase: a mountain of IaC, database migrations, business rules, routes, and other project-specific quirks. And then, once you become familiar with a codebase, design starts to drift from specs, confluence pages go unupdated, and suddenly nobody knows how one small change might take down the whole app. RippleMap is here to calm your nerves and lower the barrier to entry on a new project.
What it does
RippleMap reads your project's IaC and source code to map infrastructure to behavior and turn it into an interactive tour. See which resources interact with which files, and see how a migration might affect your project as a whole. Ask questions to the graph at any point if you don't understand what a component, function, or resource does.
No longer do you have to worry about what might break if you make a subtle change; you can specify a Terraform plan to see what will be affected by your changes. You'll get a tour through what will change, why, and what you should do to prevent your tiny change from rippling into a system-wide failure.
How we built it
The core of the is a Terraform/CloudFormation parser that maps your IaC to recognizable cloud components. We cross-reference these components with your codebase and use Google Gemini to figure out which parts of your codebase touch which components. Your code is never stored; instead, we reference lines and git hashes to put your project together. ElevenLabs is used to give a voice to your tour; a calm guide walks you through your project and lets you learn audibly and visually at the same time.
We use the graph data to figure out which resources are connected to each other. This allows us to see the blast radius of changes to your infrastructure. This is what we use to demonstrate the effects of a new terraform plan as well.
Challenges we ran into
Deciding on the approach was definitely the hardest. We believe very deeply in the utility of this app, and naturally wanted to grow it to be a full-scale application. Reeling it back and focusing on a few core functionalities within the 24 hour period was the longest up-front part. After that, it was just a matter of getting it done.
Accomplishments that we're proud of
Our application doesn't lie to you; many generative-AI based applications pass off AI-generated answers as the ground truth. RippleMap tells you when it's guessing, how confident it is, and the core functionality of the app is completely deterministic. AI is used to supplement, not to invent.
We're most proud of the fact that we built an app that we ourselves are excited to use on an upcoming project. Again, we stand by the utility of our app, and we hope it can help any newcomers to projects.
What we learned
We learned a lot about HCL as a whole! We were both pretty familiar with AWS CDK and CloudFormation, but we understand that supporting Terraform is more important to reach a wider audience. Parsing the HCL and retrieving the important data was a big learning experience for me.
What's next for RippleMap
We want to support more architectures; at the moment, RippleMap only supports AWS-based CRUD-like projects. We can map complex interactions, but concepts like Kubernetes clusters, CI workflows, and the many other cloud providers are also important. We had to reduce scope for today, but that doesn't mean we won't continue to build this out in the future.
Log in or sign up for Devpost to join the conversation.