Sign in

Zach Daniel

@zachdaniel.dev
2.3K followers 289 following 1.9K posts

Creator of Ash Framework | Principal Platform Engineer at @teamalembic | he/him

PostsRepliesMedia
Zach Daniel @zachdaniel.dev · 18/09/2026
Building on top of ReqLLM's support (Thanks @mikehostetler.bsky.social ), AshAI now also supports @typesafeai.bsky.social new Jev model 🎉.
3174
Zach Daniel @zachdaniel.dev · 08/09/2026
Here is the full line up for #AshConf! We've got some great talks in store for you all. If you're headed to #Goatmire take the extra day and come see us, you won't regret it. Going to be a great day for #AshFramework users, and just those curious to hear more 😎
280
Zach Daniel @zachdaniel.dev · 04/09/2026
At #AshConf, you'll here about how Alex Slade has been experimenting with new ways to provide automated assistance to his customers, hearing about his work at the intersection of domain modeling and human-computer interaction 😎
120
Zach Daniel @zachdaniel.dev · 01/09/2026
At #AshConf, Conor Sinclair will be talking about a really cool synthesis of multiple Ash packages. This is something I've wanted to exist for a long time 😎 #AshConf is on October 3rd in Varberg, Sweden, the day after #Goatmire. Get your tickets here! luma.com/wz4z0iz6
0112
Zach Daniel @zachdaniel.dev · 23/08/2026
At #AshConf, Oliver Mulelid-Tynes is going to share a very ambitious project that he has been working on 😎. I've only seen a few snippets of what he has going on but it seems pretty next level and I think many in the community will find this very exciting 🎉
150
Zach Daniel @zachdaniel.dev · 21/08/2026
I'm pleased to announce that @barnabasj.bsky.social , one of Ash's longest standing core team members, will be speaking at #AshConf about something very cool and ambitious 😎 I can't wait to hear about these projects. I've only got an inkling and what I've seen so far as *very* cool!
190
Zach Daniel @zachdaniel.dev · 18/08/2026
You'll get to hear from Remedy's Director of Platform Engineering this year at AshConf! At our scale and complexity, we have to be extremely disciplined about knowing exactly how, when, and where things are going wrong, otherwise...💸💸💸.
291
Zach Daniel @zachdaniel.dev · 16/08/2026
This year at #AshConf we'll get to hear from @joshprice.com on Precision Domain Modeling. @joshprice.com has been the longest standing champion of Ash, and at @teamalembic.com they build ambitious software in record time.
2195
Zach Daniel @zachdaniel.dev · 15/07/2026
Announcing our Keynote speaker for #AshConf! @ajetha.bsky.social has built an award winning CRM, daylite.app, which was featured at WWDC, all while migrating a mature and complex codebase to #ElixirLang and #AshFramework. Come to Sweden on October 3rd (the day after Goatmire) to hear all about it 😎
2185
Zach Daniel @zachdaniel.dev · 15/06/2026
Now that AshPostgres supports `MERGE`, we can finally have `Ash.update_many/4` in #AshFramework 😎. This allows you to do many row-wise updates each with their own unique input. This differs from `Ash.bulk_update/4` which updates a query or a set of records with *one* set of inputs. 👇
1215
Zach Daniel @zachdaniel.dev · 14/06/2026
Small thing I'm weirdly excited about in the next release of AshPostgres: upserts can now tell you whether each record was inserted or updated. Sometimes it is fun to work on fancy new packages for #AshFramework, but being able to focus on the core stuff is often more rewarding. 👇
2273
Zach Daniel @zachdaniel.dev · 25/05/2026
Announcing: AshAuthenticationOuath2Server! What a mouthful 😂. If you've ever wanted to allow other tools to "log in with your app" the way that you "log in with google", this package helps you do it! Continuing to expand on the OOTB capabilities of #AshFramework 😎.
3260
Zach Daniel @zachdaniel.dev · 18/05/2026
AshLua has been released! Easily and safely provide #AshFramework actions to a lua script to be called in your application 😎. Works via the very excellent lua library by @davelucia.com!
1185
Zach Daniel @zachdaniel.dev · 17/05/2026
A core tenet of #AshFramework is to "Model your domain, derive the rest". And the "rest" is often some kind of code generation or compilation step, which makes your actions accessible over some interface. AshGraphql builds an Absinthe schema for GraphQL support. 👇
1232
Zach Daniel @zachdaniel.dev · 17/05/2026
Coming soon to a package manager near you 😎 #AshFramework #ElixirLang
3131
Zach Daniel @zachdaniel.dev · 05/05/2026
loopr.life now has an #MCP server! Just drop in loopr.life/mcp into claude etc. and you're off to the races 🎉 It can help you manage your workload, give you insight into what you've got going on, and most importantly it can capture new items for you 😎
160
Zach Daniel @zachdaniel.dev · 03/05/2026
New package for #AshFramework: AshScim! #ElixiLang going enterprise y'all.😂
3292
Zach Daniel @zachdaniel.dev · 30/04/2026
loopr.life automatically summarizes your email threads, github notifications. Launching now, it will also summarize your linear notifications. In addition, you can now configure notification thresholds per-stream based on the summarizer's perceived urgency 😎
150
Zach Daniel @zachdaniel.dev · 28/04/2026
The latest update also makes a lot of improvements to the summarizer's prompt, and *massively* improves the prompt for natural language snoozing. You can now just say things like "After my team meeting", or refer to upcoming holidays 😎
020
Zach Daniel @zachdaniel.dev · 28/04/2026
Introducing to loopr.life 🥁🥁🥁 The Holding Area 🎉. Enable this setting, and the AI summarizer will triage low urgency items to a holding area automatically, and remind you at configured times to review those items. Stay in your flow and do the work that matters 😎
140
Zach Daniel @zachdaniel.dev · 27/04/2026
loopr.life can now generate start of day standup messages and daily retro messages for you to share with your team. The AI will give you a starting point which you can copy out, edit and send to your team 😎
020
Zach Daniel @zachdaniel.dev · 27/04/2026
I've been building and working out of loopr.life since February. Building a product based off of my own methods but that also can serve a wider user base has been really fun. This is now my official workspace for getting shit done and fits like nothing else ever has.
091
Zach Daniel @zachdaniel.dev · 26/04/2026
Just sent 5 more invites to loopr.life 😎 I also just gave 5 random current users an invite code. Check your settings page to see if you got one 🚀
080
Zach Daniel @zachdaniel.dev · 26/04/2026
Just added discord to loopr too 😎. Spent ~6 years of my life building lego bricks with #AshFramework and damn it feels good to actually build something with it. Wildly validating feeling. With Ash and LLMs this stuff is just comically easy.
1152
Zach Daniel @zachdaniel.dev · 26/04/2026
Slack integration for Loopr is live. It's unfortunate that I can't realistically automatically ingest all unreads/notifications, just not technically feasible. But at least it's now very easy to capture from slack manually. Right click -> Send to Loopr😎
140
Zach Daniel @zachdaniel.dev · 24/04/2026
Loopr now has an official public API that you can use to create and manage items, allowing for custom integrations 😎. You can create and manage API keys in settings. #AshFramework makes this stuff so easy it feels like cheating.
170
Zach Daniel @zachdaniel.dev · 21/04/2026
I'll be sending out 5 invites from those who requested it randomly. I'll also be assigning 3 existing users with one invite each. 😎 Still in beta, but it's already killing it for me. If you get an invite and you see this tweet, reach out to me for a 50% off code.
030
Zach Daniel @zachdaniel.dev · 20/04/2026
A demo video of loopr in action. 😎
050
Zach Daniel @zachdaniel.dev · 14/04/2026
Ash expressions are extremely powerful. Expressions can be compiled to SQL. You can filter on them, sort on them, reference them in policies, and aggregate over them. They can be used in your APIs with zero extra work. Define it once, use it everywhere. #AshFramework #ElixirLang
2171
Zach Daniel @zachdaniel.dev · 13/04/2026
This composes further. Validations work the same way. The validation becomes an expression. The whole action: conditional changes, conditional validations, policies, one trip to the database. We even use savepoints to ensure errors have the same transaction semantics. 😎
130
Zach Daniel @zachdaniel.dev · 13/04/2026
#AshFramework atomic updates are extremely powerful. When you add a where: [changing(:name)] condition, in an atomic context it compiles into the UPDATE statement itself. The condition becomes a CASE expression in SQL. One atomic query. #ElixirLang
2253
Zach Daniel @zachdaniel.dev · 12/04/2026
AshAI lets you turn your existing #AshFramework actions into LLM tools. Policies and validations still apply, so the LLM can only do what an authorized user could do. You can expose them as an MCP server too, so Claude Desktop can call your application directly. #ElixirLang
2130
Zach Daniel @zachdaniel.dev · 12/04/2026
Thanks to @kenkost.bsky.social, #AshFramework now supports relating "through" a path. This can dramatically simplify loading patterns and reduce cases where you'd have had to define a manual relationship or calculation. Super useful and all the benefits of relationships apply! #ElixirLang
2240
Zach Daniel @zachdaniel.dev · 07/04/2026
That is an old version of the blob resource, I pasted the wrong snippet 🤦‍♂️
030
Zach Daniel @zachdaniel.dev · 07/04/2026
Introducing AshStorage! Attachment and file management that slots directly into your resources 😎 I had hoped to get this to a releasable state before sharing. Its not *quite* there yet but I'm announcing it anyway as I know the #AshFramework community is waiting. #ElixirLang
2483
Zach Daniel @zachdaniel.dev · 31/03/2026
In the latest release of #AshFramework, you can encapsulate sets of changes/preparations/validations as "pipelines". More related features coming, but its already a great way to clean up duplicate actions. You can even use `where` to make the whole set conditional! 😎 #ElixirLang
0171
Zach Daniel @zachdaniel.dev · 29/03/2026
`Ash.Validation` now supports validating batches of changesets in bulk actions. Most validations should be cheap, but every once in a while you can save some cycles by validating batches at a time. #AshFramework #ElixirLang
0150
Zach Daniel @zachdaniel.dev · 23/03/2026
Calculations in #AshFramework are extremely powerful, but something that often happens is you end up adding a whole lot of them, each one taking up a field on the struct. Now you can pass `field? false` to get all the features with no struct field taken! 🎉 #ElixirLang
0162
Zach Daniel @zachdaniel.dev · 23/03/2026
#AshFramework does a lot under the hood, probably more than you realize 🧙. Did you know we use type inference to cast values in critical areas of SQL queries? Now you can use that same logic to get type inference of your calculations 😎 See the before/after. #ElixirLang
1180
Zach Daniel @zachdaniel.dev · 21/03/2026
Spark, the DSL building tool that backs #AshFramework and many other tools, now supports a functional builder pattern for defining DSLs! Before, you had to hand-roll a bunch of structs. See the before/after shots 😎 #ElixirLang
1240
Zach Daniel @zachdaniel.dev · 20/03/2026
As of #AshFramework 3.20.0, actions now support the `public?` option, just like fields. It defaults to `true`, but will be flipped in 4.0. This makes it very easy to know and control what actions are available via external interfaces. Support will be rolled out to API extensions soon.
0210
Zach Daniel @zachdaniel.dev · 10/03/2026
New #AshFramework extension incoming soon. Something long awaited 😎 #ElixirLang
3221
Zach Daniel @zachdaniel.dev · 09/03/2026
#AshFramework can generate resources from your database. Now, with `--fragments` you can just re-run the generator and your customizations are preserved, only the schema fragments get refreshed. Perfect for working against databases you don't own😎 #ElixirLang
1231
Zach Daniel @zachdaniel.dev · 02/03/2026
AshJsonApi 1.6-rc.1 is out that allows transforming fields, with convenient builtins for camelizing/dasherizing fields. This applies automatically to reading, writing, filtering, sorting, field selection: everything 😎 #AshFramework #ElixirLang
1151
Zach Daniel @zachdaniel.dev · 02/03/2026
AshAdmin 1.0rc is out, with a complete UI overhaul, a rework of our markdown/json editor to code mirror, and features for more convenient relationship management and multitenancy drop-down/typeahead 🎉 #AshFramework #ElixirLang
1285
Zach Daniel @zachdaniel.dev · 26/02/2026
Constructing skills with your usage_rules
050
Zach Daniel @zachdaniel.dev · 26/02/2026
usage_rules now supports copying skills from your packages in addition constructing skills from the usage rules files 😎 Package authors can now provide entire skills for your project, and when you update your dep you can get the new version of the skill! #ElixirLang
1223
Zach Daniel @zachdaniel.dev · 22/02/2026
📢The latest AshTypescript release brings you t typed controllers🎉 Using Typescript with Phoenix has never been easier, with or without #AshFramework. Thanks to Torkild for his awesome package! I might be working on a PR for something pretty cool there myself 😎 #ElixirLang
2170
Zach Daniel @zachdaniel.dev · 22/02/2026
AshOban v0.8.0-rc.0 is out, with support for Oban Pro's chunk workers! This allows you to leverage #AshFramework's ability to run any action as a bulk action(with progressive enhancement) to process many records at a time without having to modify your trigger logic at all 😎
1202
Zach Daniel @zachdaniel.dev · 03/02/2026
You can now set attributes to the results of expressions in create actions. This can be useful for a whole slew of reasons, one of which is being able to use aggregates, fragments, etc. Especially powerful when paired with upserts. #AshFramework #ElixirLang
1140