// the find
openchoreo/openchoreo
OpenChoreo is a developer platform for Kubernetes
OpenChoreo is an opinionated Internal Developer Platform that wraps Kubernetes with higher-level abstractions — components, environments, deployment pipelines, endpoints — so developers never write raw manifests. It ships a Backstage portal, built-in Argo-based CI, GitOps, and observability out of the box. Targeting platform engineering teams who are tired of assembling their own IDP from scratch and want a production-ready foundation with clear dev/platform separation.
The Platform API built on CRDs is the right call — platform engineers define ComponentTypes, Traits, and Workflows declaratively rather than writing glue controllers, and the golden-path model means policy enforcement is structural, not advisory. The multi-plane architecture (control/data/CI/observability as distinct planes) maps cleanly to operational boundaries and lets you, say, swap the CI plane without touching workload routing. The project has real production ancestry from WSO2 Choreo SaaS, which means the abstractions were stress-tested against actual teams, not invented in a vacuum. Three purpose-built AI agents (SRE, FinOps, portal assistant) ship as first-class components with their own auth, MCP integration, and middleware stacks — this isn't a bolt-on.
Every CRD in the repo is still v1alpha1, so the API is explicitly unstable; early adopters will absorb breaking changes during upgrades and that's not a theoretical risk with a project at this stage. The dependency surface is enormous — Backstage, Argo Workflows, cloud-native Buildpacks, cert-manager, plus all your existing cluster tooling — and when something breaks in that stack the blast radius is the entire developer platform, not just one service. The three AI agents are Python (with their own uv.lock dependency trees) buried inside an otherwise pure-Go repo, which creates a hidden polyglot maintenance burden not obvious from the top-level pitch. The 'complete platform' approach means you're adopting WSO2's opinionated topology; anything beyond what ComponentTypes and Traits model pushes you toward forking controllers rather than extending cleanly.