Quick Start
A Launchfile describes what your application needs to run. Create a file called Launchfile (no extension) in your project root:
Minimal example
Three fields and a start command — the simplest possible Launchfile:
name: my-app
runtime: node
commands:
start: "node server.js" Adding a database
Declare what your app needs. The platform figures out how to provide it:
name: my-app
runtime: node
requires:
- type: postgres
set_env:
DATABASE_URL: $url
commands:
start: "node server.js"
health: /health The $url expression is resolved at deploy time — the platform provisions Postgres and injects the connection URL into your environment.
Validate with the SDK
Use the TypeScript SDK to parse and validate your Launchfile:
import { readLaunch, validateLaunch } from "launchfile";
const app = readLaunch(`
name: my-app
runtime: node
requires: [postgres]
commands:
start: "node server.js"
`);
const result = validateLaunch(app);
if (!result.success) {
console.error(result.error.issues);
} Run it
Launchfile has two modes: Docker for quick, self-contained runs, and native macOS for local development.
Docker (default)
Run any catalog app with one command — no source code needed:
npx launchfile up ghost
# Pulls Ghost + MySQL, wires everything, starts at http://localhost:2368 Ghost starts with MySQL, health checks, and persistent storage — all from pre-built images. When you're done:
npx launchfile down --destroy
# Removes all containers and volumes — 100% clean Native macOS (for development)
For local development, clone a repo and run natively — databases via Homebrew, runtimes via version managers, no containers:
git clone https://github.com/TryGhost/Ghost
cd Ghost
npx launchfile up --native
# Installs Node via fnm, MySQL via Homebrew, runs Ghost from source Now try it with your own app — create a Launchfile in your project root, then run npx launchfile up.
Next steps
- Browse the app catalog for >50 ready-to-launch apps
- Browse real-world examples from minimal to multi-component
- Read the full specification for every field and expression
- Explore the SDK reference for parsing, validation, and serialization