Documentation Index
Fetch the complete documentation index at: https://docs.emergence.ai/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart: Hello Solution
By the end of this tutorial you will have a FastAPI service running in a local Kubernetes cluster, packaged as a Helm chart that wraps the platform’sem-service base chart, and reachable by curl. Total time: 30 minutes or less. If it takes longer, that’s a guide bug — please report via the 👎 thumbs at the bottom of this page.
This tutorial is self-contained: every prerequisite, command, and config snippet is in this page. You do not need access to any internal repository to follow it.
Prerequisites
Install these tools. Versions are floors, not pins — newer is fine.| Tool | Version | Purpose |
|---|---|---|
| Docker | 24+ | Container runtime for Kind |
| Kind | 0.20+ | Local Kubernetes cluster |
| kubectl | 1.28+ | Kubernetes CLI |
| Helm | 3.13+ | Package manager for Kubernetes |
| uv | 0.4+ | Python project manager |
- macOS
- Linux
What you’ll build
A solution calledhello-solution with one component (api) that exposes:
GET /healthz→{"status":"ok"}for k8s probesGET /echo?msg=...→ echoes the message back
em-service v0.0.16 with alias: api, so you’ll see how multi-component solutions extend (just add another alias).
Steps
Write the Helm chart
The chart declares one
em-service subchart, aliased as api. The platform’s em-service (v0.0.16) handles Deployment, Service, probes, env vars — you only configure your image and ports. To add a worker later, you’d add another em-service entry with alias: worker and configure it under that alias key in values.yaml. See em-service Chart for the full values reference.Create a Kind cluster and load your image
kind load docker-image makes your local image available inside the cluster without a registry.Install the chart
em-service from ghcr.io/emergenceai/em-charts (this is a public registry; no auth needed).What you just did
You wrapped a 25-line FastAPI app in a Helm chart that depends on the platform’sem-service base chart, deployed it to a namespace named em-<solution> (the platform convention), and reached it via port-forward. You did not configure auth, secrets, storage, or LLMs yet — those are the next how-tos:
Register a solution
Make this naming + namespace pattern systematic.
Authenticate users
Protect
/echo with JWT validation.Manage secrets
Wire a secret-backed env var into your chart.
Local development
Loop faster with docker-compose + hot reload.

