What Elixir related stuff are you doing?

We are using Phoenix / LiveView to build a fleet management portal for autonomous mobile robots. This photo shows a remote operations capability we recently built. It allows a user to remotely call a logistics robot to a map waypoint, and visualize its position on that map as it progresses.

We have a fair number of other features available with this so far. The experience has been really positive.

Some things we are using:

  • AWS (lambda integrations, ECS, SQS, S3)
  • MQTT
  • Protobuf (via protox)
  • Oban
  • Custom serialization library for our robotics middleware layer (turned out to be really easy to do with binary pattern matching)

12 Likes

Back to the Elixir and Phoenix docs, doing some reviews. Also having fun with Liveview.

Awesome stuff @jhosteny. Do you have a URL we can check out, or is this a private pre-release project?

1 Like

Just installed Elixir, Erlang and PostgreSQL with pkgx - using this guide:

Quick, easy and pain free install!

1 Like

Hi @alvinkatojr unfortunately, not right now. This is in a private portal that we use for our customers. If I can think of some other interesting things to show, I will post them.

1 Like

No worries, @jhosteny. I understand. That’s still a dope project!

1 Like

Always a great comment to see, usually as a parenthetical. Binary pattern matching is fantastic!

3 Likes

Trying to finish the Programming Phoenix LiveView book.
Had a great time but I’m busy recently :frowning: .

3 Likes

Reviving my SQLite adapter in Elixir that is based on Rust code. Finishing the basics – opening and closing connections, pooling, configuration of various timeouts and limits, basic execution of SQL statements – and will add a ton of tests very soon, after which I am moving towards Ecto integration.

It will be an extremely performance-focused library that aims to work with Ecto the way all other well-supported databases do. Main value-add is speed and good data type validation / strictness.

Sadly job search is preventing me from giving it the full attention it deserves. Hopefully that changes soon.

10 Likes

I’ve been working on a set of libraries to allow low code software development for the elixir/phoenix framework.

There are several independent libraries for accomplishing that goal:

  • Schema / Context DSL (already published)
  • UI Liveview low code (almost ready) - produce index, show, modals out of a couple of lines. Including validation, complex form layouts (with tabs, groups) and associations (has_many, belongs_to)
  • Fine grained permissions and authorization with minimal coding (in the design phase)
  • Navigation menu facilitator.

Most of them use some kind of DSL producing a very opinionated equivalent code, and enabling a small set of available configuration.

3 Likes

Finally moved this to Phoenix! InverterUi · Phoenix Framework

1 Like

After a short break from Elixir land, I’m finally diving back into Programming Phoenix Liveview.

Let’s see if I can finally bring the book to a close.

2 Likes

I am working towards finishing Pragmatic Studios Elixir & OTP course.

2 Likes

Currently I am playing with tidewave/claude desktop and it is uncanny.

2 Likes

I have been working a bit on GitHub - Zurga/ecto_sync: Cache the EctoWatch events and sync your rows. It is an extension of ecto_watch and will sync any Ecto struct that you are subscibed to from a cache.

article = Articles.get_article(1, preload: [:comments])
EctoSync.subscribe(article, assocs: [:comments])
...
def handle_info({{Comment, :inserted}, sync_args}, socket) do
  article = EctoSync.sync(socket.assigns.article, sync_args) # contains comment inserted by a different process
end
1 Like

Built an intern placement system in Phoenix LiveView — Ranked Placement has launched! — Computer Things

4 Likes

Building our own CMS. We had a alpha version that we are using for our small clients because we did not want to use Wordpress anymore, we learned a few stuffs now we are making it big and for real.

5 Likes

So far this year I’ve been learning elixir and ash, building some components and ash extensions on my way to contributing a declarative, intent based, autonomous telecommunications service and resource management platform.

Currently working on AshNeo4j, a Neo4j datalayer for Ash as I find graphs tremendous for modelling knowledge, service expectations and the actual network.

Earlier this year I contributed an elixir protocol Outstanding for comparing expectations with actual.

and an ash extension for declaring what outstanding does on your resource.

I’ve made some other minor contributions which were only possible because of the welcoming and helpful community, which I’m incredibly proud to be part of.

7 Likes

Hey! I’m building a library (Vancouver) to make it easier to add MCP tools to your phoenix/bandit servers. It’s super new, and I’d love some feedback. :pray:

This might be interesting to you if:

  • you’re familiar with phoenix
  • are interested in MCP
  • use Claude Desktop

If so, you’ll be able to use Vancouver to create a working (local) MCP server in a couple of mins.

Here’s an example of what creating MCP tools looks like:

defmodule MyApp.Tools.CalculateSum do
  use Vancouver.Tool

  def name, do: "calculate_sum"
  def description, do: "Add two numbers together"

  def input_schema do
    %{
      "type" => "object",
      "properties" => %{
        "a" => %{"type" => "number"},
        "b" => %{"type" => "number"}
      },
      "required" => ["a", "b"]
    }
  end

  def run(conn, %{"a" => a, "b" => b}) do
    send_text(conn, "#{a + b}")
  end
end

Let me know what you think. :slightly_smiling_face:

3 Likes

I just started rereading the official docs after not touching Elixir for several years. I really enjoyed working with it back then, and now that I’m kicking off a new side project, I figured it was a good time to use Elixir again.

3 Likes

What’s Phoenix/Bandit?

1 Like