Show HN: KubeForge – A GUI for Kubernetes YAMLs
I'm Brandon, a solo dev, and I built KubeForge - a visual editor for Kubernetes deployments that helps you build and validate YAML configs.
Origin Story: Over the past couple weeks, I got fed up manually writing Kubernetes YAMLs, especially when working with nested structures like containers, env, and volumeMounts. Even small typos or misaligned fields added lost time to broken deploys.
So I started hacking together a tool to visualize the structure of Kubernetes objects based on the OpenAPI schema. That prototype quickly turned into a full manifest builder.
What KubeForge does:
- Pulls the latest Kubernetes OpenAPI schema (auto-updated daily)
- Generates field-level forms with type safety, required fields, and smart defaults
- Lets you visually build manifests like a flow editor
- Outputs clean, deploy-ready YAML, with multi-object exports
Personally, I wanted a tool that:
- Validates fields as I build, not after deployment
- Surfaces nested fields, tooltips, and types without switching tabs
- Lets me export or share real YAMLs easily
Try it out:
GitHub: https://github.com/kubenote/KubeForge
Live demo: https://demo.kubefor.ge
Website: https://kubefor.ge
It’s free and open source. I’d love feedback, bug reports, or ideas. Contributions welcome too .
Thanks, Brandon
What would be far more valuable is a feature that lets users import a Helm chart URL directly into the UI, then visualize and interact with the chart’s values in an intuitive way—no need to dig through documentation. Being able to explore, modify, and export the values in a user-friendly interface would save significant time and reduce friction, especially when working with complex or unfamiliar charts.
In short: instead of manually parsing YAML or hunting through Helm docs, a visual, interactive view of Helm values—especially when tied to a chart URL—would be a game-changer for productivity and usability.
I love the idea to be able to import helm url's (and possibly edit + rehost), the next features are going to be around naming required/most used fields for simplification and decluttering the node components, and adding in support for helm and kustomize with template variables.
Was there anything else that you noticed that you would like to see or anything that you saw that you enjoyed?
You can go from data format (yaml,json,xml, property file...etc) to object graph and the reverse.
1. click configmap in the sidebar
1. observe configmap dialog in the layout
Also observe that the "kind" is "Configmap" but the Kubernetes resource is ConfigMap, as one can see here https://kubernetes.io/docs/reference/generated/kubernetes-ap...
Your tool does the same thing for CronJob being erroneously written as Cronjob so it is a systemic problem
1. expand "data" chevron
1. be sad because nothing else is possible
1. ok, so type "true" into the "immutable" field. It doesn't seem to turn the red icon green. Type "my dog is snoopy". Nothing else changes
Be aware that, yes, there are "status" responses on a bunch of the objects, but to the very best of my knowledge one can never set a "status" because the user doesn't control the status rather reality controls the status, otherwise I'd cheerfully always set my Pods to never CLBO :-P
The color of the fields is not based on right or wrong but based on typing. Green is string, red is boolean, orange is object, purple is array, etc. I can definitely make that more apparent. https://github.com/kubenote/KubeForge/issues/11
As for the empty object, there are a lot of objects are that incomplete that I need to go through and apply manual override definitions for (https://github.com/kubenote/KubeForge/blob/main/src/componen...). Thank you for pointing out the two above. https://github.com/kubenote/KubeForge/issues/12
For the fields that exist but aren't feasible for users to interact with, currently I'm puling in the schemas raw. but I do want to create a preferred fields override with commonly edited and changed fields to reduce clutter. https://github.com/kubenote/KubeForge/issues/13
Thank you for the awesome feedback!
I ran into errors when I tried to download the schema, but then it suddenly started working, not sure why.
My first impression is that even with a high resolution laptop screen you're going to end up doing a lot of zooming in and out even for trivial deployments.
I imported the directory where I created those 3 yaml files and now have 3 connected boxes for the ingress, two for the deployment, and three for the service, but no interconnections between those three groups. It would be nice if the labels were cross connected between those groups, even better if when you were creating those groups from scratch you could specify the labels on one side then draw the edge connecting them and the label would get filled in on the other side and even get updated when one side changes. For example if I created a deployment with app.kubernetes.io/name of kubeforge and then was able to create the service object and link the edge and have that label connect.
1. For the errors on downloading the schema, that is something that I need to bake through and improve. (https://github.com/kubenote/KubeForge/issues/5)
2. To minimalize scrolling around for deployments I want to incorporate a "minimize" feature on nodes so that users can free up space on the graph. (https://github.com/kubenote/KubeForge/issues/6)
3. Interconnectivity is built in but currently only with inline data on nodes. Adding the capability to object refs does make sense. In the future I also want to create generic "string nodes" as a first pass at templating via the node graph. (https://github.com/kubenote/KubeForge/issues/7)
Thank you for kicking the tires and giving me feedback on how to improve! Did you find the concept refreshing? And what would you like to see in it for it to be something that you would actively use?
1. Minimizing nodes into just a name, to get a view of just relationships between resources 2. Auto-organizing the graph. You're already warning about overlapping nodes, might as well give me a way to automatically fix it. 3. Reading existing resources from a cluster
3, in particular, is kind of a whole other type of tool, to view/debug existing infra, instead of creating it, but the UI has the right shape to do that extremely well, too.
I agree with other comments that adding a default example to the demo would be nice. I imported this manifest, and it worked pretty well: https://github.com/kubernetes/examples/blob/master/guestbook...
Are there any other features that you felt are missing or that you think would complement KubeForge?
Having user-challenges with kubefor.ge.
Clicked "Deployment" and then tried "Create metadata node" but it errors:
Missing config in qA_PQ-QAe8tznselScKge Node qA_PQ-QAe8tznselScKge has no values configured.
And:
Overlapping Nodes Node "deployment" overlaps with "undefined".
For the overlapping nodes, I'll also throw an issue for both of those in GH :)
Did you like anything in particular or have a feature in mind that would make this better to you?
--- edit ---
For the metadata node warning, it was stating that the node is created but does not have values inside of it.
--- edit 2 ---
resolved the get.kubefor.ge/latest issue with: https://github.com/kubenote/KubeForge/issues/1 and removed undefined + improved warnings with: https://github.com/kubenote/KubeForge/issues/2
Issues with `get.kubefor.ge/latest`:
Manifest does not match provided manifest digest sha256:a4d6b4a9513289be1c1349afff46f7c87a5ac8513cbd8b66de350f26442d14bf
Works with:
ghcr.io/kubenote/kubeforge:latest
get.kubefor.ge@sha256:a4d6b4a9513289be1c1349afff46f7c87a5ac8513cbd8b66de350f26442d14bf
https://github.com/kubenote/KubeForge/issues/4
Please let me know if there are any features you enjoy or if there is something you would like to see added!