Project Overview
"Everybody hates YAML..." that was the title of my rejected KubeCon talk. Even though it was rejected, the thought remains true. Konstellate is a tool that enables users to create complex Kubernetes applications without ever needing to write a single line of YAML.
My Contributions
I was privileged to be able to help shape Konstellate from the ground up with my talented coworker and friend Jeremy Kross. We collaborated on branding, interface design, user experience design, marketing and roadmap.
The Beginning
When Jeremy came to me with the idea of building a Kubernetes application creator I was incredibly intrigued. There is a huge gap in the current offerings around new user onboarding and understanding. He had the shell of the editor built, and while it was powerful it needed some guidance.

Our first task was going to be optimizing the editor.
The Editor
The initial editor was called Onion. That's because like an onion it has many layers (just like an ogre). It in fact was too many layers—and very easy to get lost figuring out what part of the resource you were editing We took a step back and attempted to figure out the optimal way to approach this.
There were quite a few challenges when designing the editor, the main one being it had to follow exactly in line with the YAML it was generating. This meant that we could not break it into separate parts, nor could we do the normal nice-ities of recommendations. Additionally, it was based entirely off of the OpenAPI, which is great because it provides definitions for each element that makes up a resource, it doesn't allow for customization.
Even with all of these challenges, I believe we created an incredibly compelling editor that enables users to easily generate YAML files, and helps them figure out what they need to do it.
The Map
The map is an incredibly powerful tool that allows you to see what makes up a Kubernetes application, and in turn enables you to create complex applications all while preserving versioning.
When presented with the Konstellate map you see each one of your resources or nodes. If you click on one of those nodes you will see a brief description of it. From there you can edit it and even connect it to another node, simply by dragging a line. This is a really unique way of interacting with your resources that enables users to easily make quick updates and edits to an application without ever having to touch YAML.
The Workspace
Each workspace represents a new YAML file or different version of your application. This is really powerful for users who are wanting to release multiple versions for different environments or are doing A/B testing between their applications.
Users can simply drag their entire workspace or an individual node into a new workspace. They can then edit that node to reflect a change, for instance a different version of their applications image. When they go to export their application to a Helm Chart or Kustomize template it will reflect the changes and create appropriate charts to match their definitions.
The Roadmap
We still have a lot of work to do on Konstellate, there are numerous optimizations that we want to do including adding a tree view to the YAML spec, enabling real-time editing by tying it in to running clusters, and packaging it as an electron app so users can run it locally.
While there is still a ton of work, I'm really excited by this project as it's been my first open source project and I'm really excited to see what it becomes. There was an obvious need in the space for an intuitive experience to create applications, and I am thrilled to be on the forefront of that.

Interested in working together?

Say Hello