We at Syntasso are very proud of the SKE Backstage integration we built. You
apply a Promise, and a Component and a Template automagically appear in your
Backstage instance. You can send requests to the platform via GitOps or
directly via the Kubernetes API. Changes to the Promise regenerate the
Template. You can use an array of CRD properties to control the validation
applied to the form, and you can run custom containers to customise what the
platform generates.
It is great.
Except, it kinda looks like this:

Which is enough to get you started, but it won't necessarily wow the
platform users. It solved the immediate problem for the platform engineer
(how do I expose this service on Backstage?), but it was quite simple on the
visual front. Apparently raw YAML is not everyone's cup of tea… not sure why.
it better.
In this post, we will explore why the interface matters and how it can drive
adoption of your platform. We'll look at what we had before, what we have
learned from our customers, and how we used that learning to improve the
out-of-the-box experience with Backstage. We will then look at what we have
just released to make it even better.