<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jonas Ulrich</title>
    <description>The latest articles on DEV Community by Jonas Ulrich (@julrich).</description>
    <link>https://dev.to/julrich</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F837211%2F32cac1f4-6c6e-49aa-9410-065c6bf87e16.jpeg</url>
      <title>DEV Community: Jonas Ulrich</title>
      <link>https://dev.to/julrich</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/julrich"/>
    <language>en</language>
    <item>
      <title>Unlocking the frontend – a call for standardizing component APIs pt.2</title>
      <dc:creator>Jonas Ulrich</dc:creator>
      <pubDate>Tue, 05 Mar 2024 15:56:55 +0000</pubDate>
      <link>https://dev.to/kickstartds/unlocking-the-frontend-a-call-for-standardizing-component-apis-pt2-e77</link>
      <guid>https://dev.to/kickstartds/unlocking-the-frontend-a-call-for-standardizing-component-apis-pt2-e77</guid>
      <description>&lt;p&gt;&lt;strong&gt;#tldr Why Design Systems, and a more structured approach to frontend engineering in general, might be key to a more shared frontend ecosystem. And how this thought might hit an interesting inflection point rather sooner than later, with the advent of production-ready Web Components as a shared technical standard and foundation for interoperability.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So what are the missing pieces? And how could our latest release, and the accompanying schema tooling open sourced with it, play into this? And what would a blog post be today, without tying it into AI? Buckle in: this will be a long one!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Status Quo
&lt;/h2&gt;

&lt;p&gt;Sometimes, at least to me, the current Status Quo in the frontend world feels &lt;strong&gt;more fragmented then ever&lt;/strong&gt; before. Between Tailwind UI and the likes, CSS-in-JS, and a multitude of (differently) opinionated frameworks fighting for our attention “for all the right reasons”.&lt;/p&gt;

&lt;p&gt;Meanwhile, &lt;strong&gt;web standards&lt;/strong&gt; seem to &lt;strong&gt;rapidly catch up&lt;/strong&gt;… with &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_nesting" rel="noopener noreferrer"&gt;native nesting&lt;/a&gt; and &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@layer" rel="noopener noreferrer"&gt;@layer&lt;/a&gt; in CSS and, to name just two great features we’ve won on that front lately, web components getting &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM#declaratively_with_html" rel="noopener noreferrer"&gt;Declarative Shadow Dom&lt;/a&gt;, the Design Token standard &lt;a href="https://twitter.com/kaelig/status/1754651119131951571" rel="noopener noreferrer"&gt;rapidly approaching&lt;/a&gt;, React finally merging &lt;a href="https://github.com/facebook/react/pull/22184" rel="noopener noreferrer"&gt;web component compatibility for React 19&lt;/a&gt; it seems, &lt;strong&gt;the list goes on&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Nonetheless, we’re still mostly &lt;strong&gt;redoing a lot of work&lt;/strong&gt;, especially those trying to craft bespoke frontend solutions… and not just hitching their wagon to something like Material UI / MUI, and calling it a day.&lt;/p&gt;

&lt;p&gt;Does this have to be so fragmented? Don’t we all, in the end, “just” build interfaces based on HTML, CSS and JavaScript… that happen to mostly run in the browser?&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;


  &lt;img alt="Finding universality" title="Finding universality" src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExNmF6YW9pYm42ODV0cjR3cmh0OWdlNDUwZTR6ZDViYTExcGxzZ3QwdyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/q9AgIEA8kKWWI2paHT/giphy.gif"&gt;via [GIPHY](https://giphy.com/gifs/q9AgIEA8kKWWI2paHT)
  

&lt;h2&gt;
  
  
  Finding universality
&lt;/h2&gt;

&lt;p&gt;Thinking about it… what actually &lt;strong&gt;is&lt;/strong&gt; universal in components? I’d say: &lt;strong&gt;They all have an API&lt;/strong&gt;. Call it &lt;strong&gt;Component Props&lt;/strong&gt; like React, Vue and Svelte do, or &lt;strong&gt;Property Binding&lt;/strong&gt; in Angular, &lt;strong&gt;Variables&lt;/strong&gt; in Figma, or even the &lt;strong&gt;structure of Frontmatter&lt;/strong&gt; typically found in an 11ty code base.&lt;/p&gt;

&lt;p&gt;Currently definition of those structures is dominated by either a backend system / API, leaking a backend view of the world into the implementation, or Figma / Sketch / etc design prototypes which attempt to model them, which can skew the focus into a too visually reductionist direction. Either way, &lt;strong&gt;it gets really hard to reuse stuff&lt;/strong&gt;, because you have to re-adapt your code every time a change occurs. You’re “downstream” from the decisions being made and their resulting changes affecting you; and now imagine how people working with the resulting interfaces on a daily basis must feel 😱.&lt;/p&gt;

&lt;p&gt;Why else might this be a problem? It shouldn’t be (solely) developers or designers who own this type of API. And this is where we think &lt;strong&gt;Design Systems enter the picture&lt;/strong&gt;, as they establish a collaborative process of component API creation. Nathan Curtis describes this quite nicely:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A design system aspires to achieve a shared vocabulary between designers and developers. As we build visual style and UI components, we make many decisions about how a feature is composed and configured.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/eightshapes-llc/crafting-ui-component-api-together-81946d140371" rel="noopener noreferrer"&gt;Nathan Curtis&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’d add content editors and select stakeholders to that process. &lt;strong&gt;Having enough context matters&lt;/strong&gt;, especially when creating a Design System. I really liked &lt;a href="https://twitter.com/emgsilva" rel="noopener noreferrer"&gt;Eduardo da Silvas&lt;/a&gt; article on &lt;a href="https://esilva.net/sociotechnical/sociotechnical-architecture_why-and-what.html" rel="noopener noreferrer"&gt;“Sociotechnical architecture”&lt;/a&gt;, and I think it very much applies to the introduction of a Design System into an organization!&lt;/p&gt;

&lt;p&gt;When also taking into account the structure of most &lt;strong&gt;every headless CMS out there&lt;/strong&gt;, many of those having themselves adopted a component based approach for their content modeling, you start to notice that there already seems to be something like a standard, and shared way, to express this: &lt;strong&gt;JSON&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;So why do we still have to chase the ball when creating frontend code? Why reinvent the wheel for every project… painstakingly redefining everything, remapping it to CMS and backend systems, and so forth. Can’t we &lt;strong&gt;take more control&lt;/strong&gt; of this process somehow? And wouldn’t it, as a concern, be better handled in something like a &lt;strong&gt;Design System&lt;/strong&gt; anyways?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So how could such a standard look like?&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Enter the world of JSON Schema
&lt;/h2&gt;

&lt;p&gt;As luck would have it, there’s &lt;strong&gt;JSON Schema&lt;/strong&gt;… let me quote their central mission statement:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build more. Break less. Empower others. JSON Schema enables the confident and reliable use of the JSON data format.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://json-schema.org/" rel="noopener noreferrer"&gt;https://json-schema.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Already embedded deep into quite a few development workflows (either through the &lt;a href="https://www.openapis.org/" rel="noopener noreferrer"&gt;Open API&lt;/a&gt; standard, where it is used for &lt;strong&gt;model definitions&lt;/strong&gt;, or something like &lt;a href="https://www.postman.com/" rel="noopener noreferrer"&gt;Postman&lt;/a&gt; to &lt;strong&gt;build APIs collaboratively&lt;/strong&gt;) this immediately enables safer, greater and more meaningful interactions between frontend engineers, backend engineers and those working on APIs / microservices. It’s also already in use in some &lt;strong&gt;Design System tooling&lt;/strong&gt; (&lt;a href="https://help.knapsack.cloud/article/178-advanced-using-multiple-prop-types" rel="noopener noreferrer"&gt;like Knapsack&lt;/a&gt;), or behind the scenes in &lt;strong&gt;headless CMS&lt;/strong&gt; systems.&lt;/p&gt;

&lt;p&gt;For a more in-depth intro, give &lt;strong&gt;Ben&lt;/strong&gt; a listen on his great video here:&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/vMG0NCDifI0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Again&lt;/strong&gt;: I’m pretty convinced that this layer could be universal!&lt;/p&gt;

&lt;p&gt;If, additionally, you &lt;strong&gt;decouple the Design System&lt;/strong&gt; as a rule-based framework for design, component, UI and product creation from specific implementation choices taken for components, or a component library as part of your Design System, the value gets more obvious. &lt;strong&gt;You start differentiating between the structure and function of a component, and its implementation&lt;/strong&gt;. Or even multiple implementations when supporting different frontend technologies simultaneously. A mix of components from different frameworks, or different component libraries inside the same framework, starts to become an implementation detail, while &lt;strong&gt;everything stays unified&lt;/strong&gt; under the umbrella of your Design System.&lt;/p&gt;

&lt;h2&gt;
  
  
  An idea brewing for quite a while already
&lt;/h2&gt;

&lt;p&gt;As our roots stem from &lt;strong&gt;20 years of agency business&lt;/strong&gt;, we’ve early on started trying to find ways to reuse frontend code, and better decouple frontend from backend engineers in the process. Back then, for us, this meant integration of independently developed frontend code into (mostly) PHP based backend systems like TYPO3 and WordPress (being an “integrator” was an actual job profile in places, with certifications and everything).&lt;/p&gt;

&lt;p&gt;Through integrated &lt;strong&gt;templating engines&lt;/strong&gt; (like Fluid for TYPO3) we started exploring better abstractions for reusable frontend code, and ways that could help map it to a backend system.&lt;/p&gt;

