<?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: Mangesh Yadav</title>
    <description>The latest articles on DEV Community by Mangesh Yadav (@mangesh_yadav_e20ebad2c7f).</description>
    <link>https://dev.to/mangesh_yadav_e20ebad2c7f</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3923924%2Fadb308ed-2dd6-4ddf-8bae-1558dba87f46.jpg</url>
      <title>DEV Community: Mangesh Yadav</title>
      <link>https://dev.to/mangesh_yadav_e20ebad2c7f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mangesh_yadav_e20ebad2c7f"/>
    <language>en</language>
    <item>
      <title>What wpTruss Installs on Every Site and Why</title>
      <dc:creator>Mangesh Yadav</dc:creator>
      <pubDate>Tue, 09 Jun 2026 21:23:49 +0000</pubDate>
      <link>https://dev.to/mangesh_yadav_e20ebad2c7f/what-wptruss-installs-on-every-site-and-why-17kj</link>
      <guid>https://dev.to/mangesh_yadav_e20ebad2c7f/what-wptruss-installs-on-every-site-and-why-17kj</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%2Fo6o7wgses2tcp0bg2c6m.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%2Fo6o7wgses2tcp0bg2c6m.png" alt=" " width="800" height="859"&gt;&lt;/a&gt;For a long time, building a website with WordPress meant making a lot of small choices that were hard to change later. If you wanted to change a color or a font size, you often had to look through thousands of lines of code. This is because most WordPress themes keep their design rules inside their own files. When you change your theme, you lose your design rules. When you hire a new developer, they might write code that does not match what the first developer did. This creates what many experts call architectural debt. It is like building a house where the paint is mixed into the concrete. You cannot change the color without breaking the wall.&lt;/p&gt;

&lt;p&gt;The wpTruss system changes this by moving the design rules out of the theme and into a central brain. This brain is a plugin. The most important part of this brain is a list of 141 design tokens. These tokens are like a master set of rules for how your website should look. In this article, we will look at what these 141 tokens are and why they are the key to a better way of building websites.&lt;/p&gt;

&lt;p&gt;What is a Design Token&lt;br&gt;
Before we look at the specific list, we need to understand what a design token is. In simple terms, a design token is a name for a design choice. For example, instead of saying a button is blue, we give it a name like primary color. In the code, this looks like a CSS custom property. It might look like var(–wpt-color-primary).&lt;/p&gt;

&lt;p&gt;The reason we do this is for consistency. If every part of your website uses the name primary color, you only have to change the definition of that name in one place to update the whole site. If you decide that blue should now be purple, you change it once in the admin panel. Every block, every heading, and every button updates immediately. You do not have to hunt for hex codes or write new CSS. This is why wpTruss installs 141 of these tokens on every site.&lt;/p&gt;

&lt;p&gt;The Problem with the Snowflake Site&lt;br&gt;
Most agency owners know the pain of the snowflake site. This is a site where every page was built as a unique item. There are no shared rules. One page uses a 20 pixel margin while another uses 15 pixels. One developer used a specific shade of gray for text, but another developer used a slightly different one. Over time, the site starts to look messy.&lt;/p&gt;

&lt;p&gt;When you have 141 tokens installed by default, you stop building snowflakes. You start building a system. These tokens cover every visual detail that matters. By having a fixed list of 141 tokens, wpTruss ensures that every developer on your team is using the same vocabulary. They are not guessing which font size to use. They are choosing from the tokens that are already there.&lt;/p&gt;

&lt;p&gt;The Breakdown of the 141 Tokens&lt;br&gt;
The 141 tokens are not random. They are organized into groups that cover the entire visual language of a brand. Let us look at these groups in detail.&lt;/p&gt;

&lt;p&gt;The Color System&lt;br&gt;
Color is usually the first thing people think about in design, but wpTruss goes much deeper than just picking a brand color. The color system includes several sub-groups.&lt;/p&gt;

&lt;p&gt;First, there are the Canvas tokens. These control the background of the page itself. There is a default background and an alternate background. This is useful for making sidebars or sections that stand out from the main page.&lt;/p&gt;

