QFM082: Elixir Reading List - September 2025
Source: Photo by Florian Olivo on Unsplash
This month's Elixir Reading List covers mobile development and AI integration. Introducing LVN Cookbook provides recipes for LiveView Native development, while Introducing Req LLM demonstrates how to integrate LLM capabilities using the Req HTTP library.
The collection also addresses practical development with Bodging GenServers Together exploring process composition patterns, and Structs and Embedded Schemas in Elixir: Beyond Maps covering advanced data modelling.
As always, the Quantum Fax Machine Propellor Hat Key will guide your browsing. Enjoy!

Links
Torus is an Elixir library that integrates PostgreSQL search capabilities into Ecto, providing seven search methods including full-text search, similarity matching, pattern matching, and BM25 ranking to simplify construction of advanced search queries. The library offers specialized search types optimized for different use cases: pattern matching for structured data like phone numbers, similarity for fuzzy matching on short text, full-text search for large document collections, and BM25 for superior relevance ranking. Installation is straightforward via mix.exs, and the library provides a plug-and-play API that extends Ecto queries with methods like Torus.full_text/5 and Torus.similarity/5.
The author discusses building a voice-activated control system for a Raspberry Pi-based device using Elixir and practical machine learning models—specifically Voice-Activity Detection for filtering audio and Whisper for speech-to-text conversion—rather than resource-intensive LLMs, while noting that integrating these components requires wrestling with format compatibility issues and model version management but avoids the inefficiency of shuttling data to external Python services.
The LVN Cookbook is a reference application that helps web developers transition to LiveView Native by providing SwiftUI UI design patterns and code examples, addressing the challenge that web conventions like the box model and Tailwind CSS don't apply to native development. Users can access the cookbook through an App Clip on iPhone via cookbook.liveviewnative.dev, browse UI components with renamed patterns (eg "coverflow" instead of "carousel"), and reference the open-sourced repository to learn implementation details. Android support will follow once Jetpack integration is available.
The article provides a step-by-step guide for integrating Google OAuth authentication into a Phoenix application using the Ueberauth library, covering credential setup through Google Cloud Console, dependency configuration, database schema modifications to store OAuth user data, and controller implementation for handling the OAuth callback flow. Key implementation details include storing user name, avatar URL, provider, and access token in the database while making password fields optional for OAuth users, and using Ueberauth's built-in utilities to extract and validate OAuth credentials before creating or updating user records.
Structs in Elixir are named maps enhanced with compile-time key validation and optional required field enforcement, implementing these features through an automatically-added __struct__ key and ETS-backed mechanisms that prevent access to undefined keys and enforce strict field definitions. Unlike regular maps, structs disallow bracket notation access ([]) for undefined keys and support the @enforce_keys directive to mandate specific fields during struct creation, providing stricter type guarantees while remaining functionally compatible with map operations like dot notation access and pattern matching.
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
Was this useful?