Phoenix Framework

Phoenix Framework

The Phoenix framework stands out in the Elixir ecosystem for its robust capabilities in web development, supported by comprehensive documentation and a supportive community. Developers have shared experiences working on commercial projects with Phoenix and LiveView, emphasizing the ease of integrating complex UI elements and ensuring real-time updates. Recent advancements include using Rust for performance improvements and introducing LiveView hooks for external libraries like SortableJS, enhancing UI customization. Furthermore, Phoenix's efficient handling of associations in Ecto simplifies relational management in applications. Concurrently, developers have noted the benefits of maintaining modular codebases and optimizing live updates, contributing to a streamlined development process.

A diverse set of tools such as Hex, Sobelow, and async workflows in LiveView attribute to Phoenix's extensive ecosystem. The introduction of libraries like Absinthe for GraphQL and components for handling upgrades and modifications highlights Phoenix's adaptability. Additionally, Phoenix's integration with tools like Fly.io leverages global distribution, facilitating scalable deployments. Real-time functionalities like LiveView Uploads further augment its dynamic capabilities, making Phoenix a versatile framework for modern web application development.

Data Validation Techniques in Phoenix for Elixir

Data Validation Techniques in Phoenix for Elixir

David Sulc explores how to avoid bad data and validate data at the boundary of a Phoenix application for Elixir. This post covers techniques such as pattern matching and guards to ensure the data remains clean.

Understanding ETL Processes Using Oban in Elixir

Understanding ETL Processes Using Oban in Elixir

Brandon Bennett explores ETL with Oban, a tool for creating data transformation workflows. He provides an example of using Oban to generate stats for superheroes and create a daily digest to determine the best superhero.

Building Scalable Machine Learning Applications with Elixir

Building Scalable Machine Learning Applications with Elixir

Sean Moriarity shows how easy it is to build machine-learning applications with Elixir, especially in a few hours, to build a simple enriched newsfeed.

Applying DDD for Improved Phoenix Contexts

Applying DDD for Improved Phoenix Contexts

German Velasco explores the confusion around using Phoenix contexts in applications and introduces the use of domain-driven design (DDD) concepts to create more effective Phoenix contexts.

Introduction to the Permit authorization library for Elixir Phoenix apps

Introduction to the Permit authorization library for Elixir Phoenix apps

Michał Buszkiewicz explores the features of the Permit library for managing resource authorization in Phoenix, LiveView, and Ecto. Discover how Permit automatically converts authorization conditions to Ecto queries and provides a mechanism for running them in controller and LiveView actions.

Creating Simple SVG Sparklines

Creating Simple SVG Sparklines

Alex Plescan writes about how to create easy SVG sparklines, compact and simple charts that show a trend without the nitty-gritty. He explains the process of handcrafting the SVG and scaling the vector graphics to create beautiful sparklines.

Implementing Magic Link Authentication in Phoenix LiveView

Implementing Magic Link Authentication in Phoenix LiveView

John Elm Labs shows you how to add magic link authentication to a Phoenix LiveView App. This step-by-step guide will help you implement this popular sign-in flow easily and securely.

Building Conversational Web APIs with Phoenix Channels

Building Conversational Web APIs with Phoenix Channels

Nicholas Scheurich explores the possibilities of using Phoenix Channels to build a stateful, Channels-based web interface that reduces network traffic, eliminates data overhead, and provides a unified mechanism for establishing application connectivity to browsers, mobile apps, and hardware devices.

Optimizing Phoenix Template Rendering through Meta-programming

Optimizing Phoenix Template Rendering through Meta-programming

Andrew Selder presents at ElixirConf 2023 on how to speed up dynamic templates using meta-programming, achieving compiled-template-level performance for arbitrary templates with significant improvements over the old method.

Introduction of LangChain Library for Elixir

Introduction of LangChain Library for Elixir

Mark Ericksen created an Elixir LangChain library called “langchain” on Hex.pm. LangChain is a framework designed to simplify the creation of applications using large language models (LLMs).

Editing Forms Within Modals in Phoenix 1.7

Editing Forms Within Modals in Phoenix 1.7

Adam Lancaster shares a tutorial on how to edit a form in a modal using Phoenix 1.7 for Elixir. He provides step-by-step instructions and code examples, making it easy to follow along and implement in your own applications.

Using Sobelow for Securing Elixir Applications

Using Sobelow for Securing Elixir Applications

