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:
-
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)
-
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.
-
Theorize and describe how it would scale in theory and what factors to consider in distributed OTP design. Could make a nice example eventually.
-
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