<?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>Forem: thevangelist</title>
    <description>The latest articles on Forem by thevangelist (@thevangelist).</description>
    <link>https://forem.com/thevangelist</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%2F3660627%2Ff1dad3a7-97b9-4015-8b6a-8bbcd1e11fbd.png</url>
      <title>Forem: thevangelist</title>
      <link>https://forem.com/thevangelist</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/thevangelist"/>
    <language>en</language>
    <item>
      <title>I Built Dembrandt: Extract Any Website's Design System in Seconds (Open Source)</title>
      <dc:creator>thevangelist</dc:creator>
      <pubDate>Mon, 29 Dec 2025 13:21:32 +0000</pubDate>
      <link>https://forem.com/thevangelist/i-built-dembrandt-extract-any-websites-design-system-in-seconds-open-source-2n6d</link>
      <guid>https://forem.com/thevangelist/i-built-dembrandt-extract-any-websites-design-system-in-seconds-open-source-2n6d</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.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%2Fx4wl6jrvntizaagrigxk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fx4wl6jrvntizaagrigxk.png" alt="Dembrandt design token extraction tool for CLI" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Sometimes you don't have a customer brand guide.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Or there are no digital design guidelines at all. But you still need to make a frontend with customer brand...&lt;/p&gt;

&lt;p&gt;Over my 15 year design career, &lt;strong&gt;I've spent countless hours manually inspecting websites with DevTools&lt;/strong&gt; and benchmarking customer web tools: 1-3 hours per brand plus the additional sites to benchmark.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The Problem:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I would look at the :root CSS variables for colors, inspect H1-H6 for  texts, look at box shadows and border radiuses. I guess every developer has their own preferred way of doing this. Finally, I decided to tackle this not-so-glorious workflow that many designers and developers follow.&lt;/p&gt;

&lt;p&gt;Designers have been and will still struggle to dissect brands from websites, and it's not just about extracting colors: that's the easy part. The real challenge is understanding what truly matters in a design system. Developers also feel the pain when designs lack proper color values and so on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The Solution:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.dembrandt.com/" rel="noopener noreferrer"&gt;Dembrandt&lt;/a&gt; is my Open Source attempt to help to perfect the designer-dev-business workflow. Dembrandt dissectss the brand from any website with one command and outputs the design system in terminal.&lt;/p&gt;

&lt;p&gt;Install &lt;code&gt;npm i -g dembrandt&lt;/code&gt; and then&lt;/p&gt;

&lt;p&gt;Run &lt;code&gt;dembrandt bmw.de&lt;/code&gt; to extract design system (colors, typography, spacing, borders, logo,..) into design tokens in few seconds. It is perfect for competitor analysis, audits or documentation, saving hours of DevTools digging.&lt;/p&gt;

&lt;p&gt;Under the hood: &lt;strong&gt;Dembrandt uses Playwright to render a live site&lt;/strong&gt;, bypasses bot detection, analyzes computed DOM styles and CSS variables, and distills real usage patterns into confidence-scored design tokens.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Who is it for:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Designers auditing existing apps for consistent design systems&lt;/li&gt;
&lt;li&gt;Developers needing quick token references when designs lack proper specs&lt;/li&gt;
&lt;li&gt;Competitor research and benchmarking&lt;/li&gt;
&lt;li&gt;Identifying differences in pages / apps&lt;/li&gt;
&lt;li&gt;Imitating a brand (be ethical)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Important flags:&lt;br&gt;
&lt;code&gt;--dtcg&lt;/code&gt; - export tokens in the W3C Design Tokens standard (easy to plug into other tools)&lt;br&gt;
&lt;code&gt;--save-output&lt;/code&gt; - persist results as JSON for audits and documentation&lt;br&gt;
&lt;code&gt;--browser=firefox&lt;/code&gt; - better success on Cloudflare / bot-protected sites&lt;br&gt;
&lt;code&gt;--dark-mode&lt;/code&gt; - extract dark mode color tokens&lt;br&gt;
&lt;code&gt;--slow&lt;/code&gt; - reliable extraction for JavaScript-heavy SPAs&lt;/p&gt;

&lt;p&gt;Dembrandt won't replace a proper brand guide or digital design guidelines - but it removes the manual work when one doesn't exist. If you've ever reverse-engineered a brand from a live website, Dembrandt was built for you.&lt;/p&gt;

&lt;p&gt;If you are interested in contributing to dembrandt, participate in &lt;a href="https://github.com/dembrandt/dembrandt/discussions" rel="noopener noreferrer"&gt;GitHub discussions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x.com/dembrandtcom" rel="noopener noreferrer"&gt;https://x.com/dembrandtcom&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Peace out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fra2lqlql79h6t9jdbfok.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fra2lqlql79h6t9jdbfok.png" alt="Man inspecting bmw.de via DevTools - a time consuming effort without dembrandt" width="778" height="575"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>designsystem</category>
      <category>frontend</category>
      <category>design</category>
    </item>
  </channel>
</rss>