Michael Lubas provides a guide for effectively using Sobelow, the best static code analysis security tool for Elixir and Phoenix. He covers project planning, classifying findings, and using Sobelow effectively.

Exploring Elixir's Unique Observability Features

Exploring Elixir's Unique Observability Features

Lars Wikman shares insights on the observability features unique to the BEAM runtime and how Elixir has excellent tools for monitoring and debugging applications.

Creating Custom Data Visualizations in LiveView with SVG

Creating Custom Data Visualizations in LiveView with SVG

Meks McClure & Mark Keele share their process of building interactive charts in Elixir, including evaluating existing libraries, hand rolling SVG charts, using LiveView and Tailwind, and adding interactivity and data appending with Phoenix streams.

Implementing Graceful Shutdown in Phoenix Applications

Implementing Graceful Shutdown in Phoenix Applications

Jason Axelson provides a quick guide for running a graceful shutdown process in your Phoenix application, ensuring clean process termination and minimizing downtime during deployments. When a process ends it is important that you clean up what remains of that process or things will get messy.

Introduction to LiveViewNative for Cross-Platform Development

Introduction to LiveViewNative for Cross-Platform Development

Brooklin Myers delves into the powerful combination of Elixir and LiveView as they explore LiveViewNative application development for Android, iOS, and beyond.

Leveraging Elixir for Scalable Embedded AI Point of Sale Systems

Leveraging Elixir for Scalable Embedded AI Point of Sale Systems

Alfonso Gonzalez discusses their experience using Elixir for real-time monitoring of point of sales and integrating IoT devices, firmware development with Nerves, and exploring evision for AI inference at ElixirConf 2023.

Integrating Machine Learning Models with Elixir Using Nx

Integrating Machine Learning Models with Elixir Using Nx

Andrés Alejos presents a talk at ElixirConf 2023 about using EXGBoost + Mockingjay, a Gradient Boosted Decision Tree library, in Elixir for learning structured tabular data and its application in a scalable production environment using Nx's Serving capability and a Phoenix web app.

Streamlining MLOps with Elixir's Capabilities

Streamlining MLOps with Elixir's Capabilities

Sean Moriarity shows how to do MLOps in Elixir, simplifying the deployment of machine learning models without much effort.

Learning Distributed Systems through Fantasy and Elixir

Learning Distributed Systems through Fantasy and Elixir

Kevin Avignon invites you to embark on an exciting adventure in his online book, 'Beware of Dragons: A Distributed Systems Adventure'. Join him as he combines the magic of fantasy with the world of computer systems to explore the secrets of distributed systems and make your own epic journey.

Creating and Managing Distributed Elixir Tasks on Fly.io

Creating and Managing Distributed Elixir Tasks on Fly.io

Jason Stiebs shows how to use Elixir and Fly.io to start a Machine anywhere in the world, execute code on it, and communicate with it as if it was running locally. The post explains how to achieve global distribution and highlights the benefits of using Elixir with a distributed global network.

Summary of Elixir News from Thinking Elixir Podcast Episode 169

Summary of Elixir News from Thinking Elixir Podcast Episode 169

News covers the conclusion of ElixirConf US 2023 with key highlights being Chris McCord's keynote on improved Phoenix debugging tools, and Jose Valim's keynote introducing the "Strong Arrows" concept for handling dynamic types.

Insights and Lessons from Phoenix Framework Development

Insights and Lessons from Phoenix Framework Development

Chris McCord shares his insights on new features coming to Phoenix at ElixirConf US 2023 in Orlando, FL.

Exploring LiveView Native at ElixirConf 2023

Exploring LiveView Native at ElixirConf 2023

Brian Cardarella gives an update on the progress of the LiveView Native project at ElixirConf US 2023 in Orlando, FL.

Improving LLM Prompting in Elixir with a Custom Sigil

Improving LLM Prompting in Elixir with a Custom Sigil

Charlie Holtz explains why he created a new sigil, ~LLM, and introduces a new hex package called :ai that contains AI helpers.

Discussion and Insights on Elixir Development

Discussion and Insights on Elixir Development

Adi, Allen, and Sascha dive deep into observability and tracing in the Beam, discussing the advantages of using open telemetry and exploring different levels of observability, from Phoenix Live View to telemetry and tracing operations in large pipelines.

Integrating Prometheus Metrics and Grafana Dashboards with Elixir using PromEx

Integrating Prometheus Metrics and Grafana Dashboards with Elixir using PromEx

