frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Ash Framework – Model your domain, derive the rest

https://ash-hq.org/
77•lawik•3d ago

Comments

bluehatbrit•2h ago
I'd love to hear from someone who's shipped a product into production with Ash. I've been considering using it for a new project but I'm a bit weary of introducing a whole second language. With it being macro based rather than functions, I can't help but think it might be tricky to break out of for areas where its opinionated approach don't fit so well.
apex_sloth•1h ago
Only half a data point: I played around with it for a private project. It works but the documentation is far from good enough for production. I was even considering getting the book, but it's not out yet. In my humble opinion, normal documentation should be enough to understand a framework, otherwise you can't expect anyone beyond hobbyist and enthusiast to pick it up. "Break out" is definitively part of the design goals, so I always felt like they put a hatch.
mrmincent•1h ago
With the caveat that I’m still learning elixir+ash and just building a small private project, I’ve bought the beta book and it really helped get my head around the concepts even though it’s not finished. I’d recommend it, it’s even on sale at pragprog this week.

Ash itself is fantastic so far. I haven’t worked with anything so productive before. Loving it.

sanswork•1h ago
It's not really producing a whole separate language that I've found. There is a lot of functionality so the learning curve has been pretty steep to start. The macros are for pretty specific things but once you split out stuff like permissions, changes, etc you just use normal elixir modules. I can't think of any situation where I'd need to go outside of it and couldn't. It is built on top of all my normal elixir stuff and I've had no issue using them as normally. I'd definitely suggest reading the book first though there is a lot of unknown unknowns with it.
Philpax•1h ago
I feel as though this website does a poor job of telling me what the framework actually does. There's the mostly-fluffy marketing lead text, followed by an overly-complicated configurator to generate a project.

What can I actually do with this? What problems does it solve? Where is it located relative to other solutions in the same space? What is that space?

borromakot•53m ago
We've always had trouble with this. The closest thing to Ash I've seen elsewhere is an ORM. It's not an ORM though.

Ash is a declarative application framework. You define your application logic using Ash.Resource, which model things like state, but most importantly actions.

Another analogy is that it's similar to GraphQL, but lowered down to the backend layer. It's a declarative, typed application description and implementation framework, that you can derive a GraphQL from (amongst many other things).

Another way to think of it is a whole ecosystem of packages that standardize the vast majority of things you want to do when building an Elixir backend, instead of trying to kludge together a bunch of different tools. Pagination, sorting, filtering, authentication, authorization, all builtin and designed to work together.

Philpax•41m ago
That's certainly more helpful, yeah! My biggest complaint is that that's really not particularly obvious from the home page; I didn't realise the highlighted words in the lead were links, and they're all to a diverse set of locations, which I'm unlikely to check out if I just want a ten-thousand-foot view of the framework.

I'd suggest putting a description similar to your last paragraph on the home page, and including a brief example of what that translates to. Phoenix's website [0] does this beautifully: within the first page of scroll, I immediately know what it does and how it looks, and the following pages of scroll give me the detail I need to evaluate it properly.

[0]: https://www.phoenixframework.org/

borromakot•2m ago
I will go in and add another section that expands a bit more on what Ash is after ElixirConf EU is over. Thanks for the feedback!
joshprice•32m ago
I've talked about this a few times and this is the shortest answer to this question. The first part of this talk may help explain concisely where Ash fits at a higher level.

https://youtu.be/10VBTcN8gAo?feature=shared&t=133

Ash Framework was created to solve a fundamental problem in (web) application development for business apps. When you build a new app, you want to focus on the valuable, innovative parts - what's visible above the waterline of the iceberg. However, modern web applications require an enormous amount of "below the waterline" functionality that's essential but not where you want to spend your time.

Running a consultancy and building various client projects highlights this challenge. Everyone wants to focus on the core, valuable features, but must also deal with relatively boring, commodity problems that have been solved countless times before. This often means reinventing the wheel, which clients understandably see as low-value work.

Authentication is a perfect example - most customers don't even specify login functionality as a feature. Similarly, admin interfaces are considered table stakes for modern applications. The list is extensive: admin UIs, observability, security, and more. All important, but time spent there can feel wasteful when you'd rather be innovating.

Ash's primary goal is to keep you focused on the innovative work above the waterline while minimizing time spent below it. The framework accomplishes this by modelling your domain and deriving everything else.

