amber

forked from amberframework/amber
A Crystal web framework that makes building applications fast, simple, and enjoyable. Get started with quick prototyping, less bugs, and blazing fast performance.

amber

Productivity. Performance. Happiness.

Amber makes building web applications fast, simple, and enjoyable - with fewer bugs and blazing fast performance.

Version License

Welcome! Introducing Amber

Amber Framework Demo

This is the current work in progress branch for the future of Amber v2.

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?

An Amber application represents all aspects of a modern (2025 and beyond) web application.

  1. MVC - proven pattern for managing requests and responses
  2. ActiveRecord ORM - proven pattern for managing database records
  3. Background jobs - 2 systems are present to get you started and then grow into as your app is successful
  4. Cloud file storage - upload and store files for users, jobs, etc.
  5. Users & authentication - every app has users and needs authentication
  6. Transactional emails - send emails for important events
  7. Audit logging - because SOC2 demands accountability for our actions
  8. API Documentation Generator - because security demands we maintain knowledge of our code base to test it reguarly
  9. Reactive views - because it's 2025 (or beyond) and we deserve a modern front-end system.
  10. MCP - everyone is going to build AI native apps, welcome to the new future
  11. SBOM - A _S_oftware _B_ill _O_f _M_aterials is necessary for mature certifications, so build with success in mind

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:

  1. Enabling AI for the development process.
  2. Helping generate and maintain documentation.
  3. 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

Add this to your application's shard.yml:

dependencies:
  amber:
    github: amberframework/amber

Read Amber quick start guide

Have an Amber-based Project?

Use Amber badge

Amber Framework

[![Amber Framework](https://img.shields.io/badge/using-amber_framework-orange.svg)](https://amberframework.org/)

Release Checklist

  • Test and release all dependencies
  • Test everything locally
  • Run crelease 0.36.0
  • ensure all documentation is updated
  • update release notes
  • update homebrew version and sha
  • update linux repositories
  • build and deploy docker image:
    • verify Dockerfile is using the latest crystal version
    • docker login
    • docker build -t amberframework/amber:0.36.0
    • docker push amberframework/amber:0.36.0

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.

Open Source Contributors

Amber is a community effort and we want You to be part of it. Join Amber Community!

  1. Fork it https://github.com/amberframework/amber/fork
  2. Create your feature branch git checkout -b my-new-feature
  3. Write and execute specs and formatting checks ./bin/amber_spec
  4. Commit your changes git commit -am 'Add some feature'
  5. Push to the branch git push origin my-new-feature
  6. Create a new Pull Request

Contributors

See more Amber contributors

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

Repository

amber

Owner
Statistic
  • 0
  • 0
  • 0
  • 1
  • 6
  • 22 days ago
  • May 17, 2022
License

MIT License

Links
Synced at

Wed, 20 Aug 2025 14:39:38 GMT

Languages