<story><title>Phoenix LiveDashboard</title><url>https://github.com/phoenixframework/phoenix_live_dashboard</url></story><parent_chain><item><author>mikl</author><text>LiveView is such a game changer for Phoenix (and thus Elixir). From being “just another web framework” (albeit a very nice one), LiveView enables a whole different paradigm for web applications. As a developer, it’s like having superpowers. What would have taken days to build with an SPA or similar “fat client” JavaScript can be done in hours with LiveView.</text></item></parent_chain><comment><author>erichocean</author><text>I built a pop-up store for Nike&amp;#x27;s NBA All Stars event that used this approach about 5 years ago (in Node.js).&lt;p&gt;Productivity was extremely high, and even better, you could restart clients and since all app state was on the server, they would start up wherever they had left off. I stored the state in LMDB transactionally, so I could also bounce the server any time. Clients would reconnected with their WebSocket &lt;i&gt;while it was being used&lt;/i&gt; and no one was the wiser. Did that dozens and dozens of times during the event.&lt;p&gt;I used Blossom (SproutCore derivative) for the UI and statecharts to make that happen. All actions were sent to the server (written in Node.js, with LMDB as the persistent storage). We also had iOS apps for the back office and customer support reps that worked identically (but in Objective-C).&lt;p&gt;Entire project took 5 weeks with myself as the only developer, replicated a (beautiful) iPhone app Nike made called SNKRS entirely in Blossom and ran it on these huge 30inch touch screens inside a full screen Chrome instance.&lt;p&gt;Very fun project, and we sold ~1M in shoes (through Stripe) in four days. Freaking cold though, February in NY!&lt;p&gt;Link to the event: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;dunksandjordans.wordpress.com&amp;#x2F;2015&amp;#x2F;02&amp;#x2F;13&amp;#x2F;nike-pop-up-shop-for-all-star-weekend&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;dunksandjordans.wordpress.com&amp;#x2F;2015&amp;#x2F;02&amp;#x2F;13&amp;#x2F;nike-pop-up...&lt;/a&gt;</text></comment>
<story><title>Phoenix LiveDashboard</title><url>https://github.com/phoenixframework/phoenix_live_dashboard</url></story><parent_chain><item><author>mikl</author><text>LiveView is such a game changer for Phoenix (and thus Elixir). From being “just another web framework” (albeit a very nice one), LiveView enables a whole different paradigm for web applications. As a developer, it’s like having superpowers. What would have taken days to build with an SPA or similar “fat client” JavaScript can be done in hours with LiveView.</text></item></parent_chain><comment><author>elamje</author><text>I think very highly of elixir and Jose. After 3 months of using .NET Blazor in production, I can say that LiveView and Blazor have some trade offs that people don’t talk about.&lt;p&gt;For those that don’t know what they are, they basically keep a websocket connection open between the client and server to allow the client to call Elixir and C# functions instead of javascript frameworks that call some rest api endpoint. You can write HTML click listeners that are in the server language rather than js.&lt;p&gt;It’s powerful, but there is a latency trade off since most UI events end up being handled by the server, the client might notice this latency in the UI. Blazor specifically has issues with connectivity, which means your client is completely locked out of the UI until a manual refresh.&lt;p&gt;It’s true that this is certainly a paradigm shift, and maybe just a stepping stone to web assembly web apps written in a server language.&lt;p&gt;I haven’t used LiveView, but I can imagine it’s better than .NET at scaling since it runs on BEAM rather than the CLR, which means it’s likely the better choice if you will need to maintain a lot of client connections in your app.</text></comment>