A blazing-fast headless CMS. Stream content of any size with built-in versioning, workflows, and multi-tenant support.
Built for developers who need speed, flexibility, and reliability.
Simple, intuitive REST endpoints. Use from any language or framework. Works with curl.
Draft, pending, and live states. Move content through approval workflows before publishing.
Every change is tracked. Roll back to any previous version with a single command.
Isolate content by tenant. Perfect for SaaS applications and agencies managing multiple clients.
Store content in S3, Wasabi, databases, or custom backends. Your data, your infrastructure.
Manage content from the command line. Create, update, publish, and rollback with simple commands.
Install the CLI and start managing content immediately.
Clone the repository and build the server using Go. Configure storage with environment variables.
$ git clone https://github.com/abrayall/velocity.git
$ cd velocity
$ go build -o velocity-server ./server
# Configure S3/Wasabi storage
$ export S3_ENDPOINT=s3.wasabisys.com
$ export S3_BUCKET=my-bucket
$ export S3_ACCESS_KEY_ID=your-key
$ export S3_SECRET_ACCESS_KEY=your-secret
$ ./velocity-server --port 8080
Velocity 0.1.0 server is ready!
Build the CLI tool to manage content from the command line.
$ go build -o velocity ./cli
$ ./velocity --help
Velocity CLI - Headless CMS client
Usage: velocity [command]
Commands:
content Manage content
schema Manage schemas
version Show version
Start creating and managing content with the CLI or curl.
$ velocity content create articles my-post -d '{"title":"My Post"}'
Created articles/my-post
$ velocity content list articles
ID TYPE STATE MODIFIED
my-post articles live 2025-01-15
Use the CLI or curl to interact with your content.
$ curl -X POST https://velocity.example.com/api/content/articles/hello \
-H "Content-Type: application/json" \
-H "X-Tenant: demo" \
-d '{"title": "Hello World", "body": "Welcome!"}'
{
"id": "hello",
"type": "articles",
"state": "live"
}
$ curl https://velocity.example.com/api/content/articles/hello
{
"title": "Hello World",
"body": "Welcome!"
}
$ curl https://velocity.example.com/api/content/articles
{
"items": [
{"id": "hello", "type": "articles"},
{"id": "welcome", "type": "articles"}
],
"count": 2
}
$ curl -X POST https://velocity.example.com/api/content/images/logo \
-H "X-Tenant: demo" \
-F "[email protected]"
{
"id": "logo",
"type": "images",
"content-type": "image/png"
}
Deploy Velocity and start managing your content today.