vibe-backend SDK
Write your backend
in plain language.
Describe each API in a Markdown file. vibe-backend compiles it into a reviewed lock file and a signed manifest, then runs every request serverless with a cold start.
How it works
One Markdown file in. A real API out.
The example below follows §11.5 of the spec: a v2 endpoint that reads a user.
# Get user
GET, path /users/v2/{id}, where id is a uuid.
Use user.get to fetch the user and return 200 with
id, email and name; if not found, return 404 NOT_FOUND.
In v2 the name field is called display_name.
GET /users/v2/7d1e0c52-5b8a-4f0e-9a51-3c2f8e6b1a90
Authorization: Bearer <access token>
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "7d1e0c52-5b8a-4f0e-9a51-3c2f8e6b1a90",
"email": "ada@example.com",
"display_name": "Ada"
}
HTTP/1.1 404 Not Found
{ "error": { "code": "NOT_FOUND", "message": "…", "request_id": "…" } }
In between, the compiler writes get-user.lock.md with fixed sections (## Route, ## Request, ## Response, ## Transform, ## Steps, ## Errors). The runtime only ever reads confirmed locks — never your prose.
Three stages
From intent to production.
- 01
Source
Write
{feature}.mdin natural language: what it does, input, output, errors and permissions. - 02
Lock
The compiler emits a structured
{feature}.lock.md. An independent, deterministic validator checks it, and an owner confirms it in the PR. - 03
Manifest
On deploy, confirmed locks are merged into a single signed manifest. Each request runs serverless with a cold start.
Best practices, built in
Security you don’t have to write.
Development activity
This month, day by day: October 2026
Since Oct 14
Merged pull requests per day, last 12 months
Show active days as a table
| Date | Merged PRs |
|---|---|
| 47 | |
| 6 | |
| 88 | |
| 31 | |
| 18 |
Scope: all 6 public repositories in the vibe-backend GitHub organization — .github, sample-envelope, sample-hello-world, sample-shop, sdk, vibe-backend.github.io. Days use Hong Kong time (UTC+8) and each PR’s merge time; totals’ lines are the PRs’ additions and deletions. Fetched from the GitHub API at build time (2026-10-18 18:37 UTC).