&lt;p&gt;Next are the Brand colors. These are the primary, secondary, and accent colors. But we also include tokens for dark, light, surface, muted, and border colors. Surface colors are very important. They are the background colors for cards, panels, and sections. By having a specific surface token, you can change the look of every card on your site by changing one setting.&lt;/p&gt;

&lt;p&gt;We also include Status colors. These are colors for success, danger, warning, and info. If a user fills out a form correctly, the success color shows up. If there is an error, the danger color shows up. By making these tokens, we ensure that every error message on the site looks the same.&lt;/p&gt;

&lt;p&gt;Finally, there are Accessibility and Text colors. This includes specific tokens for text on primary backgrounds versus text on dark backgrounds. It even includes the color of the focus ring that shows up when a user clicks through the site using a keyboard. This makes sure your site is easy to use for everyone.&lt;/p&gt;

&lt;p&gt;The Typography System&lt;br&gt;
Typography is more than just picking a font. The 141 tokens include rules for three different font families: headings, body text, and monospace text for code.&lt;/p&gt;

&lt;p&gt;But the tokens also control sizes. There are 11 different font size tokens. They range from very small text for captions to large display text for hero headlines. We use names like xs, sm, base, lg, and up to 6xl. This means you do not have to remember if a heading is 32 pixels or 36 pixels. You just use the 4xl token.&lt;/p&gt;

&lt;p&gt;We also have tokens for font weights, like light, regular, medium, and bold. There are tokens for line height, which is the space between lines of text. We even have tokens for letter spacing, which is the space between letters. All of these details are locked into the token system.&lt;/p&gt;

&lt;p&gt;The Spacing System&lt;br&gt;
One of the biggest reasons websites look messy is inconsistent spacing. If the gap between a title and a paragraph is different on every page, the site feels unprofessional. wpTruss installs 8 specific spacing tokens. They go from xs to 4xl.&lt;/p&gt;

&lt;p&gt;These tokens are used for padding, which is space inside an element, and margins, which are spaces between elements. Because these are tokens, the spatial rhythm of the site is built-in. If you want more space across the whole site, you can adjust the spacing tokens in the admin panel, and the whole site will breathe better instantly.&lt;/p&gt;

&lt;p&gt;Layout and Navigation&lt;br&gt;
The list includes tokens for layout, such as the width of the main content area. There are tokens for narrow, default, and wide containers. This ensures that your content never gets too wide to read easily.&lt;/p&gt;

&lt;p&gt;There are also 10 tokens dedicated just to navigation. These control the header height, the header background, and the footer colors. They also control how links look when you hover over them in the menu. Usually, these settings are hidden deep in theme options. In wpTruss, they are standard tokens that any block can see and use.&lt;/p&gt;

&lt;p&gt;Borders, Radius, and Shadows&lt;br&gt;
To make a site feel modern, you need control over corners and depth. The system includes 6 tokens for border radius. This controls how rounded the corners of your buttons and cards are. You can go from no radius (sharp corners) to full radius (pill shapes).&lt;/p&gt;

&lt;p&gt;There are also tokens for shadows and elevation. Shadows give the user a sense of what is important. An elevated element looks like it is floating above the page. By using these tokens, you make sure that every card on your site has the same level of depth.&lt;/p&gt;

&lt;p&gt;Advanced Tokens: Opacity and Interaction&lt;br&gt;
The 141 tokens also cover things that most people forget. There are 6 opacity tokens for making things semi-transparent. There are also 7 interaction state tokens. These control how an element looks when a user hovers over it or clicks it. This includes things like the background color change on hover and the shadow change when an element is focused.&lt;/p&gt;

&lt;p&gt;Z-Index and Layers&lt;br&gt;
If you have ever had a menu hide behind an image, you know the frustration of z-index issues. wpTruss includes 7 z-index tokens. These define the stacking order of the site. There are levels for the base page, sticky headers, dropdown menus, modals, and tooltips. By using these tokens, you never have to guess a number like 9999 to make something show up on top. You just use the modal token.&lt;/p&gt;

