It seems from reading the turbolinks docs that turbolinks can function as a kind of replacement for pjax.
Do turbolinks always relace the entire body or is it possible to just update specific parts of the page? The doc seems to suggest that the latter is possible by tagging the relevant parts of your page with data-turbolinks-permanent attributes and using Turbolinks.visit. So far this does not seem to be working for me. No matter which elements are set to permanent, everything in the body seems to be getting reloaded.
Do I need to so something server side to prevent the entire layout from rendering or am I just thinking about turbolinks in the wrong way?
Are you referring to https://github.com/rails/turbolinks#partial-replacements-with-turbolinks-30 ? Note that that's with reference to Turbolinks 3. Previous versions don't allow you to update just one specific part of the page. I'm pretty sure TurboLinks 3 is intented for use with Rails 5, so you're likely not using it yet.
DHH talks about this in his keynote at 2015 Rails Conf - it's worth checking out: http://confreaks.tv/videos/railsconf2015-opening-keynote