Elixir Wizards is an interview-format podcast, focused on engineers who use the Elixir programming language. Initially launched in early 2019, each season focuses on a specific topic or topics, with each interview focusing on the guest's experience and opinions on the topic. Elixir Wizards is hosted by Eric Oestrich and Sundi Myint of SmartLogic, a dev shop that’s been building custom software since 2005 and running Elixir applications in production since 2015. Learn more about how SmartLogic uses Phoenix and Elixir. (https://smartlogic.io/phoenix-and-elixir?utm_source=podcast)
Creating Horizon: Deploy Elixir Phoenix Apps on FreeBSD with Jim Freeze
The Elixir Wizards welcome Jim Freeze, organizer of ElixirConf and creator of the Horizon library. Jim shares his journey from organizing Ruby conferences to founding and growing ElixirConf into the community cornerstone it is today. He reflects on the challenges of running a major conference, how COVID-19 shaped the event, and why the talks remain an evergreen resource for the Elixir ecosystem.
We discuss Horizon, Jim’s deployment library for Elixir and Phoenix applications with Postgres on FreeBSD. Driven by a need for simplicity and cost-effectiveness, Jim explains how Horizon minimizes external dependencies while delivering fault-tolerant and streamlined setups. He compares it to tools like Fly, Terraform, and Ansible, highlighting its low cognitive load and flexibility—key benefits for developers seeking more control over their deployment environments.
Jim also unpacks the broader value of understanding and customizing your deployment stack rather than relying solely on managed services. He discusses the benefits of using FreeBSD, including its stability, security, and performance advantages, as well as its robust ZFS file system.
Jim emphasizes the importance of coherent deployment workflows, community collaboration, and contributions to open-source projects like Horizon. He invites listeners to explore Horizon, share feedback, and own their deployments.
Topics discussed in this episode:
- Jim Freeze’s background organizing RubyConf and founding ElixirConf
- Reducing reliance on managed services and external dependencies
- Simplifying deployments with minimal tools and lower cognitive overhead
- The trade-offs of cutting-edge tools vs. stable, well-documented solutions
- The importance of customizing deployment tools to meet specific needs
- Addressing challenges with Tailwind compatibility
- Streamlining the FreeBSD installation process for Horizon users
- Community collaboration: contributing to open-source tools
- Jim’s vision for Horizon: PKI support, hot standby features, and serverless potential
Links mentioned
Nine Minutes of Elixir
https://www.youtube.com/@ElixirConf
https://github.com/liveview-native
https://github.com/elixir-nx/nx
https://2024.elixirconf.com/
https://github.com/jfreeze/horizon
https://hexdocs.pm/horizon/deploying-with-horizon.html#web-cluster-topology
https://kamal-deploy.org/
https://fly.io/
https://aws.amazon.com/console/
https://www.digitalocean.com/
https://cloud.google.com/
https://www.cloudflare.com/
https://www.hetzner.com/
https://www.proxmox.com/en/
https://nginx.org/
https://github.com/openzfs/zfs
Zettabyte File System https://en.wikipedia.org/wiki/ZFS
https://www.postgresql.org/
https://www.terraform.io/
https://www.ansible.com/
https://docs.freebsd.org/
https://www.redhat.com/
https://ubuntu.com/
https://esbuild.github.io/
Listener's Survey: https://smr.tl/EWS13
Special Guest: Jim Freeze.