pydry•15m ago
This is not a new problem. It is exactly what a web application framework like, e.g. django has been handling for one and a half decades.

What does it do that django doesn't?

A lot of competitors to django have also fallen behind because they either railroad you too much (e.g. by making immutable assumptions about how you want authentication to work which often end up being faulty) or go too far in the other direction and require an excess of boilerplate. This is a very subtle and tricky trade off.

sph•1h ago
I have shipped half a dozen projects based on Phoenix, Ecto and Live View. I love them all, and the language itself the most.

What does Ash Framework offer me? What pain points that I don’t think I have does it solve for me? This I still do not understand.

borromakot•59m ago
Do these help at all?

https://hexdocs.pm/ash/what-is-ash.html

https://youtu.be/vjnPjrCF4rs?si=sGlfZeEpPrfp1J0K

sanswork•54m ago
I started using it because I just found it a much nicer way to define my data, auth and interactions with it compared to contexts. It also makes it easier to reuse it and because of the way the data is modeled you get a lot of nice things like the ashphoenix forms which make dealing with them a lot nicer in my opinion.

I'm also likely to be hiring soon so having a well defined way to well..define things seems like it will make it easier with onboarding but I haven't tested this yet.

(Been using elixir for about a decade)

arcanemachiner•29m ago
If you've tried to make a JSON API with Phoenix, it can be pretty cumbersome to generate an OpenAPI spec for the project. It's a very manual and tedious process, even when working with OpenApiSpex (the go-to Elixir library for generating an OpenAPI specs). And if your code implementation changes, then you often have to update your spec to match it.

With Ash, the same data used to model your application is also used to derive the data needed to build the OpenAPI spec. So there's a real value proposition there IMO. It eliminates much of the problems of keeping your spec in line with your code, since they are both modeled in a single location.

Disclaimer: I only learned this by working through the book, so I haven't actually gotten to experience anything off the happy path.

flux293m•50m ago
FWIW, I have the book and I've found it a really good read so far.

Stylewise, It reminded me of reading the original PragProg Rails book back in the day.

It's mostly finished. I just saw it's 40% off this week with the code 2025PERSPECTIVES at https://pragprog.com/titles/ldash/ash-framework/

PaulRobinson•29m ago
As many people seem confused, it seems that this framework is a declarative framework (think: expressing a solution like you would in SQL or Prolog), in Elixir, that seems to have the goal of separating out core logic from control flows within web apps, APIs and so on.

Over the course of 15+ years of playing with Rails, I've come to the view of CRUD being a poor choice for most real-world applications and MVC being a useful but often-abused concept. That took me down a bit of a rabbit hole of trying to think about DDD within the constraints of an opinionated framework that thinks CRUD and MVC are the thing that makes you go fast. I, on the other hand, want the thing that makes it easy to extend and maintain. I want actual events to be modeled for all sorts of real-World reasons.

I've been learning Elixir recently because it's something new, the actor model appeals from a concurrency perspective to some of the problems I want to solve, and because Phoenix looks like an interesting and elegant web app framework. However, there was a nag in the back of my head that I'd just end up hitting the same frustrations: I was, and am, ready for that and seeing if anything about Elixir + Phoenix makes life easier than Rails made it.

Ash seems to be a good candidate for part of the puzzle. A declarative framework that brings some packages for useful, often-needed parts of the puzzle (like authentication, authorization, and so on), and it seems to encourage a way of thinking about some key DDD concepts. Resources sound like domains or bounded contexts. Declarative style sounds like it might lend itself to event modeling more easily. Calculated values are a nudge towards "view models".

Never tried, I'm early on my journey, but I think the Ash book will be the first thing I pick up after I've finished the Elixir and Phoenix books I'm reading through. Curious to hear stories from people further down this journey, though!

drekipus•6m ago
[delayed]

How to Build a Smartwatch: Picking a Chip

https://ericmigi.com/blog/how-to-build-a-smartwatch-picking-a-chip/
43•rcarmo•2h ago•12 comments

RPG in a Box

https://rpginabox.com/
164•skibz•4d ago•28 comments

Ash Framework – Model your domain, derive the rest

https://ash-hq.org/
77•lawik•3d ago•16 comments

Writing that changed how I think about programming languages

https://bernsteinbear.com/blog/pl-writing/
107•r4um•5h ago•6 comments

Flattening Rust’s learning curve

