Build powerful and composable applications with a flexible tool-chain.
A declarative foundation for ambitious Elixir applications. Model your domain, derive the rest.

Write it once

Why do developers keep reinventing the wheel?

Every time you start a new app, are you rebuilding features that you've already built many times? Wouldn't it be great if you could just focus on the important parts of an app without reinventing ways to authenticate, add permissions, etc. Ash allows you to not only use patterns in existing extensions, it lets you extract your own patterns into custom extensions. So when you need to do it again in a new application, it's already done. Just wire it up!

Consistency

A place for everything and everything in it's place

Ash helps keep things neat and organized by providing good patterns for structuring your application. Over time and with larger teams of different experience levels, patterns change and drift away from each-other across our applications. With that said, nothing in Ash depends on what folders or files you put things in, so you are free to experiment or make the choices that make sense to you.

Spaghetti belongs in the kitchen, not in your codebase. Ash provides the ability to keep all similar parts of your application consistent, making it easy to share an architectural vision while allowing escape hatches to do something different if needed.

Incredibly Powerful

Ash is more than it appears

Ash is more than just auto-generated API or an Admin UI. It’s a fully extensible DSL to model your domain, which creates a declarative, highly introspectable representation. This in turn can be used to derive anything you want.

Ash has built in extensions that allow you to generate Admin UIs or Phoenix LiveView Form helpers, saving a ton of boilerplate. Even going as far as fully swapping data layers, Ash lets you do something traditionally extremely difficult with ease.

Brought to you by

"Through its declarative extensibility, Ash delivers more than you'd expect: Powerful APIs with filtering/sorting/pagination/calculations/aggregations, pub/sub, authorization, rich introspection, GraphQL... It's what empowers this solo developer to build an ambitious ERP!"

Frank Dugan III
System Specialist, SunnyCor Inc.

"What stood out to me was how incredibly easy Ash made it for me to go from a proof of concept, to a working prototype using ETS, to a live app using Postgres."

Brett Kolodny
Full stack engineer, MEW

"Ash is such powerful idea and it gives Alembic such a massive competitive advantage that I’d be really stupid to tell anyone about it."

Josh Price
Technical Director, Alembic

"Ash Framework enabled us to build a robust platform for delivering financial services using bitcoin. Ash proved itself to our team by handling innovative use cases with ease and it continues to evolve ahead of our growing list of needs."

Yousef Janajri
CTO & Co-Founder, Coinbits

It wouldn't be possible without our amazing community!

Become a contributor