Intro

To solidify and strengthen my Elixir knowledge and because it’s so damn cool!
17 Awesome Elixir Open-Source Projects

Elixir Ecosystem

Besides the Phoenix framework, how are elixir projects even structured?>

  • Review the course material from T4
  • What type of projects can I build?
  • Do they all run using mix?

Elixir library for Discord

https://github.com/Kraigie/nostrum

Microsoft’s Go port for TS compiler

https://www.youtube.com/watch?v=pNlq-EVld70

“Anders Hejlsberg (creator of Typescript, C# and much more) using Go from Ken Thompson (creator of C lang, Unix, Go and much more) is nothing less than legendary. Two giants” @leandrocrs on Youtube

Their Repo: https://github.com/microsoft/typescript-go?tab=readme-ov-file
Perplexity search

Simple API servers

Try out the HTTP abstraction Plug
Explore microframeworks like Trot,Maru, and Placid
Reading material:

Obsidian blog/wiki in Phoenix Liveview

Use Phoenix to build a site to host my Obsidian files.
Likely need to convert the Markdown to HTML (integrate NaqaMD).

Drive API server

Command line tool (script) runs a script that makes an API request to an Elixir server.
Based on the endpoint and the data type it’ll organize and store it in my store.

File Sync Service (or send files from one PC to another)

To fix the long standing issue you’ve had with syncing files between computers.
Perhaps designate (mark) a directory and have the program listen or check for changes (sort of like a version control system).

Real-time Chat Application with Phoenix LiveView

Build a chat application that leverages Phoenix LiveView for real-time updates without JavaScript. This project would showcase Elixir’s concurrency model and the power of the Phoenix framework[1]. You could implement features like:

  • Multiple chat rooms
  • User presence indicators
  • Message reactions
  • File sharing

Distributed Task Processing System

Create a system that distributes tasks across multiple nodes, demonstrating Elixir’s ability to build scalable and fault-tolerant applications[2]. Features could include:

  • Task queue management
  • Worker node allocation
  • Automatic failover
  • Real-time progress monitoring

IoT Weather Station with Nerves

Develop an IoT weather station using Nerves, Elixir’s framework for embedded systems[7]. This project would highlight Elixir’s capabilities in IoT development. You could implement:

  • Sensor data collection and processing
  • Remote firmware updates
  • Data visualization dashboard
  • Alerts for extreme weather conditions

Concurrent Web Scraper

Build a high-performance web scraper that utilizes Elixir’s concurrency model to efficiently gather data from multiple sources simultaneously[4]. Features might include:

  • Parallel processing of multiple websites
  • Rate limiting and politeness controls
  • Data transformation and storage
  • Extensible plugin system for different data sources
    Think of things you’d need to build a scraper for.

Fault-Tolerant Microservice Server

Create a microservice server that showcases Elixir’s fault tolerance and scalability[2].

Citations:

[1] https://serokell.io/blog/elixir-open-source-projects
[2] https://www.erlang-solutions.com/blog/what-is-elixir/
[3] https://dev.to/w3ndo/elixir-first-impressions-2hj2
[4] https://github.com/h4cc/awesome-elixir
[5] https://www.alooba.com/skills/programming-languages/programming/elixir/
[6] https://www.reddit.com/r/elixir/comments/1g8eho8/looking_for_advice_on_projects_to_build_in_elixir/
[7] https://elixirforum.com/t/projects-for-a-beginner/44461
[8] https://keenethics.com/blog/unlocking-the-power-of-elixir-benefits-for-software-development