How Phoenix became the most admired web framework among developers.
Published September 10, 2023

How Phoenix became the most admired web framework among developers.

by Scott Taylor 🏃🏻‍♂️
Engineering Director

In their 2023 Developer Survey, Stack Overflow found that Phoenix is the most admired web framework and technology––more developers would choose to work with Phoenix again than those who have used the three most common: React, Node.js, and Next.js. Why is that?

First of all, what exactly is Phoenix? 

Phoenix is the leading web framework for the Elixir programming language. It’s designed to allow engineers to productively build rich, interactive web applications while taking advantage of the best parts of functional programming languages.

What sets Phoenix apart from other frameworks?

Historically, increased development productivity has come at the expense of application performance. Phoenix challenges this concept—it has both great developer ergonomics and performance characteristics.

  • Concurrency Model: Phoenix leverages the actor-based concurrency model of the Erlang VM (BEAM), allowing it to handle many tasks concurrently without the complexity of traditional thread-based systems. Products built with Phoenix are real-time by default, interacting with users and pushing events across one or dozens of deployed nodes..

  • Fault Tolerance: BEAM’s fault-tolerant features ensure that even in the face of errors, applications built with Phoenix can recover gracefully and continue running.  Elixir and Erlang enable confidence in a ‘Let it Crash’ mindset, where process crashes are isolated, supervised and handled without degrading the application as a whole.

  • Productivity: Convention over configuration and code generation tools make development faster and more consistent. Phoenix Components and LiveView enable engineers to write dynamic user interfaces and interactions while writing just Elixir and Phoenix. You probably don’t need that thick Javascript application anymore. Phoenix comes with front-end tools like esbuild and tailwind and integrates with low-configuration tools like alpine.js.

  • Scalability: BEAM’s lightweight processes and efficient message-passing system make it possible to build applications that scale horizontally with ease. Processes and supervision trees are easily scaled across physical nodes, and even across physical data centers.

What is Phoenix good for?

Phoenix is perfect for building expressive and reliable web products, such as real-time collaborative interfaces, high-performance APIs and greenfield MVPs that can scale alongside a company.

  • Real-Time Interfaces: Phoenix’s real-time capabilities make it a great choice for building applications that require instant updates and interactions, such as chat apps, multiplayer games, and collaborative tools.

  • High-Performance APIs: Phoenix can be used to build high-performance APIs due to its underlying Elixir architecture and process modeling. It’s well-suited for applications that need to handle a high volume of requests efficiently.

  • Greenfield MVPs: Let’s say you have a brilliant idea for a brand new application that you anticipate growing quickly and will consequently serve more and more users and process more and more data. Phoenix is an excellent choice to build a minimum viable product (MVP) to solicit quick feedback and determine what features will be most valuable to intended users. This is because the framework allows you to deliver a prototype quickly and relatively cheaply that can easily be expanded and enhanced in the long run.

Township shapes divider

Phoenix at Township

Phoenix is Township’s default framework for producing APIs, Dashboards, Web Applications, and Connected Device projects.

Scale your growth, not your spend.

Our expertise in the Phoenix toolset has enabled us to help our clients profitably scale their applications and even replace expensive enterprise solutions–why pay for Salesforce when you can have a custom solution for a fraction of the monthly spend? 

Recently, Township inherited an application that was burdened by longstanding issues and lacking easily scalable infrastructure. The organization's product owners reached out to Township to replace this system with one that retained all of its functionality but featured an improved, reliable, and easily maintainable architecture. 

Phoenix & LiveView were the natural choice for Township to rebuild all of the interactivity without adding complexity. LiveView enabled PubSub notifications, real-time user tracking, and streamlined asset management, allowing us to rebuild the entire application within the constraints of a limited budget. 

Thanks to Phoenix, the app rose from its ashes as a resilient and elegant program capable of scaling tenfold over the next year.

Connect your device without overcomplicating it.

Elevating a physical product into a smart connected device⤤ is one of Township’s favorite challenges. We recently had the opportunity to partner with a growing startup to develop the software behind a new product they were bringing to market. Township was tasked with enabling the physical system to be fully programmable through a user’s iOS smart device via Bluetooth and to allow users to fully customize their profile. 

Township leveraged Phoenix’s performance and data processing capabilities to process data streams from hardware devices that were captured in a React Native app. The API parses raw binary data dumps into user activities that include important summarizations of user activity. What makes Phoenix unique in this case is its ability to scale these computation-intensive processes up and down instantaneously while also serving normal requests & functionality. 

Phoenix’s lightweight, but mighty features made it easy to uncomplicate potentially complicated requirements. For example, the system’s computations also needed to factor in local weather conditions. To accommodate this feature, Township developed a workflow to fetch weather information from a third-party API. The challenge here was to ensure the user’s experience wasn’t degraded while waiting for a slow weather request, but without generating excessive third-party API fees. Because of the BEAM & process modeling tools in Elixir, we can very quickly build out an in-memory cache that’s localized to the application process itself. No redis, no intensive cache busting tools, just Elixir & OTP.

shapes
Get in tune with Township

Join our email community