{"id":12284,"date":"2017-04-03T18:26:15","date_gmt":"2017-04-03T17:26:15","guid":{"rendered":"http:\/\/blog.intercom.com\/?p=12284"},"modified":"2025-01-03T13:16:42","modified_gmt":"2025-01-03T13:16:42","slug":"the-full-stack-design-system","status":"publish","type":"post","link":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/","title":{"rendered":"The full stack design system"},"content":{"rendered":"<p class=\"opening_paragraph\">UI methodologies like Atomic Design bring logic and structure to individual screens. Now it\u2019s time to extend that thinking to every aspect of your product.<\/p>\n<p>Here\u2019s a little mystery. Why is it that \u2013 a bit like hangovers and pop music \u2013 most products somehow seem to get worse with age?<\/p>\n<p>You\u2019d think the opposite should be true: that having a great team spend many years iterating on a product should eventually result in some immaculately perfect finished product. Instead after ten years it\u2019s suddenly <a href=\"https:\/\/uxdesign.cc\/a-critical-analysis-of-the-ios-10-lockscreen-experience-726ddfba3c1a\">harder to unlock your phone<\/a>. Why?<\/p>\n<p>The long, painful answer is ill-discipline. Projects grow over time. More people join, some earlier folks leave, and clarity of design vision deteriorates. The business decides to chase new markets, and new features get tacked on like Christmas decorations. Internal collaboration gets harder and sub-teams develop their own design philosophies. Requests flood in from a more diverse customer base. Competition needs to be kept at bay by adding in more stuff. Sprawl sets in. Before long it doesn\u2019t feel safe to enter some screens alone after dark. Good products degrade. It happens to the best of us.<\/p>\n<p>The shorter answer is most product teams don\u2019t adhere to a <strong>solid underlying design system<\/strong>. Something that unifies and guides all aspects of the experience from the conceptual building blocks of the product, to the details of the UI, to how things are named.<\/p>\n<p>So if you\u2019re suffering from the <a href=\"https:\/\/www.intercom.com\/blog\/your-product-is-already-obsolete\/\" target=\"_blank\" rel=\"noopener noreferrer\">nice-to-have problem<\/a> of designing a successful, growing product, here\u2019s how considering all aspects of your design as a single system can save you \u2013 before the rot sets in.<\/p>\n<h2 id=\"the-tldr\">The TL;DR<\/h2>\n<p>Given that this is the internet and you\u2019ve probably got animal videos to watch, I\u2019ll cut to the chase:<\/p>\n<ol>\n<li>50 years ago graphic designers figured out that it\u2019s a good idea to come up with some shared underlying rules when designing a bunch of related things.<\/li>\n<li>Digital product designers realized this is also a good way to make sure your buttons always look the same. \u201cDesign Systems\u201d emerged as a useful way to build consistent UIs.<\/li>\n<li>But most Design Systems are really just Pattern Libraries: a big box of UI Lego pieces that can be assembled in near-infinite ways. All the pieces may be consistent, but that doesn\u2019t mean the assembled results will be.<\/li>\n<li>Your product is more than just a pile of reusable UI elements. It has structure and meaning. It\u2019s not a generic web page, it\u2019s the embodiment of a system of concepts.<\/li>\n<li>By embodying product concepts in Design Systems designers can go beyond consistent UIs towards creating consistent products.<\/li>\n<\/ol>\n<p>That\u2019s the nutshell version. If you already get it, <a href=\"https:\/\/www.instagram.com\/p\/BJobezujrwf\/\">godspeed<\/a>.<\/p>\n<h2 id=\"software-with-structural-integrity\">Software with structural integrity<\/h2>\n<p>Making software isn\u2019t like building a bridge. Construction workers have a clear end goal to aim for, mature methodologies and well-understood materials, and most of them dress better. The majority of industries are far more stable than software development. That&#8217;s good \u2014 most people generally prefer driving across bridges that weren\u2019t designed using whiteboard markers and engineered by Googling for error messages.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/Manhattan_Bridge_Construction_1909.jpg\" alt=\"Manhattan Bridge under construction, 1909\" \/><br \/>\n<span style=\"font-size: small;\"><em>Manhattan Bridge under construction, 1909. \u00a9 Irving Underhill\/Library of Congress<\/em><\/span><\/p>\n<p>Digital product design is still in its infancy. We\u2019re figuring this shit out as we go. As soon as we do figure something out, things change again \u2013 the tech improves, your team grows, competition emerges \u2013 and that process that you finally figured out breaks again. Plans are obsolete almost as soon as you\u2019ve made them.<\/p>\n<p>Without a blueprint of some sort to rely on it\u2019s not surprising that so much software eventually buckles under its own weight.<\/p>\n<p>So clearly we need something to set and keep us on course. Something to make the difficult parts of product development easier, make the slow parts faster, and to power us away from the enormous Pit Of Complexity that all products seem to get drawn into over time.<\/p>\n<p>Enter Design Systems.<\/p>\n<h2 id=\"a-brief-history-of-design-systems\">A brief history of design systems<\/h2>\n<p>Design Systems of one flavor or another have been around for quite a while. Simply put, a design system is useful for when you need to design not just one thing, but a whole set of things that you want to feel like a coherent family. If you come up with a template and always stick to it, you\u2019ll get that coherence for free.<\/p>\n<p>So instead of designing one subway sign you might come up with a set of graphic standards that allow you to design a whole set of signs and symbols that work together in concert. Also, can we bring back ring binders please? Old school cool.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/NY-subway-manual.jpg\" alt=\"New York City Transit Authority Graphics Standards Manual by Massimo Vignelli and Bob Noorda, 1970 \" \/><br \/>\n<span style=\"font-size: small;\"><em>New York City Transit Authority Graphics Standards Manual by Massimo Vignelli and Bob Noorda, 1970 <a href=\"https:\/\/standardsmanual.com\/products\/nyctacompactedition\">source<\/a>. <\/em><\/span><\/p>\n<p>Or instead of designing a logo for an organization you might develop a visual system for representing that organization in all sorts of different contexts. Space exploration and classic graphic design, what\u2019s not to love?<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/nasa-graphics-standards-manual.jpg\" alt=\"The NASA Graphics Standards Manual by Richard Danne and Bruce Blackburn, 1975\" \/><br \/>\n<span style=\"font-size: small;\"><em> The NASA Graphics Standards Manual by Richard Danne and Bruce Blackburn, 1975.<\/em><\/span><\/p>\n<p>CSS frameworks like Twitter Bootstrap dragged these ideas into the world of web development, providing reusable code snippets to easily build consistent UI elements like buttons and dropdowns. Wonderful, even if every website in the world basically looked identical for a while there.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"small\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/bootstrap-example-fluid.png\" alt=\"Twitter Bootstrap, originally created by Mark Otto and Jacob Thornton, 2011\" \/><br \/>\n<span style=\"font-size: small;\"><em>Twitter Bootstrap, originally created by Mark Otto and Jacob Thornton, 2011 <\/em><\/span><\/p>\n<p>Brad Frost\u2019s influential Atomic Design methodology put forward a more structural approach. Rather than a jumble of \u201catomic\u201d elements scattered across a screen (e.g. a label, an input, a button), Atomic Design suggests that a small collection of UI elements should be thought of as a meaningful component, (e.g. a page footer, a login form). Put a pin in this idea, we\u2019ll come back to it in a bit.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/atomic-design.png\" alt=\"Brad Frost\u2019s Atomic Design methodology, 2013\" \/><br \/>\n<span style=\"font-size: small;\"><em>Brad Frost\u2019s <a href=\"http:\/\/bradfrost.com\/blog\/post\/atomic-web-design\/\">Atomic Design methodolog<\/a>y, 2013<\/em><\/span><\/p>\n<p>Finally, Google\u2019s Material Design guidelines pushed the concept further, bringing deeper formal rationality, a bold aesthetic and resources and guidelines for building UI elements across a range of platforms. (I worked at Google and wrote the first set of guidelines for the Android Wear platform.)<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/material-design-google.png\" alt=\"Material Design by Google, 2014\" \/><br \/>\n<span style=\"font-size: small;\"><em><a href=\"https:\/\/material.io\/guidelines\/\">Material Design<\/a> by Google, 2014<\/em><\/span><\/p>\n<p>Today, many larger companies have built their own custom, in-house design systems in an attempt to stave off the inevitable creep of inconsistency. Airbnb, Salesforce and Uber have built comprehensive systems that keep their own product UIs in check.<\/p>\n<h2 id=\"the-limitations-of-pattern-libraries\">The limitations of pattern libraries<\/h2>\n<p>Maybe none of this is news to you. Maybe you\u2019ve already got someone maintaining a nice little pattern library on your own team. (If you\u2019re not sure who, just look for the person who can\u2019t stop making Lego analogies.)<\/p>\n<p>So can\u2019t you just check the box and move on? Or is there a difference between a pattern library and a design system?<\/p>\n<p>I mean, sure. But yes there is.<\/p>\n<p>Most Pattern Libraries take the form of a web page that lists the different styles of all your UI elements: all the different sized headings, all the button styles, all the dropdowns that are used to build your UI. If all the designers and engineers on your team agree to only ever use these elements, your UI automatically stays consistent. It also allows you to tweak those styles down the road if you want to make a design change across your app. Not bad at all.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"small\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/Old-Intercom-pattern-library.png\" alt=\"\" \/><br \/>\n<span style=\"font-size: small;\"><em>Intercom\u2019s old, now-retired pattern library. Need some buttons? We got \u2018em.<\/em><\/span><\/p>\n<p>But there are a few problems with pattern libraries. Yes, they allow you to keep all of the smallest elements consistent. But they don\u2019t have an opinion about how they should be put together. They don\u2019t know anything about your product or the concepts behind it.<\/p>\n<p>To return to our Lego analogy, simply having a limited pattern library of bricks to choose from doesn\u2019t preclude me from building some really crazy shit.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"small\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/Lego-aircraft-carrier.jpg\" alt=\"\" \/><br \/>\n<span style=\"font-size: small;\"><em>Impressive, but not exactly coherent design \u2013 and that\u2019s just the curtains.<\/em><\/span><\/p>\n<p>Now think about those branded Lego kits you can buy. Each piece is much more opinionated. It knows what it\u2019s going to get used for. There are still generic pieces involved, but when you put them together in a certain way they form something specific, like the leg of an AT-AT Walker. This is a design system.<\/p>\n<p><img decoding=\"async\" class=\"small\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/Lego-Empire-system.jpg\" alt=\"\" \/><\/p>\n<p>(Caveat: those highly-prescribed branded kits are actually kind of boring and there\u2019s no Lego better than a giant bucket of bricks and an imagination. Coherence is strictly for grown-ups.)<\/p>\n<h2 id=\"from-atomic-design-to-full-stack-design-systems\">From Atomic Design to full stack design systems<\/h2>\n<p>This approach is not unlike the Atomic Design approach I mentioned earlier. Atomic Design will tell you to take some of your basic elements (label, input, button), stick them together, and call it a molecule. Then you can reuse that molecule again and again. Further, you can stick some molecules together to form a reusable organism.<\/p>\n<p>The problem with every real-world example of a system like this that I\u2019ve encountered is that they remain wilfully unaware of the product being built.<\/p>\n<p>When you\u2019re creating a bespoke Design System for a specific product, you have the opportunity to not just group common UI elements together, but to actually represent your core product concepts at many levels. I call this a <strong>Full Stack Design System<\/strong>.<\/p>\n<p>Here\u2019s what a Full Stack Design System might consist of:<\/p>\n<ul>\n<li><strong>A shared conceptual model<\/strong> of your product. This is the diagram you\u2019d draw on a whiteboard to explain how your product works at a system level. What are the main objects in your product? How do they interact?<\/li>\n<li><strong>Shared language<\/strong> that everyone on your team uses to refer to your objects. Remember, <a href=\"https:\/\/www.intercom.com\/blog\/how-words-build-a-product\/\" target=\"_blank\" rel=\"noopener noreferrer\">words matter<\/a>. If designers, engineers, and support people all use the same word to describe the same thing, so much organisational fogginess goes away. <a href=\"https:\/\/intercom.com\/blog\/author\/emcguane\/\">Elizabeth<\/a>, our Content Strategy Lead here at Intercom, calls this using \u201cthe same language from code to customer\u201d.<\/li>\n<li><strong>Shared design resources<\/strong> to quickly create mockups that accurately reflect our design systems. This often takes the form of a single Sketch file that everyone has access to. The file contains a Symbol for each object, and often multiple variations for displaying the same object at different sizes or in different contexts.<\/li>\n<li><strong>Shared code components<\/strong> that allow engineers to build these components and their variations, often with a single line of code. There should be a 1:1 mapping of the objects in Sketch and in our codebase.<\/li>\n<\/ul>\n<p>Most importantly, there\u2019s a unifying thread through all of these levels. A \u2018Conversation\u2019 in Intercom \u2013 one of our core objects \u2013 is the same, very specific thing whether it\u2019s being sketched, described, designed or coded. If we want to change that object in some way, we can consistently change it across all levels. Teams are locked in and ambiguity disappears. In this way the sum of the system becomes much greater than the parts.<\/p>\n<p>Here are examples of possible objects in products you know:<\/p>\n<ul>\n<li><strong>Facebook:<\/strong> Friend, Post, Message, Event, Page, Group.<\/li>\n<li><strong>Airbnb:<\/strong> Listing, Host, Guest, Trip, Experience.<\/li>\n<li><strong>Slack:<\/strong> Team, Member, Channel, Message, Reaction, Thread.<\/li>\n<li><strong>Intercom:<\/strong> Customer, Teammate, Message, Conversation, Article.<\/li>\n<\/ul>\n<p>In each case, the objects don\u2019t just describe a UI widget. They mean something very specific in the context of the product.<\/p>\n<p>A Full Stack Design System extends the component-based ideas of Atomic Design to be specific to our product and directly relevant to everyone involved in making it.<\/p>\n<h3>A real-life example<\/h3>\n<p>To illustrate, let\u2019s look at how we use the Conversation object when building Intercom.<\/p>\n<p>First, we have an overview of the Conversation object in Build, an internal website that explains what each object is and how it interacts with the wider system:<br \/>\n<img decoding=\"async\" class=\"small\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/Conversation-in-Build.png\" alt=\"\" \/><br \/>\nEach object listed in Build has a nifty link that opens that object directly in our Designers\u2019 shared Sketch file:<br \/>\n<img decoding=\"async\" class=\"small\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/Conversation-in-Sketch.png\" alt=\"\" \/><br \/>\nAnd another that opens the code snippet used by engineers to implement the object:<br \/>\n<img decoding=\"async\" class=\"small\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/code_1248x545.png\" alt=\"\" \/><br \/>\nHere\u2019s how we describe a Conversation in our publicly-available <a href=\"https:\/\/docs.intercom.com\/intercom-s-key-features-explained\/the-intercom-glossary\">Glossary<\/a>:<br \/>\n<img decoding=\"async\" class=\"small\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/Conversationin-Glossary.png\" alt=\"\" \/><br \/>\nOur support teams and <a href=\"https:\/\/docs.intercom.com\/\">help doc<\/a> authors consistently use the same language too:<br \/>\n<img decoding=\"async\" class=\"small\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2017\/04\/Conversation-in-Docs.png\" alt=\"\" \/><br \/>\nAt all levels of this stack \u2013 system model, user interface, implementation, documentation \u2013 we aim to capture the structure of our product in a consistent, meaningful way.<\/p>\n<h2 id=\"why-this-works-for-intercom\">Why this works for Intercom<\/h2>\n<p>This idea is central to our design success at Intercom. We\u2019re still a fairly small company, yet we\u2019re building multiple products that are used in many different and powerful ways. It would be very easy for us to slip into that The Pit of Complexity. Yet we aspire to swim against the tide and actually make our products more simple and elegant, even as we add to what they can do.<\/p>\n<p>Our strategy for achieving this is to use this small set of core objects that we can chain together into specific workflows. Every time we build something new at Intercom we ask ourselves how we can solve the problem using the materials we already have. New concepts naturally creep in as needed, but they are introduced consciously and we\u2019re diligent about merging concepts whenever we have the opportunity.<\/p>\n<p>The product stays lean and precise despite growing in capability. We can polish the hell out of our core objects so that they get better over time, and those improvements show up in many places across all of our products. Reuse allows us to move faster.<\/p>\n<p>And most importantly, our users don\u2019t have hundreds of concepts to keep in their heads all the time. When they adopt a new Intercom product, it already feels familiar because it\u2019s made up of the same stuff.<\/p>\n<h2 id=\"the-system-works\">The system works<\/h2>\n<p>So that\u2019s how to keep your product out of The Pit. Think of what you\u2019re designing not as a series of screens but as a system of objects, and then realize those objects at every level: conception, design, build, marketing, support.<\/p>\n<p>I\u2019ll be honest: I don\u2019t even know if this is going to fully work. I\u2019ve tried, and I honestly can\u2019t think of any products that are both powerfully flexible and elegantly simple \u2013 suggestions welcome! Maybe it\u2019s impossible and The Pit awaits us all. But that doesn\u2019t seem like a great note to end a blog post.<\/p>\n<p>What\u2019s more, I don\u2019t want to believe it\u2019s true. This very challenge is what\u2019s uniquely interesting to me about doing large-scale design work at a growing product-oriented company.<\/p>\n<p>The early signs are promising. In all types of complex systems, from codebases to architecture, clarity comes from understanding first the whole as a series of modules, then zooming in to think of each module individually. John Gall wrote in his eponymous law that:<\/p>\n<blockquote><p>A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a working simple system.<\/p><\/blockquote>\n<p>Complex systems can be designed, but to do so you must first sketch the outline. Only then can you start filling in the detail.<\/p>\n<p>Similarly, to evolve and improve a complex system you must keep the overall system in mind at all times. We already know the alternatives don\u2019t work: tacking on new ideas piecemeal, resisting the need to grow the product, allowing many competing approaches to co-exist. We need a technique for holding both the micro and the macro in our tiny human skulls at the same time. Christopher Alexander, who <a href=\"https:\/\/en.wikipedia.org\/wiki\/A_Pattern_Language\">wrote the book<\/a> on designing with systems, wrote that:<\/p>\n<blockquote><p>Nowadays, the process of growth and development almost never seems to manage to create this subtle balance between the importance of the individual parts, and the coherence of the environment as a whole. One or the other always dominates.<\/p><\/blockquote>\n<p>Growing a product is an eternal balancing act. Applying a Design Systems approach to every level of your product \u2013 not just the UI \u2013 will help you to maintain control over that balance and prevent any one force from dominating too much.<\/p>\n<hr \/>\n<p class=\"inline-cta-quote\">Are you a product designer interested in solving these problems? Join our team \u2013 <a href=\"https:\/\/intercom.design\/#join-our-team\">we\u2019re hiring<\/a>.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>UI methodologies like Atomic Design bring logic and structure to individual screens. Now it\u2019s time to extend that thinking to every aspect of your product. Here\u2019s a little mystery. Why is it that \u2013 a bit&hellip;<\/p>\n","protected":false},"author":121,"featured_media":12294,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"category":[5],"tags":[],"coauthors":[359],"class_list":["post-12284","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-product-and-design"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>The full stack design system - The Intercom Blog<\/title>\n<meta name=\"description\" content=\"Growing a product is an eternal balancing act. Applying a Design Systems approach to every level of your product \u2013 not just the UI \u2013 will help you to maintain control over that balance and prevent any one force from dominating too much.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The full stack design system\" \/>\n<meta property=\"og:description\" content=\"Growing a product is an eternal balancing act. Applying a Design Systems approach to every level of your product \u2013 not just the UI \u2013 will help you to maintain control over that balance and prevent any one force from dominating too much.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/\" \/>\n<meta property=\"og:site_name\" content=\"The Intercom Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/intercominc\" \/>\n<meta property=\"article:published_time\" content=\"2017-04-03T17:26:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-03T13:16:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2017\/04\/The_Full_Stack_Design_System_Final_Logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1968\" \/>\n\t<meta property=\"og:image:height\" content=\"932\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Emmet Connolly\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@thoughtwax\" \/>\n<meta name=\"twitter:site\" content=\"@intercom\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emmet Connolly\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/the-full-stack-design-system\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/the-full-stack-design-system\\\/\"},\"author\":{\"name\":\"Emmet Connolly\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/person\\\/39cdaf902e6a97d522d9ec3f6890894d\"},\"headline\":\"The full stack design system\",\"datePublished\":\"2017-04-03T17:26:15+00:00\",\"dateModified\":\"2025-01-03T13:16:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/the-full-stack-design-system\\\/\"},\"wordCount\":2698,\"publisher\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/the-full-stack-design-system\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/The_Full_Stack_Design_System_Final_Logo.jpg\",\"articleSection\":[\"Product &amp; Design\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/the-full-stack-design-system\\\/\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/the-full-stack-design-system\\\/\",\"name\":\"The full stack design system - The Intercom Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/the-full-stack-design-system\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/the-full-stack-design-system\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/The_Full_Stack_Design_System_Final_Logo.jpg\",\"datePublished\":\"2017-04-03T17:26:15+00:00\",\"dateModified\":\"2025-01-03T13:16:42+00:00\",\"description\":\"Growing a product is an eternal balancing act. Applying a Design Systems approach to every level of your product \u2013 not just the UI \u2013 will help you to maintain control over that balance and prevent any one force from dominating too much.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.intercom.com\\\/blog\\\/the-full-stack-design-system\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/the-full-stack-design-system\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/The_Full_Stack_Design_System_Final_Logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/The_Full_Stack_Design_System_Final_Logo.jpg\",\"width\":1968,\"height\":932},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/\",\"name\":\"The Intercom Blog\",\"description\":\"Articles and Podcasts on Customer Service, AI and Automation, Product, and more\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\",\"name\":\"The Intercom Blog\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Intercom-logo-sq-black-trans.png\",\"contentUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Intercom-logo-sq-black-trans.png\",\"width\":1000,\"height\":1000,\"caption\":\"The Intercom Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/intercominc\",\"https:\\\/\\\/x.com\\\/intercom\",\"https:\\\/\\\/www.instagram.com\\\/intercom\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/2491343\",\"https:\\\/\\\/www.pinterest.ie\\\/intercom\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCJG0MvLP03kyzzAkD-w98aQ\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Intercom_(company)\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/person\\\/39cdaf902e6a97d522d9ec3f6890894d\",\"name\":\"Emmet Connolly\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pgaeb72670d7c9815e49f2bd6cf8170502\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pg\",\"caption\":\"Emmet Connolly\"},\"description\":\"Emmet is a digital product designer, leading the Product Design team at Intercom. Before that, he co-founded and designed Android Wear and designed Google Flights. He also writes at his blog, thoughtwax.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/emmetconnolly\\\/\",\"https:\\\/\\\/x.com\\\/thoughtwax\"],\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/author\\\/thoughtwax\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The full stack design system - The Intercom Blog","description":"Growing a product is an eternal balancing act. Applying a Design Systems approach to every level of your product \u2013 not just the UI \u2013 will help you to maintain control over that balance and prevent any one force from dominating too much.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/","og_locale":"en_US","og_type":"article","og_title":"The full stack design system","og_description":"Growing a product is an eternal balancing act. Applying a Design Systems approach to every level of your product \u2013 not just the UI \u2013 will help you to maintain control over that balance and prevent any one force from dominating too much.","og_url":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/","og_site_name":"The Intercom Blog","article_publisher":"https:\/\/www.facebook.com\/intercominc","article_published_time":"2017-04-03T17:26:15+00:00","article_modified_time":"2025-01-03T13:16:42+00:00","og_image":[{"width":1968,"height":932,"url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2017\/04\/The_Full_Stack_Design_System_Final_Logo.jpg","type":"image\/jpeg"}],"author":"Emmet Connolly","twitter_card":"summary_large_image","twitter_creator":"@thoughtwax","twitter_site":"@intercom","twitter_misc":{"Written by":"Emmet Connolly","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/#article","isPartOf":{"@id":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/"},"author":{"name":"Emmet Connolly","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/person\/39cdaf902e6a97d522d9ec3f6890894d"},"headline":"The full stack design system","datePublished":"2017-04-03T17:26:15+00:00","dateModified":"2025-01-03T13:16:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/"},"wordCount":2698,"publisher":{"@id":"https:\/\/www.intercom.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2017\/04\/The_Full_Stack_Design_System_Final_Logo.jpg","articleSection":["Product &amp; Design"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/","url":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/","name":"The full stack design system - The Intercom Blog","isPartOf":{"@id":"https:\/\/www.intercom.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/#primaryimage"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2017\/04\/The_Full_Stack_Design_System_Final_Logo.jpg","datePublished":"2017-04-03T17:26:15+00:00","dateModified":"2025-01-03T13:16:42+00:00","description":"Growing a product is an eternal balancing act. Applying a Design Systems approach to every level of your product \u2013 not just the UI \u2013 will help you to maintain control over that balance and prevent any one force from dominating too much.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intercom.com\/blog\/the-full-stack-design-system\/#primaryimage","url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2017\/04\/The_Full_Stack_Design_System_Final_Logo.jpg","contentUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2017\/04\/The_Full_Stack_Design_System_Final_Logo.jpg","width":1968,"height":932},{"@type":"WebSite","@id":"https:\/\/www.intercom.com\/blog\/#website","url":"https:\/\/www.intercom.com\/blog\/","name":"The Intercom Blog","description":"Articles and Podcasts on Customer Service, AI and Automation, Product, and more","publisher":{"@id":"https:\/\/www.intercom.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.intercom.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.intercom.com\/blog\/#organization","name":"The Intercom Blog","url":"https:\/\/www.intercom.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/08\/Intercom-logo-sq-black-trans.png","contentUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/08\/Intercom-logo-sq-black-trans.png","width":1000,"height":1000,"caption":"The Intercom Blog"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/intercominc","https:\/\/x.com\/intercom","https:\/\/www.instagram.com\/intercom\/","https:\/\/www.linkedin.com\/company\/2491343","https:\/\/www.pinterest.ie\/intercom\/","https:\/\/www.youtube.com\/channel\/UCJG0MvLP03kyzzAkD-w98aQ","https:\/\/en.wikipedia.org\/wiki\/Intercom_(company)"]},{"@type":"Person","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/person\/39cdaf902e6a97d522d9ec3f6890894d","name":"Emmet Connolly","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pgaeb72670d7c9815e49f2bd6cf8170502","url":"https:\/\/secure.gravatar.com\/avatar\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ecb047918fc2448612bc2a7b21c4bf4343f36d792b5dacee8172d6f68f95249?s=96&d=mm&r=pg","caption":"Emmet Connolly"},"description":"Emmet is a digital product designer, leading the Product Design team at Intercom. Before that, he co-founded and designed Android Wear and designed Google Flights. He also writes at his blog, thoughtwax.","sameAs":["https:\/\/www.linkedin.com\/in\/emmetconnolly\/","https:\/\/x.com\/thoughtwax"],"url":"https:\/\/www.intercom.com\/blog\/author\/thoughtwax\/"}]}},"jetpack_featured_media_url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2017\/04\/The_Full_Stack_Design_System_Final_Logo.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts\/12284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/users\/121"}],"replies":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/comments?post=12284"}],"version-history":[{"count":0,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts\/12284\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/media\/12294"}],"wp:attachment":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/media?parent=12284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/category?post=12284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/tags?post=12284"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/coauthors?post=12284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}