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

Where Next?

Popular in News & Updates Top

fhunleth
We recently released Nerves 1.6 and corresponding updates to the Nerves new project generator, nerves_bootstrap and our official systems....
New
DominikWolek
We have released Membrane Core v0.12.1 :tada::tada::tada: This release will help smooth the transition to the upcoming v1.0.0. See the r...
New
hugobarauna
Livebook v0.7 is out! This is a major release coming with significant features in the following areas: secret management visual represe...
New
bartblast
After building Hologram and sharing updates across various places, I’ve realized there’s a lot happening that doesn’t always make it to t...
New
bartblast
Hologram’s journey just took a significant leap forward: Curiosum is coming on board as the Main Sponsor, and I’m joining their team to w...
New
zhenfeng-zhu
Nex - A minimalist web framework for indie hackers and startups A Note Before We Begin This document records my thoughts during the dev...
New
DominikWolek
Hi everyone! After about 3 months of really hard work, we have released the very first version of Jellyfish Media Server! The best star...
New
bartblast
Hey there! There’s a new kid on the block! :smiley: What is it? Full stack isomorphic Elixir web framework that can be used on top of P...
New
bartblast
Hey! For those following Hologram’s progress… I’m excited to share that I’ve just published the official roadmap for Hologram. You can ch...
New
jjcarstens
NervesPack 0.4.0 is a minor bump with a fairly big change. This update drops :nerves_firmware_ssh in favor of the newer and more focused...
New

Other popular topics Top

New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
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
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30877 112
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
Qqwy
Update: How to use the Blogs &amp; Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 126479 1222
New

We're in Beta

About us Mission Statement