https://corrode.dev/blog/flattening-rusts-learning-curve/
260•birdculture•11h ago•185 comments

Type-constrained code generation with language models

https://arxiv.org/abs/2504.09246
201•tough•11h ago•78 comments

Branch Privilege Injection: Exploiting branch predictor race conditions

https://comsec.ethz.ch/research/microarch/branch-privilege-injection/
376•alberto-m•17h ago•160 comments

Bus stops here: Shanghai lets riders design their own routes

https://www.sixthtone.com/news/1017072
229•anigbrowl•5h ago•169 comments

Google is building its own DeX: First look at Android's Desktop Mode

https://www.androidauthority.com/android-desktop-mode-leak-3550321/
327•logic_node•19h ago•249 comments

Replicube: A puzzle game about writing code to create shapes

https://store.steampowered.com/app/3401490/Replicube/
64•poetril•8h ago•17 comments

Mipmap selection in too much detail

https://pema.dev/2025/05/09/mipmaps-too-much-detail/
62•luu•3d ago•16 comments

Launch HN: Miyagi (YC W25) turns YouTube videos into online, interactive courses

181•bestwillcui•21h ago•99 comments

Show HN: HelixDB – Open-source vector-graph database for AI applications (Rust)

https://github.com/HelixDB/helix-db/
170•GeorgeCurtis•16h ago•76 comments

Failed Soviet Venus lander Kosmos 482 crashes to Earth after 53 years in orbit

https://www.space.com/space-exploration/launches-spacecraft/failed-soviet-venus-lander-kosmos-482-crashes-to-earth-after-53-years-in-orbit
147•taubek•3d ago•104 comments

Build real-time knowledge graph for documents with LLM

https://cocoindex.io/blogs/knowledge-graph-for-docs/
133•badmonster•14h ago•25 comments

EM-LLM: Human-Inspired Episodic Memory for Infinite Context LLMs

https://github.com/em-llm/EM-LLM-model
63•jbotz•4d ago•8 comments

Multiple security issues in GNU Screen

https://www.openwall.com/lists/oss-security/2025/05/12/1
378•st_goliath•22h ago•230 comments

The recently lost file upload feature in the Nextcloud app for Android

https://nextcloud.com/blog/nextcloud-android-file-upload-issue-google/
36•morsch•4h ago•6 comments

PDF to Text, a challenging problem

https://www.marginalia.nu/log/a_119_pdf/
292•ingve•18h ago•161 comments

Airbnb is in midlife crisis mode

https://www.wired.com/story/airbnb-is-in-midlife-crisis-mode-reinvention-app-services/
160•thomasjudge•14h ago•290 comments

Vircadia, a Bun and PostgreSQL-powered reactivity layer for games

https://vircadia.com/
4•kaliqt•3d ago•2 comments

Fingers wrinkle the same way every time they’re in the water too long

https://www.binghamton.edu/news/story/5547/do-your-fingers-wrinkle-the-same-way-every-time-youre-in-the-water-too-long-new-research-says-yes
133•gnabgib•10h ago•54 comments

It Awaits Your Experiments

https://www.rifters.com/crawl/?p=11511
168•pavel_lishin•18h ago•58 comments

The world could run on older hardware if software optimization was a priority

https://twitter.com/ID_AA_Carmack/status/1922100771392520710
702•turrini•23h ago•641 comments

Using obscure graph theory to solve programming languages problems

https://reasonablypolymorphic.com/blog/solving-lcsa/
68•matt_d•13h ago•12 comments

Garbage collection of object storage at scale

https://www.warpstream.com/blog/taking-out-the-trash-garbage-collection-of-object-storage-at-massive-scale
77•ko_pivot•3d ago•9 comments

A tool to verify estimates, II: a flexible proof assistant

https://terrytao.wordpress.com/2025/05/09/a-tool-to-verify-estimates-ii-a-flexible-proof-assistant/
50•jjgreen•3d ago•0 comments

The great displacement is already well underway?

https://shawnfromportland.substack.com/p/the-great-displacement-is-already
367•JSLegendDev•1d ago•371 comments

I learned Snobol and then wrote a toy Forth

https://ratfactor.com/snobol/
130•ingve•3d ago•36 comments

OpenTelemetry protocol with Apache Arrow

https://opentelemetry.io/blog/2025/otel-arrow-phase-2/
93•tanelpoder•16h ago•16 comments