&lt;p&gt;While this helped &lt;strong&gt;ease integration work&lt;/strong&gt;, in parallel to that we also started exploring more systematic approaches on the frontend side itself. With the advent of &lt;strong&gt;Brad Frost&lt;/strong&gt; &lt;a href="https://bradfrost.com/blog/post/atomic-web-design/" rel="noopener noreferrer"&gt;Atomic Design&lt;/a&gt;, and tools like &lt;a href="https://patternlab.io/" rel="noopener noreferrer"&gt;Pattern Lab&lt;/a&gt;, we started using a more &lt;strong&gt;component-centric approach&lt;/strong&gt;. This included colocating all styling (CSS), behavior (JavaScript) and semantic structure (HTML) for a component, and way better encapsulation as a whole. And most influential for us, it turns out, it meant &lt;strong&gt;documenting all our expected variants of a component&lt;/strong&gt; as JSON data:&lt;br&gt;
&lt;a href="https://patternlab.io/docs/overview-of-data/" rel="noopener noreferrer"&gt;https://patternlab.io/docs/overview-of-data/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1wof70dv77xk8axvn0p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1wof70dv77xk8axvn0p.png" alt="Pattern Lab start page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This left us with a pretty extensive, &lt;strong&gt;reusable frontend component library&lt;/strong&gt;, as most of the projects at the time had pretty similar base requirements, especially when it comes to creating content-driven websites (I’d argue even more so today).&lt;/p&gt;

&lt;p&gt;When finally deciding to &lt;strong&gt;end our journey as an agency in 2021&lt;/strong&gt;, to instead transform to an Open Source, product-led business with &lt;strong&gt;kickstartDS&lt;/strong&gt;, this meant we already had a great starting point and a heap of experience with creating &lt;strong&gt;complex, modular and reusable frontend setups&lt;/strong&gt; (we’ve also built some early Design Systems for German DAX listed enterprises around 2013-2016, for good measure).&lt;/p&gt;

&lt;p&gt;The first thing we did was a &lt;strong&gt;complete rewrite of our code base&lt;/strong&gt;, with everything we had learnt so far in mind. We ditched Pattern Lab for Storybook, replaced Handlebars with React (but only for its templating capabilities in JSX, everything still usable as pure HTML), updated all client code to vanilla ES6, but most importantly: we ported all of our existing Pattern Lab components and variants by encoding their data.json files into &lt;strong&gt;JSON Schema&lt;/strong&gt; backed component definitions, or &lt;a href="https://www.kickstartds.com/docs/foundations/components/component-api/" rel="noopener noreferrer"&gt;component APIs&lt;/a&gt; as we like to call them today.&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExMWlneTNpaWwxNjdub243ejVwYnZjaGx3azU3cmV4N3BwYWV1bG52ZyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/igFPpuVhit5j3cmJJI/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Brewing" title="Brewing" src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExMWlneTNpaWwxNjdub243ejVwYnZjaGx3azU3cmV4N3BwYWV1bG52ZyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/igFPpuVhit5j3cmJJI/giphy.gif"&gt;&lt;/a&gt;&lt;br&gt;via &lt;a href="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExMWlneTNpaWwxNjdub243ejVwYnZjaGx3azU3cmV4N3BwYWV1bG52ZyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/igFPpuVhit5j3cmJJI/giphy.gif" rel="noopener noreferrer"&gt;GIPHY&lt;/a&gt;
  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JSON Schema&lt;/strong&gt; was something that had accompanied us for quite a while already by then. Back in 2013 we started experimenting with using it to &lt;strong&gt;structure data for static site generation&lt;/strong&gt;. A colleague of mine, over 10 years ago 🤯, even wrote quite a nice (somewhat foreshadowing?) article about it:&lt;br&gt;
&lt;a href="https://pascalhertleif.de/artikel/silicon-zucchini/" rel="noopener noreferrer"&gt;https://pascalhertleif.de/artikel/silicon-zucchini/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This also marked our first time experimenting with generation of editor interfaces for content, based on our already existing JSON Schema definitions. Which ultimately lead to the &lt;strong&gt;release of our kickstartDS low-code CMS starters&lt;/strong&gt;, and the tooling behind it, today!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe6w3vjkcyqiwphuunvt4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe6w3vjkcyqiwphuunvt4.png" alt="kickstartDS schema tooling"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What did we build?
&lt;/h2&gt;

&lt;p&gt;We’ve built out &lt;strong&gt;tooling that can take component APIs as JSON Schema definitions&lt;/strong&gt;, like those used in &lt;strong&gt;kickstartDS&lt;/strong&gt;, and process and convert them to other useful formats.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.producthunt.com/posts/kickstartds-low-code-cms-starters?utm_source=badge-featured&amp;amp;utm_medium=badge&amp;amp;utm_souce=badge-kickstartds-low-code-cms-starters" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fapi.producthunt.com%2Fwidgets%2Fembed-image%2Fv1%2Ffeatured.svg%3Fpost_id%3D438992%26theme%3Dlight" alt="kickstartDS low-code CMS starters - Connecting a Design System to a CMS just got easier | Product Hunt"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What’s a format, you might ask. For us, currently, this can mean one of two things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Development&lt;/strong&gt;: Mainly pure TypeScript types for your components, and other related, generated output like GraphQL fragments or dereferenced JSON Schemas definitions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration&lt;/strong&gt;: Headless CMS configuration; processing and mapping your Design System to the concepts of a specific content authoring solution, like Storyblok&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That second part is what &lt;a href="https://about.design-system.agency/starter/" rel="noopener noreferrer"&gt;&lt;strong&gt;enables our CMS starters&lt;/strong&gt;&lt;/a&gt;. They use this to take the Design System for &lt;a href="https://design-system.agency/" rel="noopener noreferrer"&gt;design-system.agency&lt;/a&gt; and &lt;strong&gt;transform it to respective CMS configuration&lt;/strong&gt; (for &lt;strong&gt;Static CMS&lt;/strong&gt;, &lt;strong&gt;Storyblok&lt;/strong&gt; and &lt;strong&gt;Netlify Create&lt;/strong&gt; / &lt;strong&gt;Stackbit&lt;/strong&gt; as of today) that can be used to start building a website based on such a Design System immediately. Everything demoed with those starters works the same for every Design System &lt;strong&gt;built with kickstartDS&lt;/strong&gt;. To be more precise: it should work with every Design System that decides to encode its component API in JSON Schema. &lt;strong&gt;It’s completely generalized!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/kickstartDS/schema" rel="noopener noreferrer"&gt;https://github.com/kickstartDS/schema&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if compatibility with every &lt;strong&gt;kickstartDS&lt;/strong&gt; based &lt;strong&gt;Design System&lt;/strong&gt; is one important dimension of creating the starters and converters, in the process &lt;strong&gt;building out the concepts and tooling to make creating connectors easier&lt;/strong&gt; might actually be the more impactful one. The starters, and their respective connectors, are mainly meant as a demo on how powerful a strong JSON Schema-backed Design System can be. &lt;strong&gt;We hope it inspires others&lt;/strong&gt; to build their own like-minded integrations for their (rightfully so) super specific needs. Hopefully our tooling can aid people in implementing those!&lt;/p&gt;

&lt;p&gt;But after all… this is still mostly our own silo. &lt;strong&gt;This doesn’t unlock any greater effort, yet…&lt;/strong&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExa2ZxazB3M2FhMDlzcnJ4YjZkNW0zZ3NlajN6MzFxdTNiendlem42byZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/12jk7eTZIyaifxKofc/giphy-downsized-large.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Brewing" title="Brewing" src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExa2ZxazB3M2FhMDlzcnJ4YjZkNW0zZ3NlajN6MzFxdTNiendlem42byZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/12jk7eTZIyaifxKofc/giphy-downsized-large.gif"&gt;&lt;/a&gt;&lt;br&gt;via &lt;a href="https://giphy.com/gifs/visitsugartown-sugartown-mayor-mel-the-rift-12jk7eTZIyaifxKofc" rel="noopener noreferrer"&gt;GIPHY&lt;/a&gt;
  &lt;/p&gt;

&lt;h2&gt;
  
  
  And why might this matter!
&lt;/h2&gt;

&lt;p&gt;I hinted at this in the very intro to this lengthy post. &lt;strong&gt;Web Components seem to be leaving behind their growing pains&lt;/strong&gt;. With Declarative Shadow DOM arriving, one of the last missing pieces seems to finally complete the picture there.&lt;/p&gt;

&lt;p&gt;With React (it seems) finally moving to support everything needed (they are the &lt;a href="https://custom-elements-everywhere.com/" rel="noopener noreferrer"&gt;last major framework lagging&lt;/a&gt; behind substantially), too, we might be moving to a world post-framework discussions, and real interoperability on a technical level. I think &lt;a href="https://jakelazaroff.com/" rel="noopener noreferrer"&gt;Jake Lazaroff&lt;/a&gt; motivates this beautifully with his articles &lt;a href="https://jakelazaroff.com/words/web-components-eliminate-javascript-framework-lock-in/" rel="noopener noreferrer"&gt;“Web Components Eliminate JavaScript Framework Lock-in”&lt;/a&gt; and &lt;a href="https://jakelazaroff.com/words/the-web-component-success-story/" rel="noopener noreferrer"&gt;“The Web Component Success Story”&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Brad Frost also recently wrote about his &lt;a href="https://bradfrost.com/blog/post/a-global-design-system/" rel="noopener noreferrer"&gt;dream of a global Design System&lt;/a&gt;, and Web Components play a vital role there, too:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Given the above principles, I think it would make sense for the Global Design System to be a library of &lt;a href="//Given%20the%20above%20principles,%20I%20think%20it%20would%20make%20sense%20for%20the%20Global%20Design%20System%20to%20be%20a%20library%20of%20Web%20Components.%20Web%20Components%20are%20part%20of%20the%20web%20platform%20and%20are%20interoperable%20(in%20theory%20at%20least)%20with%20any%20web-based%20tech%20stack."&gt;Web Components&lt;/a&gt;. Web Components are part of the web platform and are interoperable (in theory at least) with any web-based tech stack.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Brad Frost, &lt;a href="https://bradfrost.com/blog/post/a-global-design-system/" rel="noopener noreferrer"&gt;A global Design System&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In another great article of his, &lt;a href="https://bradfrost.com/blog/post/the-design-system-ecosystem/" rel="noopener noreferrer"&gt;“The Design System Ecosystem”&lt;/a&gt;, you’d probably recognize it when he talks about the “core design system”. And some frameworks, &lt;a href="https://astro.build/" rel="noopener noreferrer"&gt;like Astro&lt;/a&gt;, experiment with similar ideas about composition and collaboration, irrespective of specific frameworks, already.&lt;/p&gt;

