zachdaniel

zachdaniel

Creator of Ash

Ash Framework: Official LLM development tooling and guidance

Hey folks! I’ve begun putting together some concrete, framework-wide tooling and guidance on the usage of LLMs in development. The goal here is not to push folks into using LLMs. The goal here is to make sure that those who want to use this technology have some resources to do so in the context of the tools that they want to use. This is a very important distinction. I know that there are folks out there experiencing some level of FOMO and/or worrying that they won’t have a good avenue to leverage technology that might (very important might) change the industry. My goal as a framework author and as someone who cares about this community, is to find ways to lift us all up together.

On to the concrete stuff, check out our new guide on working with LLMs.

A few of the bigger Ash packages have had usage-rules.md files, which you can (for now, the task itself may change later if we get greater adoption of the pattern) then include into your own project with mix ash_ai.gen.usage_rules <your_rules_file> package1 package2. The list so far is:

  • ash
  • ash_ai
  • ash_oban
  • ash_json_api
  • ash_graphql
  • ash_postgres
  • ash_phoenix

Most Liked

anibal

anibal

My first post here, I’m 56 years old. I have been doing software development for thirty something years, last fifteen years I have been in management, I am taking a sabbatical after 6 years as VP of Engineering at a large startup. A long time dream of mine was to program in Elixir, finally I am moving ahead with it, loving it so far.

When I started learning Elixir a few weeks ago, with printed books, I knew this language wasn’t going to have a first class support from LLMs for coding, like Typescript or Python, it is just a matter of training data and curation. But I guessed that eventually that would change, or I may find a way to supplement the training limitations through RAG or any other means.

I spent some time crafting guides, a lot of study notes, prompting and manual review, for different topics like testing, documenting and so on, like cheatsheets to hint agents to use certain patterns, usually with good results. But brute forcing documentation through “deep research” is slow.

And Ash has been particularly frustrating, the book helped a lot by the way, but the docs are not there yet and the number of options for anything you want to achieve are almost infinite. But I liked a lot the code once I managed to produce it. And of course, as everything in life, it is a compromise.

It is very clear for me the potential of having your app as a data structure in this times, a treasure trove for LLM. I’m eager to try translating this into MCPland. But on the other side I was thinking that, well, maybe in this time of easy to generate code, maybe disposable code it would be easier to go on with what LLMs already knew, “regular Elixir”.

I know a lot of people will be enabled by support artifacts like this to just let an llm/agent generate the code without caring, o rlearning, and that’s ok; but on the other side this is going to be an invaluable tool for learning and gaining adoption. And I wanted to say thanks for this initiative, it was much needed.

And I know, here is an incredible community, I didn’t remember I missed this from my old Ruby and Ruby On Rails times when everything was starting. Will be asking more here, just getting used to it, it is a bit overwhelming.

zachdaniel

zachdaniel

Creator of Ash

I totally agree, I think the usage rules files probably serve as some of the best quick reference we have now even for humans. Should probably put these into the hexdocs even :sweat_smile:

As for whether we’ve entered the world of “disposable code”, maybe but I think not :slight_smile: If you can have a recipe for building applications that stand the test of time and can be done at the speed of an LLM, then you’ll really be on top.

Early experimentation with a combined rules file leads to massive improvements in output of LLMs, and that is just with the ash ones not one for elixir, LiveView, etc.

Plus Claude 4 just came out which appears to have finally indexed some Ash stuff :slight_smile:

ghannam80

ghannam80

Actually I think this could be an opportunity for Ash to shine as its declarative model makes it perfect to generate high quality code using LLM that could provide even faster starting point to bring products live

zachdaniel

zachdaniel

Creator of Ash

I concur.

garrison

garrison

I’m curious, as the author of a relatively niche framework, and therefore as someone who of course knows Ash as well as it can be known: are current models capable of generating “useful” Ash code in your view?

There is some concern (including from myself) that if model-assisted programming does take off there will be a “winner takes all” economy where anything niche (perhaps Elixir itself) is squeezed out.

One thing I found interesting (and concerning) was the recent Camel research published last month, which detailed a potential solution for prompt injection attacks. The work itself is a big deal because it’s the first seemingly working strategy to deal with such attacks, but the concerning part is the authors elected to create a DSL with Python syntax to model the permission system.

That is to say, the work had nothing to even do with Python and yet they still felt the need to create something which looks like Python just to improve the results.

On the other hand, it sounds like giving models clear instructions on how to use Elixir and Ash can be helpful. Empirically, can anyone share how much of a difference these things make?

Where Next?

Popular in News & Updates Top

barnabasJ
You can now add subscriptions using the DSL. subscriptions do pubsub YourAppWeb.Endpoint subscribe :something_changed do action...
New
sorenone
The title doesn’t relay the depth of this announcement, but it is short, balanced, and looked good to us. From open sourcing multiple pac...
New
fhunleth
We recently released Nerves 1.6 and corresponding updates to the Nerves new project generator, nerves_bootstrap and our official systems....
New
zachdaniel
Hey folks! In order to give the new AshSqlite a trial run and make sure its got some real usage, AshHq’s multi-package search has been re...
New
zachdaniel
The second video from the Ash Primers series is out! https://www.youtube.com/watch?v=GtsL_lIis4Q This one is about the migration generato...
New
zachdaniel
Join us for our first Ash Office Hours next Thursday at 6PM EST! Myself and anyone from the core team who can make it will be answering q...
New
zachdaniel
AshCloak AshCloak is small but mighty! Simply configure the extension, and it will encrypt your attributes :partying_face: Since an exam...
New
zachdaniel
First two Ash cookbooks are live! We’re still refining the format, so please give us your feedback, good or bad! The first two are: optim...
New
zachdaniel
Working with nested forms in Ash was already great, but it’s even better now with a the new features that will be in the next release of ...
New
lawik
It is my pleasure to announce the official release of the new generation of NervesHub with the v2.0.0 release. Containers are tagged. :p...
New

Other popular topics Top

minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
yurko
Here are few pieces of (common) Linux knowledge that we use for reasonably small one server apps. We use Ubuntu but this should work for ...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
ycv005
I have followed this StackOverflow post to install the specific version of Erlang. And When I am running mix ecto.setup then getting fol...
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New
AstonJ
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including. What is Phoenix LiveV...
New
AstonJ
by Lance Halvorsen Elixir and Phoenix are generating tremendous excitement as an unbeatable platform for building modern web application...
460 27162 124
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
magnetic
Hey :wave:t3: Elixir community, I’ve been learning Elixir, and working on some side projects. My editor of choice is VSCode, and althoug...
New

We're in Beta

About us Mission Statement