One of my previous blog posts covered how to get started with cdk8s (Cloud Development Kit for Kubernetes), which is an open-source framework (part of CNCF) using which you can define your Kubernetes applications using regular programming languages (instead of yaml).
You were able to set up a simple nginx Deployment and accessed it via a Service – all this was done using Go, which was then converted to yaml (using cdk8s synth) and submitted to the cluster using kubectl. This was a good start. However, since the core cdk8s library is pretty low-level (for a good reason!) the code involved a lot of boilerplate (you can refer to the code here).