I'm looking at a PBI in our backlog that describes creating a CTA Widget Bar that is essentially a headline and 0-4 CTA buttons horizontally aligned.
Each button can be configured for label, URL, target, size, light|dark
The PBI indicates to create 4 copies of the fields, so CTALabel1, CTALabel2, etc. In my opinion, this flat structure is too denormalized, doesn't scale well, and just feels like an anti-pattern. I offered up an alternative which I believe follows more the way Kentico intends you to design content. This would basically be to create a LinkItem content type that gets stored in the content hub. Authors create their links here, and then they can be selected as "children" from widgets. In fact, if you make them generic enough, they can be a CTA, a Link, a Nav item, anything that uses a URL.
I got some pushback that this solution was overkill, overengineered, "it's just a simple button," or "we won't be reusing these very often." Further, to keep myself in check, I had my own concerns, mostly in terms of the potential disjointed editing experience requiring the author to go to the hub first, create the content, then hop back to PageBuilder to select the items. My next plan was to test that theory out, because if Kentico allows for the ability to create content items (and folders) in the hub on the fly from PageBuilder, then that squashes that concern. That essentially then puts the onus of good organization of content items in the hub on the authors which I don't consider a problem.
While my gut tells me my solution is probably the right call, I wanted to discuss with the community here so I could at least come back to the team with some extra input from the community on best practices.
Environment
Xperience by Kentico version: [30.11.2]
.NET version: [10]
Execution environment: Private cloud (Azure)]