V2 web beta Framework beta.5 · Aug 13, 2026 · CLI 2.0.6 · Aug 13, 2026 What shipped →

Amber 2 · A Crystal web framework

Build the business.
Not the boilerplate.

Amber gives one developer a verified path from installation to a running Crystal web application—with routes, controllers, ECR views, typed configuration, Grant models, Micrate migrations, and local assets working together.

ImageCrystal 1.20+ · latest stable recommended ImageAmber 2.0.0-beta.5 · Aug 13 amber_cli 2.0.6 · Aug 13
$4smallest server target
5,907full homepage req/s
1,000joined WebSockets · 0 errors
See the complete human-readable test →

First run, illustrated

From Homebrew
to localhost.

The web application is the default. Replay the trusted Homebrew install, create the app, and watch the generated page open.

amber-v2 — zsh
Exact guide
# web is the default
http://localhost:3000
my_app Amber V2 beta

Amber V2 · Web application

Your new idea
starts here.

my_app is running. Your first route, view, and locally served CSS and JavaScript are ready to shape.

Server rendered Crystal powered Ready to customize

First edits

Make it yours.

  1. 01
    Edit the pagesrc/views/home/index.ecr
  2. 02
    Add a routeconfig/routes.cr
  3. 03
    Generate a controlleramber generate controller Posts
Generated by Amber CLIBuilt with Crystal

Choose the application

Web by default.
Native when invited.

amber new my_app creates the supported web application. Choose the separate native preview when you are ready to supply and test its platform toolchains.

</>Default · release-gated beta

Web application

HTTP server, routes, controllers, ECR views, locally served CSS and JavaScript, configuration, and the complete first-run path.

amber new my_app
# equivalent to --type web
Start with the web template →
Preview · outside web gate

Native application

A cross-platform preview for macOS, iOS, and Android using Asset Pipeline UI, FSDD process managers, crystal-audio, and platform build scripts.

amber new field_app --type native
macOS, iOS, and Android are generated today. Linux native UI bindings remain frontier work. Explore the native frontier →

Framework core

Opinionated where
the path should be clear.

Amber connects routing, controllers, ECR views, typed configuration, request schemas, generators, and diagnostics in one application structure that developers and coding agents can inspect.

Conventions that connect

Generated files land in predictable places, routes select explicit pipelines, and the web app starts with Grant, SQLite, ECR, and local front-end assets already connected.

Native performance, familiar memory

Compile type-safe Crystal to a native service while retaining garbage collection familiar to Ruby and Elixir developers.

Self-documenting schemas

Define request contracts once, validate incoming data into typed values, and expose machine-readable API documentation from the Schema API.

AI

Tooling for coding agents

Predictable project structure, schema metadata, and bundled LSP diagnostics make routes, request contracts, and convention errors easier for people and agents to follow.

One development loop

Create, generate, test, build, inspect, and watch the application through amber, the standalone CLI used throughout the supported beta path.

Cross-platform frontier

Ship the web path now and evaluate native macOS, iOS, and Android foundations without pretending Linux UI bindings are finished.

The public site, measured on the smallest target

One $4 server.
5,907 real pages a second.

On August 11, 2026, the complete 26,271-byte Amber homepage sustained a 5,906.72 req/s median on a DigitalOcean Basic one-vCPU, 512 MB-class Droplet—the $4/month size when the lab ran.

Not a static-response shortcut

A complete Amber page, plus 1,000 open channels.

The same application then held 1,000 WebSocket clients with zero connection errors while its rendered JSON path sustained an 8,058 req/s median. The site you are reading is the workload.

Full homepage
5,907 req/s median
Agent index
14,085 req/s median
WebSockets
1,000 connected · 0 errors
JSON with 1,000 sockets
8,058 req/s median
Framework request path · July 17, 202621,795 req/s median

A separate mixed 1,000-route JSON workload on the same server class completed 18,728,053 successful responses across seven rotating repetitions with zero socket and non-2xx errors.

Amber beta.5 schema contract · Aug 13, 202619,488 validated JSON req/s median

The released path parsed, routed, validated an eight-field request, ran the action, validated its response, and returned 7,974,608 successful responses across the four JSON, CBOR, and COSE scenarios.

Read both workloads before repeating the numbers. The 1,000-connection run used idle joined clients, and its sequential stages were noisy rather than a clean scaling curve. Neither result is a promise that every application, database, proxy, or traffic shape will perform the same way.

Opening a live Amber channel… /ws · site:proof · local ES module
Grant organizing application records in a large archive warehouse AF-014 · Records

Supported web path · persistence

Grant keeps the records straight.

Grant is the default V2 relational layer for models, relations, validations, callbacks, and queries. Amber CLI pairs it with SQLite and Micrate out of the box, then verifies a real generated create-and-update path before release.

Typed modelsAuditable migrationsReadable queries
Chibi Amber standing in a hero pose and giving a peace sign

The philosophy behind the defaults

Learn Amber's Way.

These six principles show up in practical decisions: coherent generators, explicit boundaries, fewer required dependencies, honest preview labels, and documentation that treats a developer's time as part of the product.

Read Amber's Way