🌐 US-Proxy
data-no-tracking="true">
V2 beta Amber 2 is ready for beta testing. Install the beta →

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, request schemas, and local assets working together.

Crystal 1.20+ · latest stable recommended Amber 2.0 beta amber_cli V2 · standalone

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 · V2 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 →
Explicit preview

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 clean web app runs without choosing an ORM or front-end bundler.

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.

Measured on the smallest target

21,795 requests a second.
On one small server.

Amber V2 sustained this median on a DigitalOcean Basic one-vCPU, 512 MB-class Droplet—the $4/month size when the lab ran on July 17, 2026. This was a mixed 1,000-route application with real HTTP sockets, not a static-response shortcut.

Hosted median 21,795 req/s

Current JSON request path · HTTP/1.1 keep-alive

Target
1 shared vCPU · 512 MB
Routes
1,000 mixed endpoints
Load
16 connections
Trials
7 rotating repetitions
Responses
18,728,053 successful
Errors
0 socket · 0 non-2xx

Then we measured this website

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

On August 11, 2026, this release candidate ran on the same $4 target. Its complete 26 KB homepage sustained a 5,907 req/s median. It then held 1,000 WebSocket clients with zero connection errors while its rendered JSON path still sustained an 8,058 req/s median.

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

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

Ecosystem preview · persistence

Grant keeps the records straight.

When an application needs a relational data layer, Grant is the V2 ecosystem path for models, migrations, relations, validations, callbacks, and queries. The core web template does not install an ORM by default, so the preview stays an intentional choice.

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