vibe-backend
EN繁

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.

Get startedRead the spec ›

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.

api/users/v2/get-user/get-user.md
# 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/{id}
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.

  1. 01

    Source

    Write {feature}.md in natural language: what it does, input, output, errors and permissions.

  2. 02

    Lock

    The compiler emits a structured {feature}.lock.md. An independent, deterministic validator checks it, and an owner confirms it in the PR.

  3. 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.

1 hMaximum access-token lifetime. Refresh tokens rotate on every use.
12+Minimum password length, plus a breached-password check.
5 / 15 minFailed logins before an account is locked for 15 minutes.
< 1 sp95 cold-start target for every request.

Explore all features ›

Development activity

This month, day by day: October 2026

Since Oct 14

190Merged pull requests
+129,874Lines added
−23,947Lines deleted

Merged pull requests per day, last 12 months

190 merged pull requests from 2025-10-19 to 2026-10-19, on 5 active days. Busiest day: 88 contributions on 2026-10-16.One contribution = one merged pull request in any repository of the organization, counted on its merge date (Hong Kong time).
Show active days as a table
190 merged pull requests from 2025-10-19 to 2026-10-19, on 5 active days. Busiest day: 88 contributions on 2026-10-16.
DateMerged 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).

Start with a single file.

Quick startBrowse the docs ›