Alexandre Moreira Xavier shows you how to build your own Prometheus metrics using PromEx. PromEx is a library made by Alexander Koutmos that helps you integrate your Elixir application with Prometheus and Grafana.

Integrating a Custom Tooltip Component into a Phoenix Project

Integrating a Custom Tooltip Component into a Phoenix Project

Andrew Timberlake has written a tutorial on adding a custom tooltip component to a Phoenix project using the PopperJS library. The post covers setting up the component, the live view, the CSS, and the Javascript, and demonstrating how to incorporate any Javascript library that requires bindings to an element in Phoenix through the use of Hooks.

Creating a Custom Phoenix Project Generator

Creating a Custom Phoenix Project Generator

Victor Björklund shares how to build a custom Phoenix phx.new generator. He explains the problem with the existing generators and explores possible solutions, such as modifying and extending Phoenix's mix task generators to align with project requirements.

Kanta: A New Translation Management Tool for Elixir and Phoenix Web Applications

Kanta: A New Translation Management Tool for Elixir and Phoenix Web Applications

Artur Ziętkiewicz introduces Kanta, an open source solution to translations in Elixir & Phoenix web apps. Kanta simplifies the process of managing translations, saving time and reducing errors.

Understanding Elixir's Low Latency Capabilities

Understanding Elixir's Low Latency Capabilities

Lars explores how Elixir leverages Erlang's soft real-time capability and consistently low latency to provide a near-realtime experience and enhance user satisfaction.

An Overview of Elixir's Syntax

An Overview of Elixir's Syntax

In this blog post titled "Unpacking Elixir", Lars provides a thorough exploration of the Elixir programming language, explaining its syntax, conventions, features, and interop with Erlang. Lars discusses various aspects of the language, such as modules, functions, pipes, pattern matching, macros, and more, offering insights and observations along the way.

Implementing File Uploads in Real-time with Phoenix LiveView

Implementing File Uploads in Real-time with Phoenix LiveView

The Fly.io team introduces LiveView Uploads as a solution for handling file uploads in Phoenix applications. Using LiveView, developers can achieve real-time upload progress, drag and drop functionality, and the ability to handle multiple uploads at once, all while hiding the complexity behind the scenes.

Exploring Flop for Elixir Data Handling

Exploring Flop for Elixir Data Handling

In Episode 166 of the Thinking Elixir podcast, Mathias Polligkeit discusses his creation of the flop library, which provides a convenient and reusable solution for filtering, sorting, and pagination in Elixir projects. He also introduces the flop_phoenix package, which includes heex components for building filter forms and tables. It's an interesting exploration of a useful library for Elixir developers.

Asynchronous Task Management in Phoenix LiveView

Asynchronous Task Management in Phoenix LiveView

In this blog post, Mark Ericksen explains how to build an asynchronous workflow in a LiveView using Elixir's concurrency primitives. He demonstrates how to link processes, trap exits, and handle tasks, providing a step-by-step guide to achieve an elegant and efficient solution.

Understanding GraphQL Subscriptions in Elixir with Absinthe

Understanding GraphQL Subscriptions in Elixir with Absinthe

In this blog post by Sapan Diwakar, he introduces readers to Absinthe, a toolkit for building a GraphQL API with Elixir. He explains the basics of GraphQL, the schema of a GraphQL API, and how to set up an Elixir app with Absinthe.

Setting Up a Phoenix Project with Gitpod for Remote Development

Setting Up a Phoenix Project with Gitpod for Remote Development

Richard Taylor shares his experience setting up a remote development environment for Phoenix using Gitpod. He provides a sample repository and explains the setup process, highlighting the ease of use and the benefits it offers to new developers and teams.

Using Tailscale for Global Elixir Cluster Distribution

Using Tailscale for Global Elixir Cluster Distribution

Richard Taylor discusses his experience with deploying an Elixir Phoenix application to different clouds and the need for clustering. He explores the use of Tailscale, a VPN service, to connect Elixir nodes across multiple clouds and devices globally, and introduces a strategy called libcluster_tailscale for automatic discovery and connection of nodes through the Tailscale API.

Deploying Phoenix Apps across Multiple Clouds Using MRSK

Deploying Phoenix Apps across Multiple Clouds Using MRSK

Richard Taylor discusses the use of MRSK, an open source deployment tool, to deploy Phoenix applications to multiple clouds. He explains how to use MRSK to deploy a Phoenix application to a single host, as well as how to deploy the application to multiple hosts in different clouds, securely accessing the database over Tailscale.