&lt;p&gt;Why wpTruss Installs These 141 Tokens&lt;br&gt;
You might ask if 141 tokens is too many. Why not just have 10 or 20? The answer is about coverage and governance.&lt;/p&gt;

&lt;p&gt;Complete Coverage&lt;br&gt;
If you only have a few tokens, developers will eventually need to hardcode a value. If there is no token for a small border or a specific shadow, they will write a hex code or a pixel value into the CSS. Once that happens, your design system is broken. By providing 141 tokens, wpTruss covers almost every visual situation a developer will run into. This prevents them from needing to make up their own rules.&lt;/p&gt;

&lt;p&gt;De-coupling from the Theme&lt;br&gt;
The most powerful reason for these tokens is that they do not belong to the theme. In the old way of working, if you wanted to change your theme, you had to re-do all your design settings. With wpTruss, the 141 tokens live in the plugin. The theme is just a container that displays the content.&lt;/p&gt;

&lt;p&gt;This means you can switch from one theme to another and your brand stays exactly the same. Your primary color, your typography, and your spacing do not move. This makes your website future-proof. You are no longer trapped by a theme developer’s choices. You own your design system.&lt;/p&gt;

&lt;p&gt;Block Governance and Quality Control&lt;br&gt;
wpTruss includes a block validator. This is a system that checks every custom block before it is allowed on the site. One of the most important rules is that a block cannot use hardcoded colors or spacing. It must use the tokens.&lt;/p&gt;

&lt;p&gt;If a developer tries to upload a block that uses a specific hex code like #1a1a1a, the validator will stop them. It will tell them they must use a token like var(–wpt-color-dark) instead. This is called governance. it ensures that the site stays clean and professional no matter who is working on it. It stops technical debt before it starts.&lt;/p&gt;

&lt;p&gt;Performance and Scaling&lt;br&gt;
Using 141 tokens is also very good for performance. All these tokens are injected into the page as CSS custom properties. This means the browser only has to load the definitions once. Because the CSS files for the blocks only reference the tokens, those CSS files stay very small. They do not change when the design changes. This leads to better browser caching and faster page speeds.&lt;/p&gt;

&lt;p&gt;The Business Value for Agencies&lt;br&gt;
For a WordPress agency, time is money. Fighting with CSS is a waste of time. When you use a site with 141 design tokens, you are protecting your profit margins.&lt;/p&gt;

&lt;p&gt;Imagine a client asks for a rebrand. They want to change the brand colors and make all the buttons more rounded. On a normal site, this might take a developer a full day or more to find every instance and update it. With wpTruss, it takes about five minutes. You change a few settings in the admin panel and the work is done.&lt;/p&gt;

&lt;p&gt;This also makes it easier to manage many sites. If every site your agency builds uses the same 141 tokens, your developers can move between projects easily. They do not have to learn a new system for every client. The vocabulary is always the same.&lt;/p&gt;

&lt;p&gt;The Role of AI in the Token System&lt;br&gt;
We are moving into a world where AI agents will help build websites. AI works best when there are clear rules and structured data. Because wpTruss uses a fixed list of 141 tokens, it is very easy for an AI to understand how to build a block for your site.&lt;/p&gt;

&lt;p&gt;wpTruss has a special feature called a capabilities manifest. This is a document that tells an AI exactly which tokens and rules are available. An AI agent can read this list and then write code that follows your design system perfectly. This is something that is not possible with traditional themes. By installing these 141 tokens, you are making your site ready for the future of AI development.&lt;/p&gt;

&lt;p&gt;The 141 design tokens in wpTruss are more than just a list of settings. They represent a new philosophy for WordPress development. They move the design logic away from the theme and into a central, governed system.&lt;/p&gt;

&lt;p&gt;By covering everything from basic colors to advanced interaction states, these tokens ensure that your site stays consistent and professional. They eliminate the need for hardcoded CSS and stop the growth of technical debt. Most importantly, they give you the freedom to change your site’s look or even its theme without starting from scratch.&lt;/p&gt;

&lt;p&gt;Whether you are an agency owner looking to save time, or a developer looking to build better systems, the 141 tokens are the foundation you need. They provide the structure that allows creativity to flourish without creating a mess. One admin panel, zero CSS fights, and a design system that survives forever. That is the power of the 141 design tokens.&lt;/p&gt;

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

</description>
    </item>
    <item>
      <title>WordPress Themes Are Architectural Debt</title>
      <dc:creator>Mangesh Yadav</dc:creator>
      <pubDate>Mon, 11 May 2026 13:40:00 +0000</pubDate>
      <link>https://dev.to/mangesh_yadav_e20ebad2c7f/wordpress-themes-are-architectural-debt-1bpc</link>
      <guid>https://dev.to/mangesh_yadav_e20ebad2c7f/wordpress-themes-are-architectural-debt-1bpc</guid>
      <description>&lt;p&gt;I have been building websites since the early 2000s.&lt;/p&gt;

&lt;p&gt;Over the years I have worked through table layouts, inline styles, early CSS frameworks, jQuery-heavy themes, page builders, shortcode ecosystems… all the way to Gutenberg.&lt;/p&gt;

&lt;p&gt;And honestly, Gutenberg felt like a clean slate for WordPress.&lt;/p&gt;

&lt;p&gt;For the first time, WordPress did not feel like a collection of templates stitched together with plugins. Blocks made sense. Reusable components made sense. Structured editing made sense.&lt;/p&gt;

&lt;p&gt;It finally felt like WordPress could evolve into a proper publishing system.&lt;/p&gt;

&lt;p&gt;But while building real projects with Gutenberg, I kept running into the same issue again and again.&lt;/p&gt;

&lt;p&gt;The blocks were modern.&lt;/p&gt;

&lt;p&gt;But the architecture around them was still fighting the past.&lt;/p&gt;

&lt;p&gt;Themes were still controlling too much:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;layouts&lt;/li&gt;
&lt;li&gt;spacing&lt;/li&gt;
&lt;li&gt;typography&lt;/li&gt;
&lt;li&gt;rendering behavior&lt;/li&gt;
&lt;li&gt;CSS overrides&lt;/li&gt;
&lt;li&gt;responsive logic&lt;/li&gt;
&lt;li&gt;plugin styling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The deeper I built with Gutenberg, the more I realized something important:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The problem was not Gutenberg.&lt;/p&gt;

&lt;p&gt;The problem was that WordPress still had no governing contract between themes, blocks, plugins, and layouts.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every plugin shipped its own styles. Every theme shipped its own assumptions. Every builder tried to control rendering differently.&lt;/p&gt;

&lt;p&gt;And slowly every project started drifting into chaos.&lt;/p&gt;

&lt;p&gt;I started calling this &lt;strong&gt;design entropy&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Design entropy is what happens when every part of the system starts making its own design decisions without governance.&lt;/p&gt;

&lt;p&gt;At first the website looks clean.&lt;/p&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;another plugin gets added&lt;/li&gt;
&lt;li&gt;another developer touches the project&lt;/li&gt;
&lt;li&gt;custom CSS starts piling up&lt;/li&gt;
&lt;li&gt;different block libraries get mixed in&lt;/li&gt;
&lt;li&gt;WooCommerce gets customized&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And eventually consistency disappears.&lt;/p&gt;

&lt;p&gt;Buttons stop matching. Typography drifts. Spacing becomes random. Performance becomes unpredictable.&lt;/p&gt;

&lt;p&gt;The more I worked on projects, the more I kept thinking about this system.&lt;/p&gt;

&lt;p&gt;Not for weeks.&lt;/p&gt;

&lt;p&gt;For years.&lt;/p&gt;

&lt;p&gt;That thought eventually became wpTruss.&lt;/p&gt;

&lt;h2&gt;
  
  
  We Did Not Start With a Big Vision
&lt;/h2&gt;

&lt;p&gt;Initially we simply started building Gutenberg blocks.&lt;/p&gt;

&lt;p&gt;Then we realized every block repeated the same design logic again and again:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;colors&lt;/li&gt;
&lt;li&gt;spacing&lt;/li&gt;
&lt;li&gt;typography&lt;/li&gt;
&lt;li&gt;shadows&lt;/li&gt;
&lt;li&gt;sizing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything was scattered.&lt;/p&gt;

&lt;p&gt;So we moved towards design tokens.&lt;/p&gt;

&lt;p&gt;Initially it was just a JSON-based token system. Later it evolved into a full token registry where blocks consumed centralized design values instead of making their own styling decisions.&lt;/p&gt;

&lt;p&gt;That changed everything.&lt;/p&gt;

&lt;p&gt;Consistency improved immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then Came The Bigger Realization
&lt;/h2&gt;

&lt;p&gt;Almost everything on a website could be treated as blocks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;headers&lt;/li&gt;
&lt;li&gt;footers&lt;/li&gt;
&lt;li&gt;layouts&lt;/li&gt;
&lt;li&gt;reusable structures&lt;/li&gt;
&lt;li&gt;entire page sections&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So instead of themes controlling everything permanently, we started building a structure system around blocks themselves.&lt;/p&gt;

&lt;p&gt;And honestly, that was the turning point.&lt;/p&gt;

&lt;p&gt;Because once structure itself became governed through blocks, themes stopped being the center of the architecture.&lt;/p&gt;

&lt;p&gt;They became containers.&lt;/p&gt;

&lt;p&gt;Disposable containers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Themes Became The Wrong Abstraction Layer
&lt;/h2&gt;

&lt;p&gt;I don’t think themes are “bad”.&lt;/p&gt;

&lt;p&gt;But modern WordPress systems ask themes to handle responsibilities they were never designed to own.&lt;/p&gt;

&lt;p&gt;Today themes are expected to manage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;design systems&lt;/li&gt;
&lt;li&gt;layouts&lt;/li&gt;
&lt;li&gt;performance&lt;/li&gt;
&lt;li&gt;responsiveness&lt;/li&gt;
&lt;li&gt;structure&lt;/li&gt;
&lt;li&gt;plugin compatibility&lt;/li&gt;
&lt;li&gt;rendering consistency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is too much responsibility for one layer.&lt;/p&gt;

&lt;p&gt;And most performance problems today are actually architecture problems disguised as optimization problems.&lt;/p&gt;

&lt;p&gt;Most developers optimize pages.&lt;/p&gt;

&lt;p&gt;But the real issue is usually architectural fragmentation underneath the page itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  What wpTruss Is Trying To Solve
&lt;/h2&gt;

&lt;p&gt;That is what wpTruss is trying to solve.&lt;/p&gt;

&lt;p&gt;Not by replacing WordPress.&lt;/p&gt;

&lt;p&gt;Not by replacing Gutenberg.&lt;/p&gt;

&lt;p&gt;But by introducing governance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;design tokens&lt;/li&gt;
&lt;li&gt;governed blocks&lt;/li&gt;
&lt;li&gt;shared structure systems&lt;/li&gt;
&lt;li&gt;reusable layouts&lt;/li&gt;
&lt;li&gt;centralized rendering logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The future of WordPress, at least to me, feels less like uncontrolled customization and more like governed composition.&lt;/p&gt;

&lt;p&gt;Gutenberg opened that door.&lt;/p&gt;

&lt;p&gt;wpTruss is simply an attempt to continue walking in that direction.&lt;/p&gt;

&lt;p&gt;Have you experienced similar issues while building large WordPress projects with themes and plugins?&lt;/p&gt;

&lt;p&gt;Do you think themes still make sense as the center of WordPress architecture?&lt;/p&gt;

&lt;p&gt;How are you currently handling design consistency and structural governance across Gutenberg projects?&lt;/p&gt;

&lt;p&gt;Would love to hear how other developers are approaching this.&lt;/p&gt;

&lt;p&gt;View complete article here: &lt;a href="https://wptruss.com/blog/wordpress-themes-are-architectural-debt/" rel="noopener noreferrer"&gt;WordPress Themes Are Architectural Debt&lt;/a&gt;&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%2Fa8ttlcs0cy48nuvlav7m.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%2Fa8ttlcs0cy48nuvlav7m.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>gutenbergblocks</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
