RailsConf 2016 - Turbolinks 5: I Can’t Believe It’s Not Native! by Sam Stephenson

Confreaks6 HN recommenders · 2017–2020
61K views · talk · dated · Uploaded 2016-05-26

Sam Stephenson's RailsConf 2016 talk on Turbolinks 5, showing how small teams can ship fast Rails apps in the browser and hybrid iOS and Android apps sharing one set of web views.

Repeatedly urged on people choosing a stack, as a case against heavy SPA complexity and for shared web and native code.

Watch on YouTube

15 comments from Hacker News

@trcollinson2017 · in “Modern Front-end in Rails”

I built a rather extensive application for a client over the last 18 months using Rails API and Angular, using a number of these sorts of principles. While it is entirely possible to use what the article suggested, I argue it's a premature optimization and may be a detriment to the entire project. We're now actively removing the Angular portion of the project and going back to the good old way. I wouldn't say this decision was made without careful thought nor without weighing many options. But when it comes down to it, many line of business applications (which is what I see a lot of in the market) don't need the level of sophistication the instructions in this article gives. Most applications need to be reasonably fast, reasonably responsive, and extremely easy to maintain and extend. Does working with all of these modern front end tools that change so quickly and given at least one order of magnitude increase in complexity also give the application a equal increase in speed, responsiveness, maintainability, and extensibility? I don't think so. I'm not the first person to say this. Take a look at this presentation by Sam Stephenson, it will be worth your while: [VIDEO]

Strongly recommendsView on HN
@thrownaway9542018 · in “Ask HN: Best web framework in 2018”

[VIDEO] if you haven't seen Sam Stephenson Turbolink talk from RailsConf 2016, you should give it a watch. What they did in a year with a small team is amazing.

RecommendsView on HN
@andrei_says_2018 · in “Ask HN: Benefits of front-end JavaScript frameworks?”

Managing complex DOM transformations and avoiding pageloads on every change do carry benefits. Some examples: chat, Facebook-like functionality, complex custom interfaces. There is however a strong tendency to build complex front-end apps because of the trend to do so. This increased complexity results in higher costs without significant benefits (I’m very open to changing my mind). Turbolinks for example is a fantastic backend-agnostic library which eliminates the pageloads in CRUD apps at close to zero development costs and makes the speed almost indistinguishable from SPA implementations. I highly recommend this talk on managing the complexity of basecamp and sharing a codebase between web and native apps. [VIDEO] Unless you’re building extremely complex interfaces and if you are able to correct for trendiness you may conclude that a monolithic app with possibly Turbolinks and some front end sugar is the best choice. You can always offload some work to the client once you get to a billion users and servers become too expensive. Until then maybe focus on launching.

RecommendsView on HN
@thrownaway9542018 · in “Ask HN: How are you building cross-platform (mobile and browser) apps?”

there was a talk at RailsConf 2016 by Sam Stephenson about how Basecamp used Turbolinks to create version 3 of their, an android and ios version in 18 months. [VIDEO]

@peteforde2018 · in “Escaping the SPA rabbit hole with modern Rails”

I have nothing against SPAs for complex UI interactions. It'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's SPA by default, and can't truly defend why they need it. In this thread, there are several claims that it'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. 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. [VIDEO] Here'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's much harder to justify something you don't need if you start with an honest conversation about how you probably don't need it. (This works for throwing out CDs, too: start with the a

Strongly recommendsView on HN
@thrownaway9542018 · in “Rails, still?”

You achieve the same thing with Rails and Turbolinks. Watch this presentation by Sam Stephenson to see what I mean. [VIDEO]

RecommendsView on HN
@trcollinson2019 · in “Ask HN: First mobile side-project: What stack to choose in 2019?”

I found this video and talk to be very enlightening. I know it's not the neatest, most exciting framework, but Rails with Turbolinks sure can do the trick. My last two mobile applications were built in the same way that Sam Stephenson describes here. [VIDEO]

Strongly recommendsView on HN
@peteforde2019 · in “Ask HN: Go-to web stack today?”

I urgently encourage you and anyone else reading this to check out Turbolinks 5, ideally in tandem with Stimulus. [VIDEO] [LINK] [LINK] You can get all of the benefits of server-generated pages with the speed of an SPA. 90%+ of the sites built using SPAs would be better served by Turbolinks and Stimulus.

Strongly recommendsView on HN
@fouc2019 · in “Ask HN: What tech stack would you use to build an open-source Google Keep clone?”

I'm a rails dev too, last year I was making a mobile web app where I was concerned about frontend, so I started making a SPA in mithril.js and using Rails as the API. Later I abandoned the SPA and went back to rails views, using turbolinks to make it fast. In reality rails + turbolinks is fast enough for most cases, and then I can sprinkle in extra javascript or use SPA on one or two pages as needed. The reason I think it's almost better to avoid SPA + API approach is to keep the codebase simple and easier for one person to maintain. [VIDEO] [LINK]

RecommendsView on HN
@peteforde2019 · in “Why I believe Rails is still relevant in 2019”

Okay, I have lots of good news for you. First, CoffeeScript is formally deprecated. Turbolinks sucked, but Turbolinks 5 is an entirely new beast and it rocks. You need to give it a second look. I recommend this talk, sped up to 1.5x: [VIDEO] Finally, there absolutely is an opinionated client library that is designed to pair beautifully with Turbolinks 5. It's called Stimulus and it rocks. [LINK] You can play with all of these frameworks using the --webpack parameter: rails new future --skip-sprockets --skip-coffee --webpack=stimulus --database=postgresql --skip-test As a bonus for anyone starting a new Rails project today, you're going to want to bookmark [LINK] Let me know if you have any questions.

Strongly recommendsView on HN
@peteforde2019 · in “I Miss Rails”

I urge/beg you to check out the Turbolinks 5 + StimulusJS libraries, which are by the same (Rails team) people, which is no coincidence. [VIDEO]

Strongly recommendsView on HN
@thrownaway9542019 · in “I Miss Rails”

I keep looking at C# and Blazor myself If you want an SPA type Rails way of doing things, you can use Turbolinks. This talk at RailsConf 2016 is really an eye opener. [VIDEO]

Strongly recommendsView on HN
@peteforde2019 · in “JQuery 3.4.0 Released”

That's brilliant! Have you had the opportunity to play with Turbolinks 5? It sounds like there will be some crossover with what you have already done, but if you're intellectually curious, you might pick up some good tricks, too. [LINK] [VIDEO] TL5 just happens to pair beautifully with a tiny library called Stimulus, which would be YAF except that it's a) by the same team as TL5 and b) that team is also behind Rails, so there's some claim to legitimate best practices. [LINK]

RecommendsView on HN
@elamje2020 · in “Ask HN: What stack should I use for my mobile app?”

If you are a Rails developer, this Turbolinks presentation makes a strong case to be used for mobile apps. [VIDEO] It seems like there is a strong productivity gain from using rails here since it’s extremely productive and you can make simple wrapper apps to release to the Play and App Store that really just wrap the web view. The biggest gain is obviously reusing most of the web app across three different platforms, and the ability to add native navigation and interaction as needed, later. You also avoid needing a big javascript library.

RecommendsView on HN
@pier252020 · in “Apple rejects Hey for second time, threatens removal from App Store”

They could simply solve this with a PWA, no? They already have a web client which is all server rendered with Rails and uses Turbolinks. If I'm not mistaken they also use this approach for the Basecamp iOS app [1]. [1] [VIDEO]