Best of Elixir2024

  1. 1
    Article
    Avatar of communityCommunity Picks·2y

    WhatsApp, Discord, and the Secret to Handling Millions of Concurrent Users

    Discover the secret behind handling millions of concurrent users with ease using the Erlang Virtual Machine (BEAM) and Elixir. Learn about the origins of Erlang and Elixir, the core features that make BEAM a secret weapon for real-time applications, and real-life case studies from WhatsApp and Discord. Other companies such as Spotify, Pinterest, Pepsico, Financial Times, and Heroku have also adopted Erlang-based languages for high concurrency, fault tolerance, and scalability.

  2. 2
    Article
    Avatar of bytebytegoByteByteGo·2y

    How Discord Serves 15-Million Users on One Server

    Discord found ways to dramatically expand their infrastructure to handle the growing MidJourney community and keep their servers active.

  3. 3
    Article
    Avatar of devtoDEV·2y

    From Next.js to Rails then Elixir: My journey through React.js burnout

    The author shares their journey through React.js burnout and their switch to different frameworks like Gatsby.js, Next.js, Remix, Ruby on Rails, and Elixir with Phoenix. They highlight the challenges and benefits of each framework, ultimately recommending Elixir and Phoenix as their preferred stack.

  4. 4
    Article
    Avatar of hnHacker News·2y

    How Discord Reduced Websocket Traffic by 40%

    Discord significantly reduced its websocket traffic by almost 40% through a series of compression optimizations, including switching from zlib to zstandard with streaming compression and introducing a new passive session update method. Initially, tests showed zstandard underperforming due to the lack of streaming support. After adding streaming and fine-tuning compression parameters, zstandard outperformed zlib. Additionally, switching from sending full updates to delta updates for passive sessions further reduced bandwidth usage.

  5. 5
    Article
    Avatar of hnHacker News·2y

    algora-io/tv: Open source Twitch for developers

    Algora TV is an open-source, interactive livestreaming and video-sharing service tailored for developers. It supports in-video ads through its Live Billboards feature, helping developers monetize their streams. Setting up Algora TV locally requires Elixir, Erlang, PostgreSQL, FFmpeg, and OBS Studio. Documentation includes steps for cloning the repository, setting up the database, and configuring GitHub OAuth and Tigris for media storage and delivery. The platform relies on several external services, but users can skip those they don't need.

  6. 6
    Article
    Avatar of elixirforumElixir Forum·2y

    A free, 30min Elixir Quickstart Guide

    RunElixir.com 2 is a free, online quickstart guide designed to help developers get started with Elixir in 30 minutes. Inspired by the Rust by Example book and the Gleam language tour, it offers a condensed version of Elixir documentation and high-level introductions to various Elixir topics. It aims to show what Elixir and Erlang have to offer from a high level. Feedback and topic suggestions are welcomed.

  7. 7
    Article
    Avatar of curiosumCuriosum·2y

    Understanding essential SOLID Principles in OOP: A Developer's Guide

    SOLID principles, traditionally used in object-oriented programming, can be adapted to functional programming languages like Elixir to create maintainable, scalable, and adaptable software systems. The SOLID acronym stands for five key guidelines: Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle. The post details how each principle can be practically applied in Elixir to enhance code clarity, modularity, flexibility, and reliability while reducing complexity.

  8. 8
    Article
    Avatar of elixirstatusElixirStatus·2y

    Learning Elixir as a frontend developer

    A frontend developer shares their journey of learning Elixir and Phoenix to expand their backend skills. The post highlights the initial learning curve, challenges encountered, and the satisfaction gained from mastering new concepts. It discusses both the strengths and weaknesses of Elixir, along with the overall positive experience, while emphasizing the importance of stepping out of one's comfort zone to grow professionally.

  9. 9
    Article
    Avatar of elixirstatusElixirStatus·2y

    svycal/og-image: An open graph image generator, by SavvyCal ✨

    og-image is a web service that generates Open Graph images for webpages. It uses custom HTML/CSS templates and supports emoji. The templates can be easily modified or new ones can be added. The images can be previewed as HTML or rendered as PNG. Installation and local running instructions are provided. The project is implemented in Elixir and uses Puppeteer for capturing screenshots.

  10. 10
    Article
    Avatar of erikarowErika Rowland·2y

    Using use in Gleam

    Gleam's `use` expression simplifies handling callback functions, error management, and context management. Introduced in version 0.25, `use` replaces the need for extensive nested callbacks, making code more readable, especially when dealing with functions like `result.map` and `result.try` for error handling. It serves as syntactic sugar for creating cleaner and more maintainable code, similar to Rust's `?` operator.

  11. 11
    Article
    Avatar of awelixAwesome Elixir·2y

    Building a WoW server in Elixir

    Thistle Tea is a World of Warcraft private server project built in Elixir. The author shares details on implementing authentication, character creation, game server development, and synchronizing player actions. The project explores MMO server functionality using MaNGOS data, Elixir's actor model, and various Elixir tools. Future plans include adding PvP, quests, mob AI, and further optimizing the server.

  12. 12
    Video
    Avatar of t3dotggTheo - t3․gg·2y

    The Secret Language Scaling WhatsApp and Discord

    Many high-scaling applications like WhatsApp and Discord leverage the Erlang virtual machine (BEAM) for its fault tolerance, concurrency, and distribution capabilities. Erlang, developed in the 1980s for telecommunications, supports lightweight processes and message passing, making it ideal for modern real-time applications. Elixir builds on Erlang's strengths with more developer-friendly syntax, offering powerful tools for scalability and fault tolerance. Companies have successfully used these technologies to handle millions of concurrent users with minimal resources, demonstrating their effectiveness in building reliable, scalable apps.

  13. 13
    Article
    Avatar of lobstersLobsters·2y

    6 years with Gleam

    The author has been contributing to Gleam since 2018, appreciating its type-safe and scalable approach. Initially involved with Elixir and the BEAM, they found Gleam increased productivity, especially in rapid-change environments like startups. After a venture using Gleam and Elixir, they developed a JavaScript target for Gleam to extend its benefits to frontend development. Relocating to Sweden for a job at Northvolt, they continued leveraging Gleam for personal projects and noted ongoing improvements in the language. Recently, they discussed Gleam's promising future at Code BEAM Stockholm and are open to new opportunities.

  14. 14
    Article
    Avatar of elixirstatusElixirStatus·2y

    bluzky/salad_ui: Phoenix Liveview component library inspired by shadcn UI

    Salad UI is a Phoenix LiveView component library inspired by shadcn UI. To use it, add it to the list of dependencies in your mix.exs file, initiate it in your project with mix salad.init, and install desired components. Configurations such as custom error translations are supported. For local development, clone the repository, use the Salad Storybook for component previews, and run tests with mix test. Adherence to code formatting with mix format is necessary for successful pull requests.

  15. 15
    Article
    Avatar of elixirElixir·2y

    Announcing the official Elixir Language Server team

    The Elixir community announces the formation of an official Language Server team, funded by Fly.io and Livebook. The team aims to unify various implementations of the Language Server Protocol (LSP) for Elixir, merging the strengths of Lexical, ElixirLS, and Next LS. This collaboration seeks to improve the language server infrastructure, reduce technical debt, and enhance code intelligence tools. The community is encouraged to sponsor part-time developers, and progress updates will be shared on a new project website and social media accounts.

  16. 16
    Article
    Avatar of awelixAwesome Elixir·2y

    PhxTools

    Phx.tools is a shell script designed for configuring the development environment for Elixir and Phoenix on Linux and macOS easily. By following a few simple steps, users can install the necessary components to start the database server, create new Phoenix applications, and launch the server effortlessly.

  17. 17
    Article
    Avatar of communityCommunity Picks·2y

    Why Elixir? Phoenix & LiveView are unmatched for Modern Web Apps

    Elixir, Phoenix, and LiveView provide a powerful and scalable solution for modern web app development. Phoenix offers a code generator for easy CRUD feature generation and comes with built-in authentication and real-time client notification capabilities. LiveView is a highly efficient alternative to SPAs, allowing for fast and interactive web development. Learning Elixir, Phoenix, and LiveView can greatly enhance web app development productivity and make it enjoyable again.

  18. 18
    Article
    Avatar of curiosumCuriosum·2y

    Multi-Tenancy: A Strategic Guide for Optimal Application Management

    Multi-tenancy allows a single instance of a software application to serve multiple customers (tenants) while keeping their data and configurations isolated. This approach is beneficial for SaaS providers, government institutions, CRM systems, and more. The post explores different types of multi-tenancy setups and provides detailed steps and examples on implementing multi-tenancy in Elixir using schema prefixes, foreign keys, and the Triplex library.

  19. 19
    Article
    Avatar of curiosumCuriosum·2y

    Elixir programming language guide

    Elixir is a productive, scalable, and functional programming language that is highly admired. It offers benefits such as immutability, pure functions, and declarative programming. Big companies like Discord and Remote are investing in Elixir. Future development plans include improvements in the type system, enhancements to Phoenix LiveView, and advancements in AI and ML tools.

  20. 20
    Article
    Avatar of elixirstatusElixirStatus·2y

    mssantos/polo: REST client for browsers.

    Polo is a minimalist REST client for JSON APIs that you can run directly from your browser. It's built with Elixir and Phoenix, leveraging Phoenix LiveView for most functionality. After cloning the Polo repository and setting it up with Docker, you can create request collections and share them using Git. Custom JavaScript is minimal, with styles primarily written in custom CSS. Polo also supports request collections using NimblePublisher.

  21. 21
    Article
    Avatar of dockyardDockYard·2y

    Introducing LVN Go

    LVN Go is introduced as an alternative to Xcode for developing LiveView Native applications. This app allows developers to run their applications directly on a device without needing Xcode. It supports iPhone, iPad, and MacOS. Key features include LiveReload, a shake-to-refresh functionality, and a versatile settings menu. The post also hints at future improvements, such as tree-sitter syntax highlighters and language server integrations.

  22. 22
    Article
    Avatar of awelixAwesome Elixir·2y

    Data Visualization for Machine Learning in Elixir

    Explores the techniques for data visualization in machine learning using Elixir, utilizing libraries such as VegaLite and Axon. It includes methods for setting up dependencies, creating scatter plots, facetted scatter plots, and multiple scatter plots with the Iris dataset. Additionally, it demonstrates how to track and plot training metrics like loss and accuracy, both post-training and in real-time. The post concludes with a look into Axon's native plotting capabilities and hints at further exploration in Elixir's ML ecosystem.

  23. 23
    Article
    Avatar of elixirstatusElixirStatus·1y

    agentjido/jido: A foundational framework for building autonomous, distributed agent systems in Elixir.

    Jido is a foundational framework for building autonomous, distributed agent systems in Elixir. It allows for the creation of smart, composable workflows that can adapt to their environment. Key features include composable actions, real-time sensors, adaptive learning, and built-in telemetry. It is designed for multi-node Elixir clusters and includes robust testing tools. Jido is currently under active development, with the stable API encompassing Actions, Workflows, Agents, and Sensors.

  24. 24
    Article
    Avatar of appsignalAppSignal·2y

    Scaling Your Phoenix App in Elixir with FLAME

    FLAME is a new tool developed by the core Phoenix team to offload intensive tasks to remote nodes efficiently. It integrates seamlessly with Phoenix applications, offering built-in automatic scaling, minimal boilerplate code, and the ability to await results from background tasks. FLAME differs from other background job processing methods such as Task.async, Oban, and external serverless functions by simplifying setup and enhancing performance. It helps improve application responsiveness and offloads tasks from the main pipeline, making it an effective solution for scalable background job management in Elixir applications.

  25. 25
    Article
    Avatar of awelixAwesome Elixir·2y

    How to build a GitHub-style Markdown Editor

    Discover how to build a GitHub-style Markdown Editor using a combination of textarea and markdown-toolbar elements along with GitHub’s paste-markdown library. Learn about setting up the editor, adding Markdown preview functionality, and converting Markdown to HTML with syntax highlighting. The post also covers security considerations when rendering user-generated content.