Gabbler - Reddit-like LiveView-No-Javascript Phoenix site

A while back to test the elixir ecosystem and explore the language I built a reddit style site. Always wanted to refactor it and learning LiveView was a great excuse to do so. The project refactor is pretty far along and now has the following goals:

  1. continually update it to try and find and set standards for using LiveView & Phoenix in websites that can in theory hit high complexity or scale (feedback appreciated for those interested! I have a small list of improvements I already want to make and definitely am interested in more ideas for things like handling needs-auth events and such. I want to also improve the clarity on the event driven components)

  2. Update as LiveView evolves toward 1.0 release. I took out file uploads for example because I heard that’s getting some love soon so I’ll wait on that.

  3. Theorize and describe how it would scale in theory and what factors to consider in distributed OTP design. Could make a nice example eventually.

  4. Avoid all Javascript! And evolve the app so it’s nicely usable as a core for completely different site designs (as long as it’s hacker news/reddit like). Make it straightforward as possible to swap out components handling data / uploads / etc

Code:
https://github.com/smileys-tavern/gabbler

And a demo site so you can see how the features go together:
https://www.smileys.pub (will make more mobile friendly soonish)

I’ll want to write a more detailed article soon about designing this but definitely interested in thoughts so far

13 Likes

I don’t mean to be rude, but can we stop using “No JavaScript” with app implementing LiveView? “No extra JS” maybe, but LiveView itself has JS in it to handle all those bindings.

If a user using a JS disabled browser tries to use a LiveView app with the title “No JavaScript”, they will be disappointed.

7 Likes

Thanks I did think on that and figured the context of being on the elixir forum meant the idea would get across ok. If I was somewhere generalized I might have say “without writing js”. Fair point about the browser issue

1 Like