ash-project / ash
git clone https://github.com/ash-project/ash.git
v3.36.1 · 7d ago
🔥 on GitHub Trending today
Declarative Elixir framework for defining resources, actions, and policies that generate APIs, queries, and business logic.
Why you might care
Ash lets you describe your domain as resources with attributes, relationships, actions, and authorization policies, then derives data access and APIs from that description. It suits Elixir teams building CRUD-heavy or multi-tenant apps who want a consistent, extensible structure instead of hand-written context modules. Extensions add data layers, notifiers, and integrations.
+1
stars, 24h · #13,816
+5
stars, 7 days · #17,332
+40
stars, 30 days · #14,736
2.5k
★ total · +0% this week
462
forks · 105 open issues
Star history (as recorded here)
LanguageElixir
License—
Created2019-10-03 (7y ago)
Last pushtoday
Watchers30
OwnerOrganization
Seen on GitHub Trending
- 2026-10-23 — #5 monthly in elixir · +40 ★
- 2026-10-23 — #5 weekly in elixir · +5 ★
- 2026-10-22 — #2 daily in elixir
- 2026-10-22 — #4 monthly in elixir · +40 ★
- 2026-10-22 — #3 weekly in elixir · +5 ★
- 2026-10-21 — #3 daily in elixir · +1 ★
- 2026-10-20 — #3 daily in elixir
GitHub topics
Links
- GitHub: github.com/ash-project/ash
- Homepage: https://www.ash-hq.org
- Releases · Issues · Hacker News mentions
README excerpt
# Ash Framework Welcome! Here you will find everything you need to know to get started with and use Ash. This documentation is best viewed on hexdocs. ## Dive In - What is Ash? - Getting Started Tutorial - See the roadmap ## About the Documentation The Get Started Livebook **Tutorial** introduces you to the core concepts of Ash like resources, actions, and relationships. It’s a great place to start if you are a beginner. --- **Topics** provide a high level overview of a specific concept or feature of Ash. These are **understanding-oriented**, and are perfect for discovering design patterns, features, and tools. --- **How-to** guides are **goal-oriented** recipes for accomplishing specific popular tasks. Browse to get an idea of how Ash works and what is possible with it. --- **Reference** documentation is **information-oriented**, covering every Ash module, function, expression, and DSL. It is produced automatically from our source code. Use the sidebar and the top search bar to find relevant reference information. Place the text `dsl` before your search to quickly jump to a particular DSL — e.g. try comparing the results of searching for `name` with the results for `dsl name`. --- ## Topics ### About Ash - What is Ash? - Our Design Principles - Contributing to Ash - Alternatives ### Development - Project Structure - Generators - Testing - Working with LLM Assistance - Development Utilities - Backwards Compatibility Config - Upgrading to 3.0 - Error Handling ### Resources - Domains - Attributes - Relationships - Calculations - Aggregates - Code Interfaces - Identities - Validations - Changes - Preparations - Embedded Resources - Notifiers - Signals ### Actions - Actions - Read Actions - Create Actions - Update Actions - Destroy Actions - Generic Actions - Manual Actions ### Security - Actors & Authorization - Sensitive Data - Policies ### Advanced - Multi-step Actions - Monitoring - Multitenancy - Reactor - Combination Queries - Timeouts - Manual Installation - Writing Extensions --- ## How-to - Write Queries - Test Resources - Authorize Access to Resources - Encrypt Attributes - Prevent Concurrent Writes - Wrap External APIs - Define Polymorphic Relationships --- ## Reference - Ash.Resource DSL - Ash.Domain DSL - Ash.Signals DSL - Ash.Reactor DSL - Ash.Notifier.PubSub DSL - Ash.Policy.Authorizer DSL - Ash.DataLayer.Ets DSL - Ash.DataLayer.Mnesia DSL - Ash.TypedStruct DSL - Glossary - Expressions - For other reference documentation, see the sidebar & search bar ## Packages The Ash ecosystem consists of numerous packages, all of which have their own documentation. If you can't find something in this documentation, don't forget to search in any potentially relevant package. ### Data Layers - AshPostgres | PostgreSQL data layer - AshSqlite | SQLite data layer - AshCsv | CSV data layer - AshCubdb | CubDB data layer ### API Extensions - AshJsonApi | JSON:API builder - AshGraphql | GraphQL builder ### AI - AshAI | Structured Outputs, MCP, Vectorization
Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.