&lt;p&gt;If you now &lt;strong&gt;couple this with a shared way of documenting features&lt;/strong&gt; and properties for shareable components (🗣️ &lt;strong&gt;JSON Schema&lt;/strong&gt;), you can truly unlock the compositional potential the frontend should have.&lt;/p&gt;

&lt;p&gt;We actually think people should &lt;strong&gt;build their own tailored casings&lt;/strong&gt; around different component libraries, frameworks, and standards as they see fit for their requirements, there should be no lock-in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Design&lt;/strong&gt;: Connect your Design Tokens to a MUI theme to cover for your backoffice dashboards, or to Figma to enable a better designer-developer-workflow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation&lt;/strong&gt;: Integrate specialist libraries for specific requirements, like we do with &lt;a href="https://www.bedrock-layout.dev/" rel="noopener noreferrer"&gt;Bedrock Layout Primitives&lt;/a&gt; for layout needs &lt;a href="https://github.com/kickstartDS/kickstartDS/blob/beta/packages/tools/docusaurus/src/components/bedrock/BedrockProvider.jsx" rel="noopener noreferrer"&gt;in kickstartDS itself&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structure&lt;/strong&gt;: Use JSON Schema to add structure for interoperability with other systems and integrations (referencing could bridge and connect different systems through URIs)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content&lt;/strong&gt;: Use our &lt;a href="https://www.kickstartds.com/content-module/" rel="noopener noreferrer"&gt;kickstartDS Content module&lt;/a&gt; to fill gaps in your coverage of modern content page requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Add automation to &lt;strong&gt;leverage all of that&lt;/strong&gt; to automatically, or at least more easily, connect and integrate your adopting systems. &lt;strong&gt;kickstartDS&lt;/strong&gt; was built with those assumptions deeply embedded, and can serve as a great starting point to achieving the same for your &lt;strong&gt;Design System&lt;/strong&gt;!&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExc3BxMWd1ZnBkNnNrZm42bHFuMmdtc2p1MHIzc3d1eWw1MGQ3dzZldiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/DG64Bv70bTFle/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Reverse" title="Reverse" src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExc3BxMWd1ZnBkNnNrZm42bHFuMmdtc2p1MHIzc3d1eWw1MGQ3dzZldiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/DG64Bv70bTFle/giphy.gif"&gt;&lt;/a&gt;&lt;br&gt;via &lt;a href="https://giphy.com/gifs/animation-gif-artist-patrick-smith-DG64Bv70bTFle" rel="noopener noreferrer"&gt;GIPHY&lt;/a&gt;
  &lt;/p&gt;

&lt;h2&gt;
  
  
  A call to reverse roles
&lt;/h2&gt;

&lt;p&gt;When building a &lt;strong&gt;Design System&lt;/strong&gt; as described, you invest effort upfront, and justifiably so. If done right, this should not become a throwaway product. &lt;strong&gt;It shouldn’t die with a rebrand or redesign&lt;/strong&gt;… or the change of CMS / backend. In my opinion it should be &lt;strong&gt;even more long-lived than every other aspect of your digital toolchain&lt;/strong&gt;. Especially &lt;a href="https://www.kickstartds.com/blog/why-design-systems-are-the-missing-piece-in-mach-architectures/" rel="noopener noreferrer"&gt;with the rise in composable and MACH architectures&lt;/a&gt; it will be increasingly important to have such a cornerstone in place.&lt;/p&gt;

&lt;p&gt;How you interface with your users, customers or editors as a business should not be dependent on technological decisions. Only changes to your organization, or its embedded processes, should necessitate changes to your technical approach and ultimately the stuff you build, not the other way around.&lt;/p&gt;

&lt;p&gt;And if your business, or some of your use cases, change or expand, having it set up like this &lt;strong&gt;can dramatically reduce the effort&lt;/strong&gt; needed to reflect those changes downstream in your stack. A change of CMS for a some of your editors can be as easy as switching the integration you use.&lt;/p&gt;

&lt;p&gt;This way we can realize the &lt;strong&gt;true potential of Design Systems&lt;/strong&gt;, as the stabilizing core of your digital ecosystem.&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExaTg2OXpibmlhZ3Fwa2RsZW85M3ZpcWRsNWo1N2dzemdwcmM4em1jbiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/0lGd2OXXHe4tFhb7Wh/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Reverse" title="Reverse" src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExaTg2OXpibmlhZ3Fwa2RsZW85M3ZpcWRsNWo1N2dzemdwcmM4em1jbiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/0lGd2OXXHe4tFhb7Wh/giphy.gif"&gt;&lt;/a&gt;&lt;br&gt;via &lt;a href="https://giphy.com/gifs/pudgypenguins-internet-bard-chatgpt-0lGd2OXXHe4tFhb7Wh" rel="noopener noreferrer"&gt;GIPHY&lt;/a&gt;
  &lt;/p&gt;

&lt;h2&gt;
  
  
  How this relates to AI
&lt;/h2&gt;

&lt;p&gt;There’s a lot of buzz around &lt;strong&gt;AI in Design Systems&lt;/strong&gt; currently (to be fair: this is probably the case for every imaginable niche out there).&lt;/p&gt;

&lt;p&gt;With tools like &lt;a href="https://www.hermae.com/" rel="noopener noreferrer"&gt;Hermae&lt;/a&gt; (your custom Design System assistant) or &lt;a href="https://www.magicpatterns.com/" rel="noopener noreferrer"&gt;Magic Patterns&lt;/a&gt; (your copilot for UI creation) launching, packaging existing ideas and workflows into an easy-to-digest form factor, while others like &lt;a href="https://twitter.com/studioroboto" rel="noopener noreferrer"&gt;Jonathan of Roboto Studio&lt;/a&gt; show how this &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7166046680956452865/" rel="noopener noreferrer"&gt;can also work by just using the right IDE&lt;/a&gt;, there’s still a lot of finger-crossing and LLM-wrestling involved when working with the results.&lt;/p&gt;

&lt;p&gt;In the end, &lt;strong&gt;someone&lt;/strong&gt; has to define what your org needs, and how its processes look like. AI can’t (I mean: &lt;strong&gt;it shouldn’t&lt;/strong&gt;) do that. This is where you can &lt;strong&gt;use the human element to your advantage&lt;/strong&gt;, as leverage for (generative) AI. If you know what you need, and you should have made sure that you do (remember the article I mentioned earlier &lt;a href="https://esilva.net/sociotechnical/sociotechnical-architecture_why-and-what.html" rel="noopener noreferrer"&gt;about “Sociotechnical architecture”&lt;/a&gt;), encode it in a way that it can also be used for guided generation / Gen AI!&lt;/p&gt;

&lt;p&gt;And I think &lt;a href="https://twitter.com/MikeCarbone/status/1760472081559331148" rel="noopener noreferrer"&gt;“just” Markdown&lt;/a&gt; doesn’t quite cut it for safe guidance. For example: &lt;strong&gt;directly generating content for your components&lt;/strong&gt;. But I’m really excited about tooling like &lt;a href="https://github.com/outlines-dev/outlines/" rel="noopener noreferrer"&gt;outlines&lt;/a&gt; appearing, with a greater focus on &lt;a href="https://github.com/outlines-dev/outlines/?tab=readme-ov-file#efficient-json-generation-following-a-json-schema" rel="noopener noreferrer"&gt;guided generation for structured data&lt;/a&gt;. Because this is often what we actually need!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Taking outlines:&lt;/strong&gt; as a coder you could easily plug your Design Systems JSON Schema into it… immediately &lt;strong&gt;getting complete safety on the data being generated&lt;/strong&gt; actually being compatible to your component APIs. Or you could opt for &lt;a href="https://dottxt.co/" rel="noopener noreferrer"&gt;.json&lt;/a&gt;, by the authors of outlines, to use the same capabilities through their API, even without deeper technical knowledge.&lt;/p&gt;

&lt;p&gt;This is the strength we see in JSON Schema as a guiding factor in structured generation, good docs automatically serving as semantic &lt;strong&gt;context for the AI model / LLM&lt;/strong&gt;.&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExYjhpdWVsM2hjaDh5ZTlwcW95ZmF0d3ZvOHc4Y3M0YzdvcXU0bXhsNyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/l1EtgMjZTDKPanh4Y/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Reverse" title="Reverse" src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExYjhpdWVsM2hjaDh5ZTlwcW95ZmF0d3ZvOHc4Y3M0YzdvcXU0bXhsNyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/l1EtgMjZTDKPanh4Y/giphy.gif"&gt;&lt;/a&gt;&lt;br&gt;via &lt;a href="https://giphy.com/gifs/spongebob-spongebob-squarepants-season-6-l1EtgMjZTDKPanh4Y" rel="noopener noreferrer"&gt;GIPHY&lt;/a&gt;
  &lt;/p&gt;

&lt;h2&gt;
  
  
  Looking forward
&lt;/h2&gt;

