<story><title>Escaping the SPA rabbit hole with modern Rails</title><url>https://medium.com/@jmanrubia/escaping-the-spa-rabbit-hole-with-turbolinks-903f942bf52c</url></story><parent_chain></parent_chain><comment><author>peteforde</author><text>I have nothing against SPAs for complex UI interactions. It&amp;#x27;s sort of like taking anti-biotics; there should be a moment of reflection when you should justify your true need, lest the cure be worse than the disease. Most developers of a certain age have come up when it&amp;#x27;s SPA by default, and can&amp;#x27;t truly defend why they need it.&lt;p&gt;In this thread, there are several claims that it&amp;#x27;s impossible to write well-organized jQuery. That sounds an awful lot like dogma to me. Also, your inability to write well-organized code says more about your coding and team-management skills than it does about any one approach. Any tech is only as good as the team using it.&lt;p&gt;A few years ago, Sam Stephenson (who originally wrote the Prototype library, before jQuery was a thing) gave an excellent talk on Turbolinks at RailsConf. I recommend the whole talk (turn it up to 1.5x speed, of course) but at 4:12 he does an amazing job of showing how the SPA path leads to insanity.&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.youtube.com&amp;#x2F;watch?v=SWEts0rlezA&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.youtube.com&amp;#x2F;watch?v=SWEts0rlezA&lt;/a&gt;&lt;p&gt;Here&amp;#x27;s a mental exercise for you: the next time you start a new project, instead of deciding which SPA framework to use, start with an assumption that an SPA is wild overkill for the first iteration of your application - especially if few people on your team have working expertise with the SPA in question. Then see if you can argue FOR the tech. It&amp;#x27;s much harder to justify something you don&amp;#x27;t need if you start with an honest conversation about how you probably don&amp;#x27;t need it. (This works for throwing out CDs, too: start with the assumption that they are all garbage, they all go. Then force yourself to make logic-based arguments for each one you keep. Your outcome will be night and day from if you start with everything in a keep pile.)</text></comment>
<story><title>Escaping the SPA rabbit hole with modern Rails</title><url>https://medium.com/@jmanrubia/escaping-the-spa-rabbit-hole-with-turbolinks-903f942bf52c</url></story><parent_chain></parent_chain><comment><author>lucidone</author><text>Are you building a website? The practices espoused by the author will be ideal.&lt;p&gt;Are you building a web app? Will you have a mobile client alongside your web app? Using a javascript framework for your client(s) and decoupling your data from it&amp;#x27;s presentation will be a fruitful investment. All of these frameworks and their associated happened for reasons, and they didn&amp;#x27;t involve traditional MVC being good enough for everything.&lt;p&gt;As an aside, I find this viewpoint prevalent in the Rails community and the Rails job I had (so, caveat, I&amp;#x27;m coloured by my personal experience). It also lead to a culture of staunch refusal to learn or do anything new in that job, and the quality of the product suffered. It consequently led to me leaving the job, and being much happier for it.</text></comment>