webofbits

webofbits

Helix - Visual AI Agent Workflow Designer

Helix is a visual workflow designer for AI agents and multi-agent systems, built with Phoenix and React Flow. It provides an intuitive drag-and-drop interface for planning and designing multi-agent workflows, with real-time collaboration powered by websockets.

:warning: Note: Helix is an early-stage project in active development. Current functionality is limited, with workflows stored in localStorage. It is not yet feature-complete.

I’m sharing this work hoping to gather some early feedback.

Key Features

  • Node-based workflow design with customizable nodes and connections

  • Real-time multi-user collaboration via Phoenix Channels (doesn’t have proper user management or access controls – I am working on designing the data model)

  • Modern UI with light/dark themes and responsive design

  • Workflow management (save, load, duplicate) with local persistence.

  • Export to PNG

Future Plans

The primary goal is to use Helix for AI workflow planning and later add a JSON/DSL export to be used with other libraries that could provide execution. In the long term, I could add some execution for testing purposes but that’d come with its own complexity thus for the time being I am just focusing on the diagramming aspect.

Tech Stack

  • Backend: Elixir 1.17+, Phoenix, PostgreSQL

  • Frontend: React, TypeScript, React Flow, TailwindCSS

  • Real-time: Phoenix Channels with GenServer session management

  • Testing: ExUnit, Jest, Playwright

Notes

I’m aware this project does not use LiveView, which is often the preferred approach in the Elixir community. If React is not of interest here, I completely understand. That said, I’d especially value JavaScript/React feedback from those familiar with the ecosystem.

Currently, workflows are for planning and design only (not executable yet).

Requirements

  • Elixir 1.17+

  • Node.js 18+

  • PostgreSQL 14+

Links

  • Hex: Not yet published

  • Documentation: Available in README

#ai

Most Liked

BartOtten

BartOtten

Hologram? Although I have no idea if it plays well with the fast amount of JS libs for charts and client UI interactions.

bartblast

bartblast

Creator of Hologram

Good point! If there’s specific JS library integration needed, it’s probably worth waiting for the JS interop that’s coming soon. But besides that, the charts and the whole UI could actually be implemented in pure Elixir if you choose to go that route.

No need to leave the “fast UI bits” to JS when you can handle dragging, animations, and all the interactive parts directly in Elixir on the client side :slight_smile:

Jskalc

Jskalc

I can share my 2 cents here. I’m the author of live_vue library, and I’m mixing live views with frontend frameworks on a daily basis for more than a year :wink:

All in all, LiveView plays nicely with JS frameworks when instead of rendering HTML it synchronizes top-level props to the frontend component and handles selected client-side events in the same way as in a regular LiveView. That way you get both of two world - your live view handles routing, data fetching and updates, and your frontend handles client-side state, rich interactivity and is free to use any library from a selected ecosystem. You might want to read that post.

Personally I’ve built entire SaaS product https://postline.ai that way - each of my live views renders just a single vue component. It’s similar to IntertiaJS, but uses LiveView behind the scenes.

There’s also live_svelte and live_react. I think my library is the most feature-complete, but since your frontend is written in react it might be the easiest to migrate.

Good luck, hopefully it will be useful!

bartblast

bartblast

Creator of Hologram

I think there might be a small misunderstanding about how Hologram works. You don’t need to use macros or learn DSL at all. Hologram lets you write regular Elixir code that gets transpiled to JavaScript - so you’re working with pure Elixir.

The JS interop page I mentioned is specifically for interfacing with existing JavaScript libraries client-side when you need them, but the core framework doesn’t require any JS knowledge.

Speaking of workflow builders, Aldous Waites built a great Hologram interactive demo with snappy, draggable graph nodes that showcases how smooth client-side interactions feel in Hologram. The implementation is surprisingly clean - what would require complex JavaScript coordination in traditional approaches becomes straightforward Elixir code.

Since you’re working on a visual workflow designer, this demo might be relevant to show what’s possible with Hologram for that kind of interactive UI! The dragging, real-time updates, and visual feedback all happen smoothly on the client side, written entirely in Elixir.

O0Cy408ItnJITGOg

webofbits

webofbits

React’s complexity ramps up fast. Not so much in building UIs—that part’s fine—but once backend auth and coordination come in, things get heavy.

I’m considering giving LiveView a try. By cutting most of the frontend-backend communication, it could make handling complexity much simpler. I’d keep React Flow in play through LiveView hooks.

Where Next?

Popular in Announcing Top

dimamik
Vault is a lightweight Elixir library for immutable data storage within a process subtree. Due to Elixir’s actor model nature, it’s comm...
New
Flo0807
Hello everyone! I am excited to share our heart project Backpex with you. After building several Phoenix applications, we realized that...
New
roriholm
Hi! I just wanted to share my public release of something I’ve been working on. The Paradigm library provides some core utilities for a d...
New
johantell
Ever struggled with mocking external HTTP services in Elixir tests? Found yourself writing brittle mocks that don’t catch real-world enco...
New
tugayac
Hey Elixir Community! A few months back, I open sourced a link management system we had built into an app. It’s now got enough features ...
New
jallum
Turbopuffer - Elixir client for vector and full-text search I’m excited to share Turbopuffer, a new Elixir client library for the Turbop...
New
leandrocp
MDEx is a fast and extensible Markdown parser and formatter. Fast Leverage Rust to parse, manipulate and render documents using: comra...
New
zoedsoupe
update (since 2025-07-24) the project got forked and rebranded to anubis-mcp, since i not on CloudWalk anymore and can’t ensure they will...
New
germsvel
PhoenixTest provides a unified way of writing feature tests – regardless of whether you’re testing LiveView pages or static pages. It al...
New
volcov
Hello, How is everyone? I hope you’re well =) I worked on a project with some legacy code that existed before Oban’s arrival. This leg...
New

Other popular topics Top

freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
William
I would like to know that is there any online source for learning Phoenix Framework for building E-Commerce Store? Any advantage on build...
New
_russellb
I want to try my hand at web scraping. What tools/libraries do I need to use. I’m hoping to turn this into something professional so don’...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
polypush135
As many of you may have realized by now (sorry for all the posts here) I’ve been working on a db problem where I’m trying to aggregate a ...
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New

We're in Beta

About us Mission Statement