&lt;p&gt;What does this mean for us? We’ll keep a good eye on &lt;strong&gt;Web Components&lt;/strong&gt;, as this seems like the next evolution to go through. Replacing our React templates with pure Web Components, &lt;strong&gt;gaining even more framework-independence&lt;/strong&gt;, seems like a pretty sure thing to happen.&lt;br&gt;
We’ll also keep exploring ways of content generation, using tools like outlines. We already have encoded the concepts of &lt;strong&gt;website settings&lt;/strong&gt;, &lt;strong&gt;content pages&lt;/strong&gt; and &lt;strong&gt;blog posts&lt;/strong&gt; into JSON Schema, powering our CMS integrations today. It would be a logical next step, to have guided content-generation, independent of headless CMS in use: “Please draft me content for a page about our upcoming release, use our Design System components for guidance”.&lt;/p&gt;

&lt;p&gt;We also foresee a need for better general &lt;strong&gt;migration support&lt;/strong&gt; (e.g. when changing a component in a breaking release), and ways of &lt;strong&gt;more flexibly mapping / connecting data to component APIs&lt;/strong&gt;, or gluing together different component APIs for compatibility (e.g. when integrating with third party libraries).&lt;/p&gt;

&lt;p&gt;And in general, I sincerely believe that at the intersection of Web Components and JSON Schema lies the potential to &lt;strong&gt;unlock the full power of a shared frontend ecosystem&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What do you think?&lt;/strong&gt; Let me know on Twitter at &lt;a href="https://twitter.com/tsnmp" rel="noopener noreferrer"&gt;@tsnmp&lt;/a&gt; or Bluesky at &lt;a href="https://bsky.app/profile/tsnm.bsky.social" rel="noopener noreferrer"&gt;@tsnm.bsky.social&lt;/a&gt;. You can also connect with me on &lt;a href="https://www.linkedin.com/in/jonas-ulrich-b0a7b0222/" rel="noopener noreferrer"&gt;LinkedIn here&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Or join our community on &lt;strong&gt;Discord&lt;/strong&gt;: &lt;a href="https://discord.gg/mwKzD5gejY" rel="noopener noreferrer"&gt;https://discord.gg/mwKzD5gejY&lt;/a&gt;&lt;/p&gt;

</description>
      <category>designsystem</category>
      <category>jsonschema</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Launching the Design System Concierge</title>
      <dc:creator>Jonas Ulrich</dc:creator>
      <pubDate>Mon, 01 May 2023 22:16:28 +0000</pubDate>
      <link>https://dev.to/kickstartds/launching-the-design-system-concierge-2ock</link>
      <guid>https://dev.to/kickstartds/launching-the-design-system-concierge-2ock</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;We’re thrilled to share the &lt;strong&gt;Design System Concierge&lt;/strong&gt; with you! You can reach him here as of today: &lt;a href="https://www.kickstartDS.com/concierge/"&gt;https://www.kickstartDS.com/concierge/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch a small dramatization of what interacting with our Concierge looks like:&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/9Vuu4XKguak"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Support us on Product Hunt for our launch:&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://www.producthunt.com/posts/design-system-concierge" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--pdR_RRmn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://ph-files.imgix.net/b2d6a88f-aca8-4128-8d34-edea6afe9897.png%3Fauto%3Dformat%26fit%3Dcrop%26frame%3D1%26h%3D512%26w%3D1024" height="400" class="m-0" width="800"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://www.producthunt.com/posts/design-system-concierge" rel="noopener noreferrer" class="c-link"&gt;
           Design System Concierge - Your AI-powered Design System assistant | Product Hunt
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;p class="truncate-at-3"&gt;
          Get Design System answers, fast! Our AI-powered Concierge offers insights from our vast Design System database sourcing expert content only. Ask any question, get pointed to the right source. Your ultimate Design System assistant.
        &lt;/p&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--cmeqGyAO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://ph-static.imgix.net/ph-favicon-coral.ico" width="240" height="240"&gt;
        producthunt.com
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Why build the Design System Concierge?
&lt;/h3&gt;

&lt;p&gt;As &lt;strong&gt;Design Systems&lt;/strong&gt; gain more and more traction these days, the amount of available content can be overwhelming, making it difficult to know where to start. Our &lt;strong&gt;AI-powered&lt;/strong&gt; Design System Concierge can help by &lt;strong&gt;providing expert guidance&lt;/strong&gt; and &lt;strong&gt;pointing you towards the right resources&lt;/strong&gt;, whether it’s implementation guides, architecture documents, adoption strategies, or other content.&lt;/p&gt;

&lt;h3&gt;
  
  
  Talking to the Design System Concierge
&lt;/h3&gt;

&lt;p&gt;To get the best possible help from our Design System Concierge, we recommend &lt;strong&gt;asking detailed questions&lt;/strong&gt; instead of engaging in a chat. The Concierge provides quick and transparent answers by &lt;strong&gt;summarizing the most relevant content sources&lt;/strong&gt;. Every answer includes &lt;strong&gt;underlying sources that you can easily check&lt;/strong&gt; and visit. Trust us to deliver accurate and reliable information for all your Design System-related queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It’s important to note:&lt;/strong&gt; The final answer is generated by &lt;a href="https://openai.com/product"&gt;Open AI GPT-3&lt;/a&gt;, and even if we take great care to reduce wrong answers you should always dive deeper. &lt;strong&gt;The answer given is not really meant as the end&lt;/strong&gt; of your interaction. You can, and should, &lt;strong&gt;dive deeper&lt;/strong&gt; into the sections most relevant to your question… as the Concierge is great at giving directions, but &lt;strong&gt;not really&lt;/strong&gt; an expert himself (just like in real life!).&lt;/p&gt;

&lt;h2&gt;
  
  
  Why use it
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using it is free
&lt;/h3&gt;

&lt;p&gt;Asking questions to the Concierge is &lt;strong&gt;completely free of charge&lt;/strong&gt; for you. We’ve developed, and are now hosting, it, because &lt;strong&gt;we want to help lower barriers of entry&lt;/strong&gt; when it comes to Design Systems. After all our mission is to “Democratize Design Systems”.&lt;/p&gt;

&lt;p&gt;Additionally it’s a great &lt;strong&gt;opportunity for us to learn&lt;/strong&gt; what you, as a user, actually want to know more about when it comes to Design Systems… or features that you’d expect from a Design System. This in turn can &lt;strong&gt;inform us on features&lt;/strong&gt; to develop for kickstartDS, &lt;strong&gt;articles&lt;/strong&gt; to write, or &lt;strong&gt;documentation&lt;/strong&gt; gaps to fill in.&lt;/p&gt;

&lt;h3&gt;
  
  
  It’s specialized for Design Systems
&lt;/h3&gt;

&lt;p&gt;Though the final answer is generated by Open AI GPT-3, &lt;strong&gt;all input given to it as context is completely controlled by us&lt;/strong&gt;, and our integration. Only carefully selected sources (= domains with content relevant to Design Systems) are added to the Design System database, &lt;strong&gt;backing the Design System Concierge&lt;/strong&gt;. This ensures answers will be &lt;strong&gt;relevant to the topic&lt;/strong&gt;, and &lt;strong&gt;hallucinations are minimized&lt;/strong&gt;. If there’s no relevant content in the database, no answer will be generated!&lt;/p&gt;

&lt;p&gt;Additionally, by providing the exact sources the answer by the Concierge was based on, you should &lt;strong&gt;always verify&lt;/strong&gt; it for yourself &lt;strong&gt;by diving deeper&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  It promotes great content &amp;amp; creators
&lt;/h3&gt;

&lt;p&gt;Sometimes it’s &lt;strong&gt;tough to just “google” your answer&lt;/strong&gt;, especially when faced with highly individual and specialized questions… the ones you’d typically have when starting out, or when facing new challenges. Good content gets drowned out by a sea of content farm spam. By &lt;strong&gt;asking the Concierge&lt;/strong&gt; instead, you get a &lt;strong&gt;highly curated&lt;/strong&gt; set of content &lt;strong&gt;as the backbone&lt;/strong&gt;. Best case: you discover a new blog author, content creator, or a specific Design System example to follow, helping &lt;strong&gt;inform your Design System journey&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use it
&lt;/h2&gt;

&lt;p&gt;For a quick overview, have a look at the following, short animation:&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/kg4kOh1fX5A"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Ask a question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Enter detailed, natural questions&lt;/strong&gt; instead of trying to engineer your way out of a thick jungle of content spam, only armed with the waning powers of &lt;a href="https://en.wiktionary.org/wiki/Google-fu"&gt;Google-Fu&lt;/a&gt;:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pSDgOafR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x5x2ccxq0yvjfh11zmn2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pSDgOafR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x5x2ccxq0yvjfh11zmn2.png" alt="Screenshot of question entry" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Get initial answer
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Receive an initial answer&lt;/strong&gt; instantly by the Concierge. This should be taken as a first summarization by an enthusiastic, helpful assistant… &lt;strong&gt;not&lt;/strong&gt; as &lt;strong&gt;the final expert answer&lt;/strong&gt; to end all answers:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HuwLCv7W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iguxnfaw2r7ev7bubpr7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HuwLCv7W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iguxnfaw2r7ev7bubpr7.png" alt="Screenshot of initial answer" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Dive into sources
&lt;/h3&gt;

&lt;p&gt;Even more useful then the initial answer are the &lt;strong&gt;sources provided by the Concierge&lt;/strong&gt;. Those are the &lt;strong&gt;sections of text&lt;/strong&gt; in our database that were found to be &lt;strong&gt;most relevant&lt;/strong&gt; to your question. This should provide full transparency, and enables using the Concierge as a great guide-post to the real content:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---MVvfEQU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7fojeyx6n1idhcob94uw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---MVvfEQU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7fojeyx6n1idhcob94uw.png" alt="Screenshot of found sources" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How it’s done
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Database of expert content
&lt;/h3&gt;

