Posted 3 months ago

TBD #115

Please don't read this. 🙏

This is just me capturing my thoughts. It's not fully-formed and I'm not inviting comments/feedback yet ... 👌 Will be adding to this over the next couple of weeks and we can discuss when each section is updated. As you can see, it's just an outline, that's very much on purpose.

Boilerplate, Misdirection and Magic 🪄

Phoenix has ballooned in it's scope and complexity and thus a basic Phoenix project has considerably more "boilerplate".

A good history lesson is to look at Chris McCord's phoenix_chat_example which is built with Phoenix 1.3:

https://github.com/chrismccord/phoenix_chat_example/blob/7fb1d3d040b9d1e9a1bbd239c60ca1f4dd403c24/mix.exs#L24-L30 image

It has 5 dependencies and considerably less code.

By contrast we recently updated our phoenix-chat-example to Phoenix 1.7 https://github.com/dwyl/phoenix-chat-example/pull/152

https://github.com/dwyl/phoenix-chat-example/blob/e10e8dcdf730c1da22f3ab7d7357ebe608848833/mix.exs#L45-L59 image

15 dependencies. and this is only because we created the example app with the --no-mailer --no-dashboard --no-gettext flags to exclude mailer, dashboard and gettex (translation).

Phoenix 1.7 🚀


Modals 🤦‍♂️


Ecto 💔

Maintenance ⏳

Types 🤷‍♂️

Supervision 👮‍♀️

AI / ML 🤖

Parallel Processing 💻

Channels ⏩

Presence 👥

Auth 🔒

UI Frameworks 🦄

Sunk Cost Bias? 💸