
Productivity. Performance. Happiness.
Amber makes building web applications fast, simple, and enjoyable - with fewer bugs and blazing fast performance.
Welcome! Introducing Amber
Amber 2.0.0-beta.2 is available for testing. It is a pre-release: use it for evaluation and new projects that can tolerate breaking changes, not for production workloads. The supported beta path is an ECR web application created by the standalone Amber CLI. See the beta installation guide for supported platforms and an end-to-end verification procedure, or the migration guide when upgrading an Amber 1.x app.
Amber is a web application framework written in Crystal inspired by Kemal, Rails, Phoenix, Flutter and other popular application frameworks.
The original purpose of Amber was not to create yet another framework, but to take advantage of the beautiful Crystal language capabilities and provide engineers and the Crystal community with an efficient, cohesive, well maintained web framework that embraces the language philosophies, conventions, and guidelines.
This is still mostly true, however, in the era of AI things are changing. Amber is embracing the use of AI for coding help and has begun making significant changes to support enabling automous AI assistants (aka coding agents) for writing projects.
Amber borrows concepts that have already been battle tested and successful, and embraces new concepts through team and community collaboration and analysis, which also aligns with Crystal's philosophy.
How Complete Is Amber?
The goal for V2 is to cover every aspect of a modern web application. Here is where that stands today, honestly:
In this shard now:
- MVC - controllers, ECR views, and a router with named routes, constraints, and API versioning
- Schema API - type-safe request validation and params handling
- Background jobs - built-in work-stealing job system with retries and a dead-letter queue
- Transactional emails - built-in mailer with SMTP and memory adapters
- WebSockets - channels with presence tracking, message decoders, and connection recovery
In the wider V2 ecosystem:
- CLI with generators, dev workflow, and an LSP server - amberframework/amber_cli
- Persistence, authentication, and native-app generators are preview surfaces. They are not part of the supported beta web-app path yet.
On the roadmap (not built yet):
- Cloud file storage, users & authentication, audit logging, API documentation generation, reactive views, MCP, and SBOM tooling
How Amber Is Embracing AI
On our blog in April of 2023, it was declared that AI would be treated as a first-class citizen. But, what does that really mean? At the time, I had 3 points:
- Enabling AI for the development process.
- Helping generate and maintain documentation.
- Creating training material for public documentation that can be published and eventually picked up for use in training SOTA models.
Well, a lot has changed since then. The good news is that those objectives are just as relavent now as they were when I put them forward.
1. Enabling AI For The Development Process
Over the last year and a half, code editors that empower AI models that aren't specifically trained on a framework or technology have made significant progress. Cursor is the primary code editor that I've been using since the very beginning. Copilot was a fun introduction, however the real power of developing with an AI model is when you are using a tool like Cursor, Windsurf and other AI-native development environments.
This has lead to the development of documentation as "rules" in the code base itself. Some documentation is explicitly written as rules for Cursor that will automatically be attached to the agents context window when it's doing work. Other documentation will just be markdown files in a /help directory. There's a combination of these two approaches that has been converging over the first half of 2025 that I think will become the prominent method of having models work within knowledge domains that they are unfamiliar with.
2. Helping Generate And Maintain Documentation
When I initially wrote about this, this objective was just a pie in the sky idea. However, all of the models have regressed to a point where this is just an average day writing code. I'm grateful that models have progressed. At this point, I don't have a specific workflow that I've developed outside of just doing things like prompting a model to look at a git diff and then generate some documentation (or update existing documentation) and working with it to reach an acceptable level of clarity and cohesion.
3. Creating Training Material For Public Documentation & Training Material
This part here is actually blurring together with number one. The reason being is because models are moving so quickly that they're gaining such power so fast. In the last two years, models are more than four times what they were since I originally wrote that objective. With the current pace of doubling in capabilities every seven months, I found that we have a better alignment with focusing on patterns with instructions and rules and just clear obvious development patterns that models intuitively understand is more effective than specifically creating training material.
However, I want to be clear that this has not gone away from being a priority. I still think that there's going to be power in coming up with this training material so that we can fine-tune smaller models that people can then run on their local devices. Being able to use these small language models that are specialized in writing crystal and amber specifically is going to mean someone does not have to have a subscription to a very expensive frontier model in order to be productive. People will be able to discover amber, use amber, and use the resources that they already have available and without ongoing budgetary constraints.
Community
Questions? Join our Discord.
Guidelines? We have adopted the Contributor Covenant to be our CODE OF CONDUCT for Amber.
Our Philosophy? Read Amber Philosophy H.R.T.
Documentation
Read Amber documentation on https://docs.amberframework.org/amber
Benchmarks
Techempower Framework Benchmarks - Round 18 (2019-07-09)
- Filtered by Full Stack, Full ORM, Mysql or Pg for comparing similar frameworks.
Installation & Usage
Install the standalone CLI with Homebrew on macOS or Linux:
brew tap amberframework/amber_cli
brew install amber_cli
amber --version
Create and verify a web application:
amber new my_app --type web
cd my_app
shards install
crystal spec
amber watch
The generated shard.yml pins this framework beta:
dependencies:
amber:
github: amberframework/amber
version: 2.0.0-beta.2
Read the complete beta installation guide, including direct-binary installation and troubleshooting.
Have an Amber-based Project?
Use Amber badge
[](https://amberframework.org/)
Contributing
Contributing to Amber can be a rewarding way to learn, teach, and build experience in just about any skill you can imagine. You don’t have to become a lifelong contributor to enjoy participating in Amber.
Tracking issues? Check our project board.
Code Triage? Join us on codetriage.
Amber is a community effort and we want You to be part of it. Join Amber Community!
- Fork it https://github.com/amberframework/amber/fork
- Create your feature branch
git checkout -b my-new-feature - Write and execute specs and formatting checks with
crystal specandcrystal tool format --check - Commit your changes
git commit -am 'Add some feature' - Push to the branch
git push origin my-new-feature - Create a new Pull Request
Contributors
License
This project is licensed under the MIT License - see the LICENSE file for details