Save 37% off PRO during our Black Friday Sale! »

RESS: An Evolution of Responsive Web Design

RESS: An Evolution of Responsive Web Design

Responsive web design has become an important tool for front-end developers as they develop mobile-optimized solutions for clients. Browser-detection has been an important tool for server-side developers for the same task for much longer. Unfortunately, both techniques have certain limitations. I’ll show how both front-end and server-side developers can take advantage of the new technique called RESS (Responsive Web Design with Server Side Components) that aims to be combine the best of both worlds for delivering mobile-optimized content.


Dave Olsen

May 15, 2012


  1. RESS: An Evolution of Responsive Web Design Dave Olsen, @dmolsen

    WVU University Relations - Web Refresh Pittsburgh, May 15 2012

  3. programmer 9 years at wvu wvu has 30,000 students

  4. What I’ll Talk About •The Responsive Age •What is RESS

    •Two Server-side Solutions
  5. The Responsive Age We’ve entered...






  11. The client is now in charge

  12. One... Why Be Responsive

  13. One... URL. Why Be Responsive

  14. One... Set of Mark-up. Why Be Responsive

  15. One... Deployment. Why Be Responsive


  17. balloons Time to Party...

  18. “Not so fast, my friends...”

  19. Media... Images & Video RWD Challenges

  20. 3rd Party Content... Ads & Social Widgets RWD Challenges

  21. One Set of Mark-up... Double-edged Sword RWD Challenges

  22. Learned the hard way...

  23. Standards Process Standards Process is Evolving

  24. Mind the Gap Bridging the Gap

  25. adaptive images website Existing Solutions

  26. image of a path for showing RESS as a way

    forward Take a New Path
  27. What is RESS?

  28. Responsive Web Design + Server Side Components (I have no

    idea what becomes of the W, D, or C)
  29. “In a nutshell, RESS combines adaptive layouts with server side

    component (not full page) optimization. So a single set of page templates define an entire Web site for all devices but key components within that site have device-class specific implementations that are rendered server side. - Luke Wroblewski @lukew
  30. “...browser-detection can be used to help inform an overall responsive

    design as opposed to being the be-all- end-all for templating. - Dave Olsen @dmolsen
  31. •If you want layout adjustments across devices. •And optimization at

    the component level to increase performance or tune user experience. •You trust server-side device detection with sensible defaults. RESS is Good if... “ - Luke Wroblewski @lukew
  32. Simple Example: Swapping a Header & Footer Mobile View Desktop

  33. Simple Example: Swapping a Header & Footer <body> {{>header}}

    [...document content...] {{>footer}} </body>
  34. Simple Example: Swapping a Header & Footer <body> {{>header}}

    [...document content...] {{>footer}} </body>
  35. Simple Example: Swapping a Header & Footer index.html header.html

    mobile_header.html footer.html mobile_footer.html
  36. Simple Example: Swapping a Header & Footer index.html header.html

    mobile_header.html footer.html mobile_footer.html

  38. Infancy RESS is in Its Infancy...

  39. Untested ...and untested.

  40. ND data U. of Notre Dame Example

  41. ND data Large Screen: 136 requests @ 2.7MB Small

    Screen: 23 requests @ 291K
  42. bridge We Still Need to Bridge the Gap

  43. developers and designers Designers + Developers?

  44. So how would we implement? How Do We Implement

  45. Responsive Web Design is “easy” Skipping RWD

  46. Two Possible Solutions Server-side Solutions

  47. Browser Detection #1

  48. Old dog Been Around a While

  49. 82% of the Alexa 100 top sites use some form

    of server-side mobile device detection to serve content on their main website entry point. “ - Ronan Cremin @xbs Used Quite a Bit
  50. WURFL DeviceAtlas OpenDDR Lots of Solutions

  51. Personal Fav*: ua-parser node.js, Python, PHP, & Ruby libraries built

    upon a standard YAML file * - I help maintain the project ;)
  52. Arms Race?

  53. Server-side Feature Detection #2

  54. Infancy Also in Its Infancy...

  55. Untested ...and untested.

  56. Can be Simple or Complex Taking a Cue from Front-End

  57. Server-side Future Friendly?

  58. Server-side Breakpoints 320px 640px 960px

  59. Simple Example: Setting a file path based on window.innerWidth <script

    type="text/javascript"> function writeCookie(name, value) { //cookie code } // store the innerWidth of the window in a cookie writeCookie("RESS", window.innerWidth); </script> Server-side Breakpoints
  60. <?php // grab the cookie value $screenWidth = $_COOKIE[‘RESS’]; //

    set the img path var if ($screenWidth <= 320) { $imgPath = “320”; } else if ($screenWidth < 960) { $imgPath = “640”; } else { $imgPath = “960”; } // print out our image link print “<img src=‘/rwd/images/”.$imgPath.”/car.jpg’ alt=‘Car’ />”; ?> Simple Example: Setting a file path based on window.innerWidth
  61. Robust Feature Detection

  62. <?php // require Detector to identify browser & populate $ua

    require("lib/Detector/Detector.php"); $html5Embed = "<iframe {...} ></iframe>"; $simpleLink = "Your browser doesn't appear to support HTML5. {...}"; // use the $ua properties to switch if ($ua->video->h264 || $ua->video->webm) { ! print $html5Embed; } else { ! print $simpleLink; ! } ?> Simple Example: Inserting a video link Robust Feature Detection
  63. Complicated Example: Templates Using Detector & Mustache & click

    “Learn more...” Robust Feature Detection
  64. RESS isn’t a silver bullet. (anymore than RWD is) RESS

  65. Server-side feature detection can be spoofed. RESS Challenges

  66. Requires server-side languages. RESS Challenges

  67. Data needs to be separated from layout. RESS Challenges

  68. It is not only the design of the web site

    and the layout of content that needs to be adapted or enhanced; the idea of being responsive, adaptive and enhancing, must be implemented in the whole value chain. RESS Challenges “ - Jon Arnes Sæterås @jonarnes
  69. The evolution of web development continues... The of Web Development

  70. Questions or comments?

  71. On Twitter @dmolsen...

  72. Or at

  73. Thank You