&lt;p&gt;The Concierge is backed by a vast database of content curated, prepared and catalogued specifically by us:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---X4bvWCD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uy6x96aqz9bs9x3s8jw0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---X4bvWCD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uy6x96aqz9bs9x3s8jw0.png" alt="Overview of sources backing the Concierge" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For a full list of sourced domains, &lt;a href="https://www.kickstartds.com/concierge/"&gt;go to the Concierge&lt;/a&gt;. All domains are listed in the section “Knowledge database” over there.&lt;/p&gt;

&lt;h3&gt;
  
  
  Behind the scenes
&lt;/h3&gt;

&lt;p&gt;The implementation is mainly following the &lt;a href="https://supabase.com/blog/openai-embeddings-postgres-vector"&gt;great blog post&lt;/a&gt; (&lt;a href="https://github.com/supabase/supabase/pull/12056/commits/bd83e9ba2f7263440888228e3b29007604d94841"&gt;and example code&lt;/a&gt;) provided by &lt;a href="https://supabase.com/"&gt;Supabase&lt;/a&gt;. Their post was also the main reason for me to use &lt;strong&gt;Supabase with their PostgreSQL + Edge Function&lt;/strong&gt; for the main hosting in the end. It’s a super nicely packaged solution, was just &lt;strong&gt;loving the DX&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;Going into all the nitty gritty details would go beyond the scope permitted by such a blog post as this one (Spoilers: it includes non-Open AI &lt;a href="https://sbert.net/"&gt;SBert embeddings&lt;/a&gt;, a &lt;a href="https://fly.io/"&gt;Fly.io&lt;/a&gt; Python- / Flask-Webservice for runtime embedding of questions, spliced and transformed &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events"&gt;Server Sent-Events&lt;/a&gt; streams, &lt;a href="https://github.com/pgvector/pgvector"&gt;pgvector&lt;/a&gt; for database support of embeddings, etc, etc). Feel free to &lt;a href="https://discord.gg/mwKzD5gejY"&gt;join us on Discord&lt;/a&gt; to discuss further… and for all the quiet explorers among you, I’ve made a Miro &lt;strong&gt;board outlining how everything works&lt;/strong&gt;, over here:&lt;br&gt;
&lt;a href="https://miro.com/app/board/uXjVMdpB0ao=/"&gt;https://miro.com/app/board/uXjVMdpB0ao=/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alternatively, you can just go to the Github repository for the Concierge. All the code is public and Open Source here:&lt;br&gt;
&lt;a href="https://github.com/kickstartDS/concierge"&gt;https://github.com/kickstartDS/concierge&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We really hope the Design System Concierge can &lt;strong&gt;help you along your personal journey&lt;/strong&gt; through the Design System space. We’re thrilled to see all the questions you’ll try on him, and what the overall reaction will be. We already have a truckload of ideas to explore further, if this resonates with the community!&lt;/p&gt;

&lt;p&gt;If you want to &lt;strong&gt;give feedback&lt;/strong&gt; to us, have ideas on what to improve or add, or just want to tell us what cool answers you’ve received… we’d love for you to &lt;strong&gt;&lt;a href="https://discord.gg/mwKzD5gejY"&gt;join our small Discord community&lt;/a&gt;&lt;/strong&gt;. Or maybe the Concierge was completely missing the mark for you? We’d especially like to hear about those cases, too!&lt;/p&gt;

</description>
      <category>designsystem</category>
      <category>ai</category>
      <category>gpt3</category>
      <category>opensource</category>
    </item>
    <item>
      <title>kickstartDS is Open Source now. Let’s start to democratize Design Systems today</title>
      <dc:creator>Jonas Ulrich</dc:creator>
      <pubDate>Tue, 15 Nov 2022 11:26:26 +0000</pubDate>
      <link>https://dev.to/kickstartds/kickstartds-is-open-source-now-lets-start-to-democratize-design-systems-today-5b96</link>
      <guid>https://dev.to/kickstartds/kickstartds-is-open-source-now-lets-start-to-democratize-design-systems-today-5b96</guid>
      <description>&lt;h4&gt;
  
  
  Finally, the wait is over … today we are very proud to announce the Open Source release of kickstartDS. It’s been roughly one year since we started to go to market by publishing our first website, and we are thrilled to now share the kickstartDS core with everyone in the Design System community.
&lt;/h4&gt;

&lt;p&gt;We’re also officially live on Product Hunt! Feel free to drop as an upvote 🎉&lt;br&gt;
&lt;a href="https://www.producthunt.com/posts/kickstartds"&gt;https://www.producthunt.com/posts/kickstartds&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why have we decided to go Open Source?
&lt;/h2&gt;

&lt;p&gt;Some of you might have read my &lt;a href="https://www.kickstartds.com/blog/why-we-created-kickstartds/"&gt;post&lt;/a&gt; on why we are creating kickstartDS. Today, I can proudly say that we reached the next big milestone of our mission to democratize Design Systems. Last year we started to implement kickstartDS for selected pilot customers, keeping the source behind closed doors. We wanted to validate technical decisions taken, and learn how developers interact and adapt kickstartDS.&lt;/p&gt;

&lt;p&gt;During that time, while doing user research, presenting our ideas and solutions to developers, we often heard that they really like it… and that they would love to test it by directly installing “the package”. Well, who would go for a no-name, closed solution to build up something highly important like their Design System?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Source is the way!&lt;/strong&gt; A couple of months ago we took the decision to share all our learnings and practices, wrapped up in the baseline of what kickstartDS is today. We want to continue that learning journey. That will be even easier with people working with kickstartDS independently, who hopefully also share their experiences and stories with us in the process. That is what we’d like to encourage users to do. Just try our setup guide… and once you &lt;strong&gt;own your Design System&lt;/strong&gt; based on kickstartDS, really &lt;strong&gt;make it your own&lt;/strong&gt;. Tell us how you adapted it towards your individual needs, even how you named your components, how you get along with it adoption are super interesting to us! So please share it with us and the community.&lt;/p&gt;

&lt;h2&gt;
  
  
  Help democratize Design Systems!
&lt;/h2&gt;

&lt;p&gt;The term Design System describes a broad topic, growing more and more momentum. Where large organizations today mostly have problems with the adoption or governance of theirs, in small to medium enterprises the problem often already is to get a Design System started at all. For example, when standard frameworks are too difficult or complex to adapt, when stakeholders need to be won in a time when frontend experts are a rare good. The approach is doomed and will lead to compromised technical solutions; consuming even more time and budget.&lt;/p&gt;

&lt;p&gt;Today quite some companies are already tackling similar problems. Talking of &lt;a href="https://www.knapsack.cloud/"&gt;Knapsack.cloud&lt;/a&gt;, &lt;a href="https://backlight.dev/"&gt;Backlight.dev&lt;/a&gt;, &lt;a href="https://specifyapp.com/"&gt;Specify&lt;/a&gt;, &lt;a href="http://www.supernova.io/"&gt;Supernova&lt;/a&gt; and many more, here. They all deliver value to simplify workflows for setup, integration, documentation and management of Design Systems. This is all super helpful in spreading the love about Design Systems to teams out there, and is a huge benefit to the process side of things. &lt;strong&gt;But&lt;/strong&gt; you usually still need to create or import all of your components, which means that you still have some hard work before to you yourself, before finally benefitting from these tools. There’s also a lot (knowledge and work) going into the setup of a Design System (semantic tokens, hardened components, etc) that’s not solved by those tools, yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up a code first Design System has never been easier
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.kickstartDS.com/docs"&gt;Developer Documentation&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/kickstartDS/kickstartDS"&gt;Visit our GitHub&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;To help you getting started quickly, we created &lt;a href="https://www.kickstartds.com/docs/"&gt;documentation&lt;/a&gt; guiding you through the installation process of your first Design System built with kickstartDS… in just 5 rather simple steps.&lt;br&gt;
The main steps will go as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start your Design System&lt;/li&gt;
&lt;li&gt;Design Application&lt;/li&gt;
&lt;li&gt;Configure Storybook&lt;/li&gt;
&lt;li&gt;Add Components&lt;/li&gt;
&lt;li&gt;Publish your Design System&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Although the resulting Design System will obviously not be finished by finishing these steps, you’ll have everything set up to start on &lt;strong&gt;the real work&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The essential part
&lt;/h2&gt;

&lt;p&gt;At that point you already got rid of some of the core challenges. Plus, this might even give you the mental freedom to tackle the &lt;strong&gt;unique components&lt;/strong&gt; to your organizations actual needs.&lt;/p&gt;

&lt;p&gt;Thinking of such components … usually, every company has content to display. On their website, on marketing or landing pages, in their intranet or documentation, you name it. You can now start developing the perfect &lt;a href="https://www.kickstartds.com/storybook/?path=/story/content-visual--box-light"&gt;“Hero Visual Component”&lt;/a&gt; with our basic Open Source components or you can skip even that by relying on our &lt;a href="https://www.kickstartds.com/blog/great-components/"&gt;&lt;strong&gt;complex content components&lt;/strong&gt;&lt;/a&gt;, which you can easily buy for a few bucks to add as additional building blocks for your freshly created Design System.&lt;/p&gt;

&lt;p&gt;That package, additionally, really puts you in the driving seat… speeding up the ride for even the most individual and complex cases you’ll want to solve, the “next component your organization needs”. (this refers to &lt;a href="https://twitter.com/danmall"&gt;Dan Mall&lt;/a&gt;’s talk on Converge’22, available through their &lt;a href="https://convergeldn.com/"&gt;registry here&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s next?
&lt;/h2&gt;

&lt;p&gt;Now that kickstartDS is public we look ahead to its future with an open mind. We still have to work on many details to let our documentation really shine, for example. As we want to explain the underlying concepts in-depth. And since everyone is now free to install, test and use kickstartDS we believe in the great openness of the Design System community. We rely on your feedback by adapting to your needs, so that kickstartDS will really become the Design System starter digital teams like to work with.&lt;/p&gt;

&lt;p&gt;Releasing kickstartDS doesn’t mean that the development is completed. We have lots of ideas in mind. Features or modules which may find the way into the portfolio, thinking of &lt;a href="https://mobile.twitter.com/tsnmp/status/1513434965937201154"&gt;telemetry&lt;/a&gt;, adapters, transformers and much more based on our &lt;strong&gt;Component API&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not to forget: a Design System is nothing without systems using it!
&lt;/h2&gt;

&lt;p&gt;A Design System is there to generate value, to support the organization to better reach its objectives. Naturally there will be product or feature teams using it. About that, a 6th Step could and maybe even should be added to the setup process of the Design System.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Apply your Design System
&lt;/h3&gt;

&lt;p&gt;Whilst setting up kickstartDS you made quite a lot of decisions adapting the library to your organizations’ specific needs. You decided which properties every component needs, how to name components, and much more. What would you say if we told you: you can even add a CMS, using these exact Design System components, with just a handful of clicks? Where your editor immediately benefits from all your decisions, because the properties of components in the editor UI are always aligned with those from your Design System.&lt;/p&gt;

&lt;p&gt;We offer adapters for some well-known content management systems already, e.g. Sanity.io, NetlifyCMS, Storyblok, Contentful and even WordPress.&lt;/p&gt;

&lt;p&gt;One more reason why we think: relying on kickstartDS when building your Design System is of huge value for you and the Open Source community, who can start building more adapters and implementations on top of kickstartDS to simplify the process of applying Design Systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  The importance of the growing Design System community
&lt;/h2&gt;

&lt;p&gt;Thinking about the best thing we could achieve with kickstartDS, and as already written in this posts’ headline: do our part in &lt;strong&gt;democratizing Design Systems&lt;/strong&gt;. The more people know about kickstartDS, the more organizations use it, the more developers build Design Systems based on it, the better it will become in the future. Helping organizations adopt best practices, and hopefully help everyone to get their Design System that decisive bit faster, while having fun doing it!&lt;/p&gt;

&lt;p&gt;Join our &lt;a href="https://discord.gg/mwKzD5gejY"&gt;Discord community&lt;/a&gt; to share feedback, ask us questions and start any discussion around kickstartDS.&lt;/p&gt;

&lt;p&gt;Take a look at kickstartDS on &lt;a href="https://github.com/kickstartDS"&gt;GitHub&lt;/a&gt;, and tell us what you think.&lt;/p&gt;

&lt;p&gt;And if you're on Product Hunt, we'd love your vote 🤗&lt;br&gt;
&lt;a href="https://www.producthunt.com/posts/kickstartds"&gt;https://www.producthunt.com/posts/kickstartds&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>react</category>
      <category>frontend</category>
      <category>designsystem</category>
    </item>
    <item>
      <title>Quarterly Design System and Frontend Podcast Roundup - Q1/22</title>
      <dc:creator>Jonas Ulrich</dc:creator>
      <pubDate>Thu, 21 Apr 2022 19:07:11 +0000</pubDate>
      <link>https://dev.to/kickstartds/quarterly-design-system-and-frontend-podcast-roundup-q122-7f6</link>
      <guid>https://dev.to/kickstartds/quarterly-design-system-and-frontend-podcast-roundup-q122-7f6</guid>
      <description>&lt;p&gt;&lt;strong&gt;#tldr Read our roundup of podcasts released in the first quarter of 2022. Everything related to Design Systems, Frontend development and headless CMS / Jamstack.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m listening to quite a collection of podcasts regularly, as I just love to learn about new stuff… and what others are building. And sometime at the end of last year I decided to favorite all those episodes that were really interesting to me. So this will be the obvious bias here… 😅&lt;br&gt;
But maybe this turns out to be useful for others, let me know!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Podcast themes include:&lt;/strong&gt; Design Systems, Frontend, UI, React, headless CMS, Jamstack&lt;/p&gt;

&lt;p&gt;And I’ve added everything I starred in April so far, too… for good measure 😉&lt;/p&gt;

&lt;h2&gt;
  
  
  Podcasts featured:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;PodRocket: &lt;a href="https://podrocket.logrocket.com/" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/&lt;/a&gt; (12 episodes)&lt;/li&gt;
&lt;li&gt;JS Party: &lt;a href="https://changelog.com/jsparty" rel="noopener noreferrer"&gt;https://changelog.com/jsparty&lt;/a&gt; (5 episodes)&lt;/li&gt;
&lt;li&gt;devtools.fm: &lt;a href="https://devtools.fm/" rel="noopener noreferrer"&gt;https://devtools.fm/&lt;/a&gt; (3 episodes)&lt;/li&gt;
&lt;li&gt;JavaScript Jabber: &lt;a href="https://javascriptjabber.com/" rel="noopener noreferrer"&gt;https://javascriptjabber.com/&lt;/a&gt; (3 episodes)&lt;/li&gt;
&lt;li&gt;That’s my JAMstack: &lt;a href="https://thatsmyjamstack.com/" rel="noopener noreferrer"&gt;https://thatsmyjamstack.com/&lt;/a&gt; (3 episodes)&lt;/li&gt;
&lt;li&gt;JAMstack Radio: &lt;a href="https://www.heavybit.com/library/podcasts/jamstack-radio/" rel="noopener noreferrer"&gt;https://www.heavybit.com/library/podcasts/jamstack-radio/&lt;/a&gt; (2 episodes)&lt;/li&gt;
&lt;li&gt;Front End Happy Hour: &lt;a href="https://www.frontendhappyhour.com/" rel="noopener noreferrer"&gt;https://www.frontendhappyhour.com/&lt;/a&gt; (2 episodes)&lt;/li&gt;
&lt;li&gt;Console DevTools Podcast: &lt;a href="https://console.dev/podcast/" rel="noopener noreferrer"&gt;https://console.dev/podcast/&lt;/a&gt; (2 episodes)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This also means (at least for me) that PodRocket takes the crown for most listened podcast of the quarter… and by quite the margin, too! 🚀&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8plv2iu1v01wv6ktw33.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8plv2iu1v01wv6ktw33.jpg" alt="LogRocket PodRocket Podcast"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On to the monthly overview:&lt;/p&gt;

&lt;h2&gt;
  
  
  April
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;April 15th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: “Remix with Chance Strickland”
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Kate Trahan, Kaelan Cooter&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Chance Strickland&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 26m 8s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/remix" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/remix&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;April 14th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  devtools.fm: Episode #28 “Steve Sewell – Builder.io, partytown, Qwik, mitosis”
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Andrew Lisowski, Justin Bennett&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Steve Sewell&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 01h 06m&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://devtools.fm/episode/28" rel="noopener noreferrer"&gt;https://devtools.fm/episode/28&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;April 14th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JAMstack Radio: Ep. 99 “Headless Commerce Engine with Sebastian Rindom and Nicklas Gellner of Medusa”
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; Brian Douglas&lt;br&gt;
&lt;strong&gt;Guests:&lt;/strong&gt; Sebastian Rindom, Nicklas Gellner&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 28m 01s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://www.heavybit.com/library/podcasts/jamstack-radio/ep-99-headless-commerce-engine-with-sebastian-rindom-and-nicklas-gellner-of-medusa/" rel="noopener noreferrer"&gt;https://www.heavybit.com/library/podcasts/jamstack-radio/ep-99-headless-commerce-engine-with-sebastian-rindom-and-nicklas-gellner-of-medusa/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;April 8th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Front End Happy Hour: Episode 147 “Debugging Asynchronous JavaScript – Awaiting My Drink”
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Ryan Burgess, Jem Young&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Jenn Creighton&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 44m 56s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://www.frontendhappyhour.com/episodes/debugging-asynchronous-javascript-awaiting-my-drink/" rel="noopener noreferrer"&gt;https://www.frontendhappyhour.com/episodes/debugging-asynchronous-javascript-awaiting-my-drink/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;April 6th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: “Storybook with Chantastic”
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Kate Trahan, Noel Minchow&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Chantastic&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 51m 59s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/storybook" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/storybook&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;April 5th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: “KendoReact with Kathryn Grayson Nanz”
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Kate Trahan, Noel Minchow&lt;br&gt;
&lt;strong&gt;Guests:&lt;/strong&gt; Kathryn Grayson Nanz&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 42m 39s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/kendoreact" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/kendoreact&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;April 1st, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: “AgnosticUI with Rob Levin”
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; Paul Mikulskis&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Rob Levin&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 30m 12s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/agnosticui" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/agnosticui&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  March
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;March 29th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: “SPAs, island architecture, and the future of development with Ryan Carniato and Dylan Piercey”
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Kate Trahan, Noel Minchow&lt;br&gt;
&lt;strong&gt;Guests:&lt;/strong&gt; Ryan Carniato, Dylan Piercey&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 51m 00s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/island-architecture" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/island-architecture&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;March 29th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JavaScript Jabber: React Component and State Management – JSJ 526
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; AJ O’Neal, Charles Wood, Dan Shappir&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 01h 8m&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://javascriptjabber.com/react-component-and-state-management-jsj-526" rel="noopener noreferrer"&gt;https://javascriptjabber.com/react-component-and-state-management-jsj-526&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;March 18th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JS Party: Episode #217 Going full-time on Eleventy
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Jerod Santo, Nick Nisi&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Zach Leatherman&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 58m 00s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://changelog.com/jsparty/217" rel="noopener noreferrer"&gt;https://changelog.com/jsparty/217&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;March 18th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: Polaris: The Shopify design system with Alex Page and Yuraima Estevez
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Kate Trahan, Noel Minchow&lt;br&gt;
&lt;strong&gt;Guests:&lt;/strong&gt; Alex Page, Yuraima Estevez&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 50m 51s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/shopify" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/shopify&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;March 16th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: Final Form with Erik Rasmussen
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Kate Trahan, Paul Mikulskis&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Erik Rasmussen&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 41m 32s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/final-form" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/final-form&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;March 11th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: Accessibility with Ben Myers
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; Kate Trahan, Brendan Downing&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Ben Myers&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 39m 20s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/accessibility" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/accessibility&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;March 8th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: Composing layouts with Travis Waith-Mair
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Kate Trahan, Noel Minchow&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Travis Waith-Mair&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 40m 35s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/composing-layouts" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/composing-layouts&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;March 4th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JS Party: Episode #215 Remix helps bridge the network chasm
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Kevin Ball, Ali Spittel, Divya&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Kent C. Dodds&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 01h 13m&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://changelog.com/jsparty/215" rel="noopener noreferrer"&gt;https://changelog.com/jsparty/215&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;March 4th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  devtools.fm: Episode #25 Anthony Fu – Vue, Vite, Vitest, UnoCSS
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Andrew Lisowski, Justin Bennett&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Anthony Fu&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 52m 30s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://devtools.fm/episode/25" rel="noopener noreferrer"&gt;https://devtools.fm/episode/25&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;March 3rd, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Console DevTools Podcast: Designing dev products
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; David Mytton&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Ellen Chisa&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 32m 45s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://console.dev/podcast/s02e09-designing-dev-products-ellen-chisa-boldstart/" rel="noopener noreferrer"&gt;https://console.dev/podcast/s02e09-designing-dev-products-ellen-chisa-boldstart/&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  February
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;February 25th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JS Party: Episode #214 Vitest &amp;amp;&amp;amp; Slidev
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Jerod Santo, Nick Nisi&lt;br&gt;
&lt;strong&gt;Guests:&lt;/strong&gt; Anthony Fu, Patak&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 55m 00s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://changelog.com/jsparty/214" rel="noopener noreferrer"&gt;https://changelog.com/jsparty/214&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;February 23rd, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: Slinkity with Ben Holmes
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Kate Trahan, Paul Mikulskis&lt;br&gt;
&lt;strong&gt;Guests:&lt;/strong&gt; Ben Holmes&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 32m 59s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/slinkity" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/slinkity&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;February 11th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JS Party: Episode #212 A deep-dive on Vite
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Amal Hussein, Nick Nisi&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Evan You&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 01h 14m&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://changelog.com/jsparty/212" rel="noopener noreferrer"&gt;https://changelog.com/jsparty/212&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;February 9th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  That’s my JAMstack: REMIX! Tamas Piros on islands architecture, Astro and media usage
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; Bryan Robinson&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Tamas Piros&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 28m 52s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://thatsmyjamstack.com/episodes/tamas-piros-remix/" rel="noopener noreferrer"&gt;https://thatsmyjamstack.com/episodes/tamas-piros-remix/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;February 9th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: Modern React with Paige Niedringhaus
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; Kate Trahan, Noel Minchow&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Paige Niedringhaus&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 50m 00s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/modern-react" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/modern-react&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;February 6th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Front End Happy Hour: TypeScript migration – Strict type of cocktails
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; Ryan Burgess&lt;br&gt;
&lt;strong&gt;Guests:&lt;/strong&gt; Sumana Mohan, Joe King&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 48m 22s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://www.frontendhappyhour.com/episodes/typescript-migration-strict-type-of-cocktails/" rel="noopener noreferrer"&gt;https://www.frontendhappyhour.com/episodes/typescript-migration-strict-type-of-cocktails/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;February 4th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JS Party: Episode #211 A Solid option for building UIs
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Ryan Burgess, Jem Young, Stacy London&lt;br&gt;
&lt;strong&gt;Guests:&lt;/strong&gt; Sumana Mohan, Joe King&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 55m 00s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://changelog.com/jsparty/211" rel="noopener noreferrer"&gt;https://changelog.com/jsparty/211&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;February 3rd, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Console DevTools Podcast: Devtools investing
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; David Mytton&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Ed Sim&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 30m 38s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://console.dev/podcast/s02e05-devtools-investing-ed-sim-boldstart/" rel="noopener noreferrer"&gt;https://console.dev/podcast/s02e05-devtools-investing-ed-sim-boldstart/&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  January
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;January 27th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JAMstack Radio: Ep. #95, Islands Architecture with Ben Holmes of Slinkity
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; Brian Douglas&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Ben Holmes&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 27m 58s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://www.heavybit.com/library/podcasts/jamstack-radio/ep-95-islands-architecture-with-ben-holmes-of-slinkity/" rel="noopener noreferrer"&gt;https://www.heavybit.com/library/podcasts/jamstack-radio/ep-95-islands-architecture-with-ben-holmes-of-slinkity/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;January 26th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PodRocket: MUI with Olivier Tassinari
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; Ben Edelstein&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Olivier Tassinari&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 31m 43s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://podrocket.logrocket.com/mui" rel="noopener noreferrer"&gt;https://podrocket.logrocket.com/mui&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;January 25th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JavaScript Jabber: Virtual DOM and the React Way, Part Deux – JSJ 518
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Aimee Knight, AJ O’Neal, Dan Shappir, Steve Edwards&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 01h 32m&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://javascriptjabber.com/virtual-dom-and-the-react-way-part-deux-jsj-518" rel="noopener noreferrer"&gt;https://javascriptjabber.com/virtual-dom-and-the-react-way-part-deux-jsj-518&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;January 21st, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  devtools.fm: Yang Zhang – Plasmic
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hosts:&lt;/strong&gt; Andrew Lisowski, Justin Bennett&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Yang Zhang&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 57m 04s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://devtools.fm/episode/22" rel="noopener noreferrer"&gt;https://devtools.fm/episode/22&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;January 18th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JavaScript Jabber: Can JAMstack do REAL Web Apps? with James Q Quick – JSJ 517
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; AJ O’Neal, Charles Wood, Steve Edwards&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; James Q Quick&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 01h 20m&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://javascriptjabber.com/can-jamstack-do-real-web-apps-jsj-517" rel="noopener noreferrer"&gt;https://javascriptjabber.com/can-jamstack-do-real-web-apps-jsj-517&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;January 12th, 2022&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  That’s my JAMstack: Raymond Camden (REMIX) on the amazing expansion of the Jamstack ecosystem and how far we’ve come
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; Bryan Robinson&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Raymond Camden&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 27m 31s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://thatsmyjamstack.com/episodes/raymond-camden-remix/" rel="noopener noreferrer"&gt;https://thatsmyjamstack.com/episodes/raymond-camden-remix/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;January 04th&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  That’s my JAMstack: Salma Alam-Naylor on shipping, learning, and rendering in the Jamstack
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Host:&lt;/strong&gt; Bryan Robinson&lt;br&gt;
&lt;strong&gt;Guest:&lt;/strong&gt; Salma Alam-Naylor&lt;br&gt;
&lt;strong&gt;Length:&lt;/strong&gt; 27m 59s&lt;br&gt;
&lt;strong&gt;Link:&lt;/strong&gt; &lt;a href="https://thatsmyjamstack.com/episodes/salma-alam-naylor/" rel="noopener noreferrer"&gt;https://thatsmyjamstack.com/episodes/salma-alam-naylor/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;And if you’re missing one from the list, one you’ve enjoyed a lot, let me know on Twitter! Always happy to add another one to my subscriptions 🙂&lt;/p&gt;

</description>
      <category>designsystem</category>
      <category>podcast</category>
      <category>react</category>
      <category>news</category>
    </item>
    <item>
      <title>Unlocking the frontend - a call for standardizing component APIs pt.1</title>
      <dc:creator>Jonas Ulrich</dc:creator>
      <pubDate>Sat, 26 Mar 2022 19:46:09 +0000</pubDate>
      <link>https://dev.to/kickstartds/unlocking-the-frontend-a-call-for-standardizing-component-apis-pt1-26p9</link>
      <guid>https://dev.to/kickstartds/unlocking-the-frontend-a-call-for-standardizing-component-apis-pt1-26p9</guid>
      <description>&lt;p&gt;&lt;strong&gt;#tldr We're still wasting massive amounts of valuable development cycles in the frontend world by working in silos, or by to at least some extent reinventing the wheel for every project. Results suffer in the process, impacting real world results for users and content creators alike.&lt;br&gt;
How did we get here, and how could a way forward look like? How we've already come a long way, and why still (so far) even Jamstack hasn't been the sole answer, either...&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  So what's wrong?
&lt;/h2&gt;

&lt;p&gt;This is something I've been thinking about for a while now.&lt;br&gt;
Way back in the day, when you wanted to build a website or digital product, you built everything yourself. You had no choice, you had to! This began with defining models and relationships, adding logic on top of it to extract the correct data to display, and implementing actions that should be triggered upon user interaction. Typically mutating server state of some sort. And then, finally, you purpose-built your frontend accordingly, for those exact circumstances.&lt;/p&gt;

&lt;p&gt;All in all, oftentimes a very interlocked process between all parties involved. Be it between software specification and backend development, design creation &amp;amp; specification and frontend development or frontend and backend development.&lt;br&gt;
Changes of every kind typically being costly as a consequence, leading to everyone trying to over-spec even more... a vicious cycle of ultimately missed expectations&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/VEWH9um7blskkWaxNM/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Classic architectures" title="Classic architectures" src="https://i.giphy.com/media/VEWH9um7blskkWaxNM/giphy.gif"&gt;&lt;/a&gt;&lt;br&gt;via Columbia on &lt;a href="https://giphy.com/gifs/columbiagsapp-roarlions2020-gsapp2020-VEWH9um7blskkWaxNM" rel="noopener noreferrer"&gt;GIPHY&lt;/a&gt;
  &lt;/p&gt;

&lt;h2&gt;
  
  
  Classic architectures
&lt;/h2&gt;

&lt;p&gt;We've moved away from this by adding frameworks and new, more flexible development approaches into the mix. Mostly adopting a Model-View-Controller (MVC) approach in the process, doing some domain driven design, and as a result agreeing to a way more manageable amount of shared best practices. This happened for almost every programming language (e.g. Symfony for PHP, Rails for Ruby, Express for Node.js, Spring for Java).&lt;/p&gt;

&lt;p&gt;In combination with adopting more agile processes to structure our development, this enabled everyone to be more resilient to often changing requirements. Because changes could be made in a more predictable fashion, and were better aligned with real needs, the resulting positive feedback loop kept converging everyone to adopting those shared best practices, fostering further exchange and standardization. Often designed into the respective frameworks from the start, as plugins, extensions or addons. Associated marketplaces further incentivizing this.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about websites?
&lt;/h2&gt;

&lt;p&gt;In parallel those conventions took hold for website development, too. Instead of general purpose frameworks (like Rails), which were still to expensive as a basis for the often repeated customer needs, content management systems (CMS solutions like WordPress, TYPO3, Drupal) took that place.&lt;/p&gt;

&lt;p&gt;Adding already established models, and thus a specific domain for content, to the open approach of working with "just" a MVC framework. This also enabled them to create much more tailored interfaces for editors working with said content, and layering additional functionality on top; as you just knew much more about what everyone was working with.&lt;/p&gt;

&lt;p&gt;But you still had to fine-tune it for every customer to create a truly fitting editor experience, and the frontend still got painstakingly re-implemented with every major overhaul. Additionally you had to fit everyone into the same monolithic system, increasing complexity and cognitive overhead for all different types of editors involved (news, career, marketing, blog, internal communication, the list goes on, all with different editorial needs).&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/f5K3wWq5Ik3VC/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Web Ecosystem" title="Web Ecosystem" src="https://i.giphy.com/media/f5K3wWq5Ik3VC/giphy.gif"&gt;&lt;/a&gt;&lt;br&gt;via &lt;a href="https://giphy.com/gifs/biology-f5K3wWq5Ik3VC" rel="noopener noreferrer"&gt;GIPHY&lt;/a&gt;
  &lt;/p&gt;

&lt;h2&gt;
  
  
  The first wave of ecosystems for the web
&lt;/h2&gt;

&lt;p&gt;Both ways of building web interfaces (website vs application, or custom vs CMS) succeeded in establishing flourishing ecosystems around their approaches, though, allowing developers to start exchanging real code instead of just ideas or framework best practices... getting more efficient in the process, while generally also creating better results. But you were still locked into that specific ecosystem, trying to build a monolithic jack-of-all-trades, even more so if your goal was to have a consistent experience over all the different brand touchpoints a user may encounter on his customer journey.&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fkickstartds.flywheelsites.com%2Fwp-content%2Fuploads%2F2022%2F03%2FMashup-your-stack.svg" class="article-body-image-wrapper"&gt;&lt;img alt="The Jamstack" title="The Jamstack" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fkickstartds.flywheelsites.com%2Fwp-content%2Fuploads%2F2022%2F03%2FMashup-your-stack.svg"&gt;&lt;/a&gt;&lt;br&gt;by &lt;a href="https://www.kickstartDS.com" rel="noopener noreferrer"&gt;kickstartDS&lt;/a&gt;
  &lt;/p&gt;

&lt;h2&gt;
  
  
  Emancipating the frontend
&lt;/h2&gt;

&lt;p&gt;For websites, lately, this mental model has been challenged again by the notion of headless content mangement systems, and more generally speaking by completely detaching the frontend from the backend in an approach now often called the Jamstack (in comparison to the LAMP stack traditionally found in a CMS).&lt;/p&gt;

&lt;p&gt;This decoupling enables establishing a shared contract between both sides, an API. Making teams working on them more independent of each other, while also increasing stability because everyone can test against it in isolation.&lt;/p&gt;

&lt;p&gt;With generators (Gatsby, Next.js, 11ty) being a central part of the Jamstack approach, one additional super power that's unlocked by them is the possibility to use multiple sources to feed into one resulting interface or website. Ultimately mix-and-matching backend and API solutions into one consistent experience, with everyone using the tool most suited for his daily job. The marketing team may work with WordPress to create long form content and something like Storyblok to build engaging landing pages. The main website could be built with Sanity, or other structured content-oriented solutions, as the headless CMS to really leverage connected, long-lasting content where it matters. Even other data can be spliced into the mix by adding third-party APIs as needed.&lt;/p&gt;

&lt;p&gt;Frontend frameworks like React embrace that way of working by optimizing for composability, while tech like GraphQL helps with enabling that same composability for APIs. In combination with a lot of SaaS offerings being API based, or at least supplying really rich, well documented APIs as par of their open source strategy, this unlocked a huge potential in the space for re-use, specialization and standardization. And I'm sure we've just started experiencing the paradigm shift associated with that!&lt;/p&gt;

&lt;h2&gt;
  
  
  But... where's my frontend ecosystem? 😓
&lt;/h2&gt;

&lt;p&gt;Unfortunately though, we still often build frontends completely isolated from each other. Creating and reinventing one-off work that suffers as a consequence, because you just can't invest the time that's needed to make something really good (in regards to performance, accessibility, responsiveness, cross browser-compatibility) in the time allotted for such frontend work. All while additionally trying to stay on top of the current trends, and changes inside our own ecosystems because of the rapidly changing landscape.&lt;/p&gt;

&lt;p&gt;Way too often still you're confronted with some form of digital design (be it Sketch, Figma or Adobe XD) on the one hand, and data structures that are the result of decisions that were made in your absence, when choosing and building the generator and APIs on the other hand. It's your job then to create a component from that, hopefully creating something re-usable, which is expected to be universally understood by everyone to be the same thing. And did you know that the same component is supposed to work on the blog, too? But it should look and behave slightly different? A thankless job at best.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Man stands face to face with the irrational. He feels within him his longing for happiness and for reason. The absurd is born of this confrontation between the human need and the unreasonable silence of the world.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Albert Camus, &lt;a href="https://www.goodreads.com/work/quotes/855563" rel="noopener noreferrer"&gt;The Myth of Sisyphus and Other Essays&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This all, unfortunately, still makes frontend development a pain. While valuable engineering time goes into chasing problems that have been solved a thousand times before. Often even by oneself, just two projects before the current one...&lt;/p&gt;

&lt;h2&gt;
  
  
  Why just creating a Design System is not the answer, either
&lt;/h2&gt;

&lt;p&gt;For product teams tasked with starting a Design System today, this also way too often feels like just another added thing on top, that's expected to be delivered, en passant. Neglecting that for that to work the focus would have to shift dramatically, adjusting the way frontends are architected, and enabling frontend developers to realise the potential demanded from them. And also fulfill those Design System promises like "automatic" consistency, more efficient development cycles or magically aligned stakeholders.&lt;/p&gt;

&lt;p&gt;There needs to be a better way to foster the same exchange, longevity and interchangeability between frontend developers and the results of their work! Unlocking the frontend potential, like it has already been unlocked for other parts of the products and pages we're building! In a world of Design Systems this also means letting the frontend somewhat dictate the rules of engaging with components more, in some places inverting the way we work today.&lt;/p&gt;

&lt;p&gt;And the attentive reader could have already spotted: we haven't even really spoken about content strategy, connected content and the influence content creators and editors should have in those architectural decisions. Which for most just reflects the way digital interfaces are built today... with the people working with the resulting software unfortunately being an afterthought. And the results suffering in the process. Only in uniting all those stakeholders in the decision making process will the end result, a tangible page or application that is generating true value for both the user and the creator, be successful.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://i.giphy.com/media/3ofT5StecseQPdN20g/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Gilmore Girls: So what now?" title="Gilmore Girls: So what now?" src="https://i.giphy.com/media/3ofT5StecseQPdN20g/giphy.gif"&gt;&lt;/a&gt;&lt;br&gt;via Gilmore Girls on &lt;a href="https://giphy.com/gifs/gilmoregirls-netflix-gilmore-girls-3ofT5StecseQPdN20g" rel="noopener noreferrer"&gt;GIPHY&lt;/a&gt;
  &lt;/p&gt;

&lt;h2&gt;
  
  
  So what now?
&lt;/h2&gt;

&lt;p&gt;What was behind every major evolution of the web in the past was people rallying around shared principles, doing something in a more coordinated and repeatable way. I'm pretty convinced that for the frontend this has to mean some kind of standardization. Standardizing the way components can be compared, the way they expect and consume data, and effective ways of mapping between all of those. I'll explore those thoughts in part 2, and try to showcase how we're trying to solve for this today inside &lt;strong&gt;kickstartDS&lt;/strong&gt;, for our users. And maybe, just maybe, this could someday align with a greater approach to all of this, unlocking not only the true potential of something like &lt;strong&gt;kickstartDS&lt;/strong&gt;, but the potential of the wider frontend development world.&lt;/p&gt;

&lt;p&gt;How this has impacted our work over the last 15 years? How possible solutions to this could look like? And why we think to be having some potential answers at the core of &lt;strong&gt;kickstartDS&lt;/strong&gt;, today?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read more in part 2, very soon!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Also, hit me up on Twitter at &lt;a href="https://twitter.com/tsnmp" rel="noopener noreferrer"&gt;@tsnmp&lt;/a&gt; to exchange ideas (or to tell me where I'm possibly getting it all wrong 😋). Would love to hear others takes on this!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>html</category>
      <category>css</category>
      <category>react</category>
    </item>
  </channel>
</rss>
