QFM066: Elixir Reading List May 2025
Everything that I found interesting last month about Elixir, Phoenix, LiveView and the ecosystem.
Tags: qfm, elixir, phoenix, liveview, reading, list, may, 2025
Source: Photo by Pramod Tiwari on Unsplash
This month’s Elixir Reading List showcases framework evolution and AI integration within the Elixir ecosystem. Ash AI: A comprehensive LLM toolbox for Ash Framework introduces a new package that facilitates Large Language Model integration into Ash Framework applications, featuring structured output actions, tool definitions, vectorisation, and MCP server support whilst maintaining secure design principles. This connects to AshEvents: Event Sourcing Made Simple For Ash Framework, which provides event sourcing capabilities with comprehensive tracking, event versioning, and replay functionality for managing historical data and debugging complex systems.
Workflow orchestration and AI-powered development receive significant attention. Weaving Stories with Cascading Workflows demonstrates Oban Pro v1.6 RC’s cascading workflow features through ‘FireSaga’, a generative AI-powered children’s story creation workflow that showcases automated context sharing and simplified dependency management. The AI development theme continues with Elixir’s Advantage in the Era of AI, which explains how Elixir’s first-class documentation, functional nature, and integrated testing framework make it ideal for AI pair programming with tools like Cursor and Claude Code.
User interface and accessibility improvements feature prominently through Phoenix ecosystem developments. Introducing Mishka Chelekom v0.0.5 - Now with Accessibility Support highlights the Phoenix UI library’s latest release, introducing gallery components, progress bars, clipboard features, and foundational accessibility support across all Phoenix components.
Development tooling and language interoperability expand the ecosystem’s capabilities. Introducing Lua for Elixir presents Lua v0.1.0, enabling sandboxed Lua program execution directly on BEAM VM without C runtime embedding, built on the Luerl library for television testing environments. UsageRules: A Development Tool for Elixir Projects offers automated documentation consolidation for project dependencies, supporting major frameworks like Ash and Phoenix with multiple operational modes.
Educational content and core language features provide foundation knowledge. Structs vs Embedded Schemas in Elixir clarifies the differences between lightweight structs for internal data grouping and embedded schemas for robust data validation in JSON APIs and complex transformations. #til: Elixir has a super()
function explores Elixir Kernel’s essential language primitives, including arithmetic operations, process management, control-flow macros, and compiler optimisations.
Multimedia processing and AI assistance tools round out the selection. Membrane - An easily understandable and customisable multimedia framework offers real-time communication solutions with multiple I/O protocols, transcoding options, and monitoring utilities for media processing across platforms. AI-powered assistance appears through Meet Exmeralda: Your AI-Powered Elixir Assistant, which provides version-specific answers to Elixir library questions using Retrieval-Augmented Generation combined with real documentation.
Advanced AI workflow concepts conclude with sophisticated orchestration approaches. “AI Agent” Frameworks & Workflows explores graph-based workflow solutions for managing deterministic control in generative AI environments, questioning whether to integrate AI Agents into workflow engines or vice versa whilst examining modern approaches that rely on APIs with prompting abstractions and structured outputs.
As always, the Quantum Fax Machine Propellor Hat Key will guide your browsing. Enjoy!
Weaving Stories with Cascading Workflows: This article discusses the new features of Oban’s Pro v1.6 RC for building cascading workflows. It introduces ‘FireSaga’, a workflow that generates children’s stories using generative AI with no need for domain knowledge, allowing for a streamlined process laid out in a pipeline structure. The post delves into the benefits of this approach, like automated context sharing and simplified dependency management, showcasing how workflows can coordinate multi-stage processes effectively.
#ObanPro
#Workflows
#GenerativeAI
#ElixirLang
#Storytelling
Exmeralda: Exmeralda is an open‑source Elixir/Phoenix project that uses RAG (retrieval‑augmented generation) to power a chatbot for Hex.pm packages—you install docs/code into a vector database, then query via an AI‑augmented assistant in your browser. bitcrowd launched a hosted demo at exmeralda.chat, enabling users to log in, select packages and versions, and ask package‑specific questions grounded in real code and docs.
#Elixir
#RAG
#Chatbot
#DevTools
#HexPackages
Elixir’s Advantage in the Era of AI: The article discusses how Elixir programming language excels in AI-assisted development, particularly with tools like Cursor and Claude Code. Elixir’s first-class documentation, functional and compiled nature, and integrated testing framework make it ideal for AI pair programming. The author emphasizes Elixir’s capacity for fast and accurate iterations, structured feedback, and efficient testing as advantages that contribute to its unique position in the AI development landscape.
#Elixir
#AI
#Programming
#Development
#Tech
Ash AI: A comprehensive LLM toolbox for Ash Framework: Ash AI is a new package for the Elixir-based Ash Framework that facilitates the integration of Large Language Models (LLMs) into applications. It seeks to help developers rapidly and securely deploy LLM features, such as chatbots or other agentic tools, by building on the foundational Ash principles of structuring application logic as data. This approach allows for powerful integrations, structured outputs, and leverages tools like LangChain for efficient and safe AI functionality. Key features include structured output actions, tool definitions, vectorisation, a chat generation tool, and MCP server support for exposing application behaviors to external agents. The article also highlights the secure design principles employed, which ensure that AI integrations do not compromise user data privacy.
#Elixir
#AshFramework
#AI
#LLM
#SoftwareDevelopment
AshEvents: Event Sourcing Made Simple For Ash Framework: AshEvents is an extension for the Ash Framework that provides event sourcing capabilities, enabling comprehensive tracking and replaying of system events. It simplifies the management of historical data and debugging of complex systems by offering features like event versioning, actor attribution, and customizable metadata. The tool also supports event replay, allowing developers to reset application states or adapt to domain changes effortlessly.
#AshFramework
#EventSourcing
#Debugging
#TechInnovation
#SoftwareDevelopment
Introducing Mishka Chelekom v0.0.5 - Now with Accessibility Support: Mishka Chelekom has released version 0.0.5 of their Phoenix UI library, focusing on enhancing accessibility and performance. This update introduces a range of new components, including a gallery with filters, progress bar styles, and a clipboard feature. Additionally, the release highlights improvements in the sidebar’s functionality and refinements to the carousel and layout components, emphasizing a more seamless user experience. The Mishka team continues to strive for a more inclusive design with foundational accessibility support integrated across all Phoenix components.
#MishkaTools
#PhoenixFramework
#WebDevelopment
#Accessibility
#OpenSource
Introducing Lua for Elixir: The Lua library for Elixir, Lua v0.1.0, has been launched, allowing sandboxed execution of Lua programs directly on BEAM VM without embedding the C Lua runtime. Built on the Luerl library in Erlang, it extends functionality, enhances error messages, and provides robust documentation. TV Labs, known for its integration solutions, initiated this project to run Lua in television testing environments, improving device-based integration testing without additional virtual machines.
#Elixir
#Lua
#Programming
#SoftwareDevelopment
#TechInnovation
Structs vs Embedded Schemas in Elixir: In Elixir, there is often a misconception that Ecto is merely a database ORM tool, but it offers powerful features for data mapping and validation. This article explores the differences between using structs and embedded schemas in Elixir. Structs are described as lightweight and perfect for internal data grouping with compile-time guarantees, while embedded schemas are highlighted for their robust data validation capabilities, especially useful for JSON APIs and complex data transformations.
#Elixir
#Ecto
#Structs
#DataValidation
#Programming
Hermes MCP: Hermes MCP is an Elixir SDK implementing the Model Context Protocol (MCP), offering a full-featured client (with STDIO, HTTP/SSE, and WebSocket transport, built-in supervision, capability negotiation, progress tracking, and logging) and planning a server-side implementation soon. The library builds on Elixir’s concurrency and fault-tolerance strengths to support standardized LLM-tool communication and aligns with evolving MCP specifications.
#Elixir
#MCP
#AIIntegration
#Concurrency
#OpenAIProtocol
Commanded: Commanded is an open‑source Elixir framework for building applications using the CQRS (Command Query Responsibility Segregation) and event sourcing patterns. It provides tools for registering and dispatching commands, defining aggregates, handling events, managing long‑running process managers, and projecting read models using various event stores.
#Elixir
#CQRS
#EventSourcing
#FunctionalArchitecture
#Commanded
Configuring a dev environment for Phoenix package development: This article provides a comprehensive guide for setting up a development environment for creating Phoenix packages in Elixir. The focus is on enabling a smooth developer experience through live reloading configurations, which allows for rapid iterations without restarting the server. The guide explores various project setups, such as sibling projects, subdirectory structures, and umbrella projects, explaining the pros and cons of each approach while providing configuration tips for optimal performance.
#Elixir
#PhoenixFramework
#WebDevelopment
#LiveReloading
#DeveloperTips
Tuesday: Tuesday is a fictional project‑management app built with the Ash Framework to support the book Domain Modeling with Ash Framework, offering hands‑on examples and improved IEx integration for readers.
#Elixir
#AshFramework
#DomainModeling
#LearningByDoing
#til: Elixir has a
super()
function: Elixir’s Kernel.defoverridable/1
lets you mark functions (or callbacks from a behaviour) as overridable, enabling modules that use or import the original to redefine those functions. In an overriding function, calling super(args) invokes the original implementation defined before defoverridable, letting you wrap or extend its behaviour. This approach supports patterns such as fallback logic or mix‑in style behaviour, while preserving original functionality via super()
calls .
#Elixir
#defoverridable
#super
#Metaprogramming
#BehaviourPatterns
Meet Exmeralda: Your AI-Powered Elixir Assistant: Exmeralda is a helpful tool designed to assist developers working with Elixir libraries by providing version-specific answers to their questions. It uses Retrieval-Augmented Generation to combine AI with real documentation, ensuring responses are accurate and grounded. Users can access the service through a GitHub login, making it a convenient addition to a developer’s toolkit.
#Elixir
#AI
#TechTools
#Documentation
#GitHub
Membrane - An easily understandable and customisable multimedia framework: Membrane is a multimedia framework offering customizable solutions for real-time communication, server-side processing, and seamless integration with Elixir applications. It provides several features, including support for multiple I/O protocols, transcoding options, and advanced monitoring utilities, which make it ideal for media processing tasks across diverse platforms. Built by Software Mansion, Membrane is open-source and trusted by companies for robust, scalable implementations in various industries, from livestreaming to IP camera streaming.
#MembraneFramework
#Elixir
#Multimedia
#OpenSource
#SoftwareMansion
github/membraneframework: Membrane Framework is an open-source multimedia processing framework written in Elixir that enables developers to build resilient, scalable media pipelines (e.g., WebRTC, RTSP, HLS, MP4/MP3 transcoding) using composable elements, plugins, and fault-tolerant streaming components. It offers a modular architecture—including membrane_core, membrane_demo, and plugin packages like camera capture and codecs—supported by extensive tutorials, Livebook integration, and a comprehensive SDK to simplify streaming development.
#Elixir
#Membrane
#Streaming
#MediaPipelines
#OpenSource
Writing A Job Runner (In Elixir) (Again) (10 years later): The tutorial walks through building a demand-driven job runner in Elixir using GenStage, demonstrating how producers, consumers, and producer‑consumers coordinate with back-pressure and manual or automatic demand management for efficient concurrency. It explains setting up stages, controlling demand flow, and using subscription options in init/1 to construct resilient, concurrent pipelines.
#Elixir
#GenStage
#Concurrency
#BackPressure
#JobRunner
UsageRules: A Development Tool for Elixir Projects: UsageRules is a useful development tool designed for Elixir projects, focusing on gathering and consolidating usage rules from project dependencies. This tool automates the collection of documentation into a single file, aiding in maintaining consistency and ease of management across projects. It supports major frameworks like Ash and Phoenix, providing several modes of operation to manage and track dependency rules effectively.
#Elixir
#Development
#Tools
#Automation
#Documentation
Vector Search Demystified: Zero shot classification, LLM and RAG: This video delves into the integration of Large Language Models (LLMs) with vector search for zero-shot classification and retrieval-augmented generation. It explores the role of embeddings in enriching data and highlights practical applications in AI-enhanced data processing. This is a deep dive suitable for those interested in advanced AI topics and their practical implementations.
#AI
#LLM
#VectorSearch
#DataScience
#RAG
“AI Agent” Frameworks & Workflows: The exploration of AI Agent frameworks reveals a convergence towards graph-based workflow solutions. These serve to manage deterministic control issues in the adaptive environment of generative AI. The article questions whether it is more effective to integrate AI Agents into contemporary workflow engines or vice versa, emphasizing the challenges and considerations in implementing these systems. Modern AI Agents increasingly rely on APIs with abstractions such as prompting and structured outputs, often integrating these components in dynamic, code-driven processes for effective orchestration.
#AI
#MachineLearning
#Workflow
#TechInnovation
#FutureTech
Runic is a tool for modelling your workflows as data that can be composed together at runtime: Runic, created by Zack White (Zblanco), is a powerful Elixir library for composing and executing directed acyclic graph (DAG) workflows, enabling developers to define complex, conditionally branched data-flow pipelines in code.
#Elixir
#Workflow
#DAG
#DataFlow
#Concurrency
Regards,
M@
[ED: If you’d like to sign up for this content as an email, click here to join the mailing list.]
Originally published on quantumfaxmachine.com and cross-posted on Medium.
hello@matthewsinclair.com | matthewsinclair.com | bsky.app/@matthewsinclair.com | masto.ai/@matthewsinclair | medium.com/@matthewsinclair | xitter/@matthewsinclair |