Integrating Apache ECharts animations with Phoenix LiveView

Integrating Apache ECharts animations with Phoenix LiveView

Richard Taylor explores how to create beautiful animated charts using Apache ECharts and LiveView. He shows how to set up the chart using a LiveView Hook and demonstrates how to handle live updates to the charts.

How to Add a Table of Contents to Blogs with Nimble Publisher in Elixir

How to Add a Table of Contents to Blogs with Nimble Publisher in Elixir

In this post by Philip Brown, he explains how to add a Table of Contents to a Nimble Publisher blog, which is useful for readers to navigate through long blog posts or articles. He provides step-by-step instructions on creating a new project, setting up Nimble Publisher, appending the Table of Contents, adding Table of Contents links, and using custom Earmark processor for modifying the Markdown file.

Implementing Full-Text Search in Elixir Phoenix with Haystack

Implementing Full-Text Search in Elixir Phoenix with Haystack

Philip Brown provides a tutorial on how to easily add the Haystack full-text search functionality to an Elixir Phoenix application. He demonstrates the process step by step, using the NimblePublisher package as an example and showcasing the simplicity and power of Haystack.

How to Transition to Verified Routes in Phoenix 1.7

How to Transition to Verified Routes in Phoenix 1.7

Mark Ericksen shares his experience and tips on migrating to the new Verified Routes in Phoenix 1.7. He guides readers through the process, including using a mix task to automate the conversion, handling static paths manually, dealing with multi-line routes, and addressing query parameter issues.

Deploying Elixir Apps with structure.sql in Production Environments

Deploying Elixir Apps with structure.sql in Production Environments

Mark Ericksen discusses the problem of loading a structure.sql file in a production environment where mix is not available after building a mix release. He provides a solution that involves committing the structure.sql file to version control, adding the postgresql-client package to the Dockerfile, and updating the migrate/0 function in the release.ex file to run the structure.sql file when needed.

Handling Elixir Project Development Post Ecto Dump

Handling Elixir Project Development Post Ecto Dump

Mark Ericksen offers a solution for developers who have deleted old migration files and are now facing a chicken-and-the-egg problem when bootstrapping a new server or setting up a clean database. By adding a step in the mix.exs file's ecto.setup task and using the ecto.load command with specific flags, developers can safely continue development with a structure.sql file generated from mix ecto.dump and without the older migrations.

Integrating SortableJS in Phoenix LiveView for Drag-and-Drop Lists

Integrating SortableJS in Phoenix LiveView for Drag-and-Drop Lists

In this blog post, Berenice Medel introduces the use of LiveView hooks to integrate SortableJS into LiveView applications. The post provides a step-by-step guide on how to create a list component with draggable items, including adding necessary logic and improving the appearance of the list items.

Building a Basic ChatGPT Plugin with Elixir Phoenix

Building a Basic ChatGPT Plugin with Elixir Phoenix

This post by Jason Stiebs provides a guide on creating a ChatGPT Plugin with Elixir Phoenix. It explains how to set up a JSON API using Phoenix and Elixir, and walks through the steps involved in creating a basic plugin for ChatGPT.

Integrating Rust into Elixir for Performance Optimization

Integrating Rust into Elixir for Performance Optimization

In this post by Jason Stiebs, he discusses how to leverage the high-performance capabilities of Rust within an Elixir application using the Rustler library. He provides a step-by-step guide on how to integrate Rust code into an Elixir project, giving examples of implementing both simple mathematical operations and more complex image processing tasks.

Ensuring Security when Handling Zip Files in Phoenix Applications

Ensuring Security when Handling Zip Files in Phoenix Applications

Mark Ericksen explains in his blog post how to safely use the OTP :zip module in Elixir applications. He discusses different types of zip file attacks, such as path traversal attacks and zip bomb attacks, and provides examples and tests to demonstrate the vulnerabilities and mitigations. He emphasizes the importance of not trusting user input, using antivirus software, and taking

Exploring Elixir's List Comprehensions Capabilities

Exploring Elixir's List Comprehensions Capabilities

Jason Stiebs explains the benefits of using Elixir's list comprehension, a powerful alternative to for loops. He shows examples of how list comprehensions can be used for filtering, mapping, and accumulating data, and also explores recursion in Elixir.

© HashMerge 2024