# Launchpad > A Pracht showcase. Project management for humans, with the same operations exposed to agents as typed capabilities. ## Pages - [/](/) - [/agents](/agents): supports `Accept: text/markdown` - [/app](/app) - [/app/approvals](/app/approvals) - [/app/audit](/app/audit) - [/app/settings](/app/settings) - [/blog/per-route-rendering](/blog/per-route-rendering) - [/blog/why-pracht](/blog/why-pracht) - [/playground](/playground) - [/pricing](/pricing) ## API - [/api/admin/approvals](/api/admin/approvals): GET, POST - [/api/auth/login](/api/auth/login): POST - [/api/auth/logout](/api/auth/logout): POST - [/api/demo/reset](/api/demo/reset): POST - [/api/health](/api/health): GET ## Capabilities - [agent.brief](/api/capabilities/agent/brief): POST (read) — House rules for autonomous callers: which tools exist, which are gated, and how the archive approval flow works. Verified agents only. - [agent.whoami](/api/capabilities/agent/whoami): POST (read) — Report the verified Web Bot Auth (RFC 9421) identity Launchpad established for this request. - [projects.archive](/api/capabilities/projects/archive): POST (destructive, requires confirmation) — Permanently archive a project. Requires a human approval before it runs — the caller receives a confirmation token, then waits for a reviewer. - [projects.create](/api/capabilities/projects/create): POST (write) — Create a new Launchpad project. The project starts in the 'building' status. - [projects.deploy](/api/capabilities/projects/deploy): POST (write) — Ship the current build of a project. Pass a stable idempotencyKey to make retries safe. - [projects.search](/api/capabilities/projects/search): POST (read) — Find Launchpad projects by name or summary. Returns id, name, status, environment and deploy count.