Hello, Elixir Forum!
I just wanted to take a moment to share a personal (MIT-licensed) project I’ve been working on recently. It’s called Lucidboard, and it’s more or less a Trello clone. It’s a real-time, collaborative tool where folks can all work on the same board at the same time. Cards can be created, arranged in columns, and voted on. Just this basic functionality is very useful for lean coffee and retrospective meetings as well as simple brainstorming or planning.
I work at a big company, and I actually built the original version of this application about 5 years ago, using Node.js and Angular 1.x. After all this time, despite bugs, performance issues, and a complete lack of ownership or maintenance, quite a number of teams are still using it! In my quest to share my love for the astonishingly good Elixir stack, I set about rebuilding the tool. We’ve just deployed it for team members to use a couple weeks ago, and the feedback is very positive so far; folks are jumping in and using it for their daily work already!
I want this to be a community effort, so I’ve accepted pull requests from a number of my teammates. If anyone out there might be interested to contribute anything, reach out & jump in! We welcome pull requests!
The idea is to start simple, and I think we’ve met this target by now. From here, we would like to continue adding features, many of which will be options, per board. For instance, you might like to see WHO created a card or have someone’s name as having a related action item. Perhaps comment threads on cards is important to you or a task status-type field. These things could be toggled as needed, and board templates let you create a new board with a pre-defined set of these settings.
As for roles, we currently have board “ownership” which allows someone to manage the board settings, and this can be delegated to other users. A nearer-term feature I think will be “private” boards where owners can grant others “observer” or “contributor” roles on the board to allow them to view or interact.
I think it goes without saying how incredible LiveView and of course the Elixir language has been in developing this, particularly but not nearly limited to the real-time aspects. Not needing to deal with client-side state is a massive relief, compared to the original version which where everything had to be implemented twice – once on the server and once in the browser. And I feel like the code is organized and easy to work with: a complete reversal to how I feel about the original project.
At any rate, feel free to set up an instance of this for yourself and play around. A local, docker-based dev environment can be spun up very easily. We’d love to hear what you think!