simonsmith

simonsmith

Overwhelmed with libs. Which libs to use for a collaborative editor?

Hi,

I am bit overwhelmed with some of the tooling & libraries available in elixir & phoenix. I am looking to build a collaborative text editor in Phoenix as a test project as it is something I know quite well and it seems the perfect project for phoenix.

I can see things like https://github.com/deltadoc/text_delta , https://github.com/derekkraan/delta_crdt_ex and the Phoenix.Presence which all look useful, however I am not clear on well trodden path for this sort of app in elixir. Is there a recommended set of tooling for this sort of problem?

Most Liked

carterbryden

carterbryden

Welcome! I’ve felt the same before. There’s not as many universally used libraries in elixir yet as some languages, and people do things many different ways. It can be hard to know what path to follow.

My guess if that you’re not likely to find a well-trodden path for this in elixir right now. I think there are probably a lot of toy examples of this but I’d expect most libraries would be very new or lower level than what you’re hoping for.

My suggestion instead would be to take a step back and consider how you might do this in the simplest way possible without a library. It would probably look something like this (assuming phoenix):

  • A page (template, controller, and router path)
  • A textarea on that page
  • A phoenix channel to send changes to the server, and to send those changes out in real time to other people on the page

After that you’d have a basic real-time updating collaborative text editor.

If I was doing this myself I’d most likely use a phoenix liveview, which works really well for this kind of thing, but will involve some extra learning.

Where Next?

Popular in Questions Top

srinivasu
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call th...
New
yawaramin
In the Dialyzer docs ( http://erlang.org/doc/man/dialyzer.html#requesting-or-suppressing-warnings-in-source-files ), there is a way to tu...
New
tduccuong
Hi, is there any work on GUI with Elixir, that is similar to Electron/Javascript? My idea is to bundle Phoenix and BEAM into a single se...
New
Werner
Hi, I’m using Ubuntu 18.04 and after updating to OTP-24.0 yesterday i have this warning when I run “mix local.hex”: 14:57:30.512 [warn] ...
New
logicmason
Hi there, I'm working through my first release with elixir/phoenix. I've built a release with distillery and found that it crashes when I...
New
Jim
As a follow up to my earlier question: I have the code compiling and running but not getting a successful login from the rest server. ...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
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
hpopp
To simplify some tasks at work, I wrote and published this package yesterday. It’s a simple macro that enables Access behaviour on struct...
New

Other popular topics Top

dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
lucidguppy
I have a super simple question about elixir - how would I take a file like this foo bar baz and output a new file that enumerates th...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement