<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Uncategorized &#8212; onthecode</title>
	<atom:link href="https://onthecode.co.uk/blog/category/uncategorized/feed" rel="self" type="application/rss+xml" />
	<link>https://onthecode.co.uk/blog/category/uncategorized</link>
	<description>onthecode blog</description>
	<lastBuildDate>Tue, 25 Feb 2025 12:10:00 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.3</generator>

<image>
	<url>https://onthecode.co.uk/wp-content/uploads/2019/02/onthecode-icon-1-100x100.png</url>
	<title>Uncategorized &#8212; onthecode</title>
	<link>https://onthecode.co.uk/blog/category/uncategorized</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Automating Changelog Updates in Renovate Bot PRs</title>
		<link>https://onthecode.co.uk/blog/automating-changelog-updates-in-renovate-bot-prs</link>
					<comments>https://onthecode.co.uk/blog/automating-changelog-updates-in-renovate-bot-prs#respond</comments>
		
		<dc:creator><![CDATA[Umut Esen]]></dc:creator>
		<pubDate>Sun, 23 Feb 2025 11:54:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://onthecode.co.uk/?p=5848</guid>

					<description><![CDATA[<p>When using Renovate Bot for dependency updates in a releaseable project, you might find that adding the changelog update is not done for you. A developer needs to manually check out the renovate PR, run the changelog command e.g. yarn change, and commit the generated change files. This is tedious and slows down the update process. Renovate postUpgradeTasks Renovate provides a postUpgradeTasks feature that allows running commands after an upgrade. We can leverage this to automate changelog updates. Please note this is only available in self-hosted renovate instances. If you are using the hosted version of renovate, a custom pipeline/action can be created to automatically add the changeset commits. Configuration Add the following to your Renovate configuration file (renovate.json): Explanation Benefits ✅ No more manual changelog updates for dependency upgrades.✅ Faster PR handling and merging.✅ Consistent changelog entries. With postUpgradeTasks, Renovate can handle dependency updates more efficiently by automating changelog generation. Try adding this to your workflow and eliminate the manual effort!</p>
<p>The post <a href="https://onthecode.co.uk/blog/automating-changelog-updates-in-renovate-bot-prs">Automating Changelog Updates in Renovate Bot PRs</a> appeared first on <a href="https://onthecode.co.uk">onthecode</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>When using Renovate Bot for dependency updates in a releaseable project, you might find that adding the changelog update is not done for you. </p>



<p>A developer needs to manually check out the renovate PR, run the changelog command e.g. <code>yarn change</code>, and commit the generated change files. </p>



<p>This is tedious and slows down the update process.</p>



<h2 class="wp-block-heading">Renovate postUpgradeTasks</h2>



<p>Renovate provides a <a href="https://docs.renovatebot.com/configuration-options/#postupgradetasks" target="_blank" rel="noreferrer noopener"><code>postUpgradeTasks</code></a> feature that allows running commands after an upgrade. </p>



<p>We can leverage this to automate changelog updates.</p>



<p>Please note this is only available in self-hosted renovate instances. If you are using the hosted version of renovate, a custom pipeline/action can be created to automatically add the changeset commits.</p>



<h3 class="wp-block-heading">Configuration</h3>



<p>Add the following to your Renovate configuration file (<code>renovate.json</code>):</p>


<pre class="wp-block-code"><span><code class="hljs language-json shcb-code-table"><span class='shcb-loc'><span>  <span class="hljs-string">"postUpgradeTasks"</span>: {
</span></span><span class='shcb-loc'><span>    <span class="hljs-attr">"commands"</span>: &#91;
</span></span><mark class='shcb-loc'><span>      <span class="hljs-string">"yarn change --type patch --message \"$(git show -s --format=%s | sed 's/\"/\\\"/g')\""</span>
</span></mark><span class='shcb-loc'><span>    ],
</span></span><span class='shcb-loc'><span>    <span class="hljs-attr">"fileFilters"</span>: &#91;<span class="hljs-string">"**/package.json"</span>]
</span></span><span class='shcb-loc'><span>  },
</span></span></code></span></pre>


<h3 class="wp-block-heading">Explanation</h3>



<ul class="wp-block-list">
<li><strong><code>postUpgradeTasks.commands</code></strong>: Runs <code>yarn change</code> automatically, using the latest commit message as the changelog entry.</li>



<li><strong><code>fileFilters</code></strong>: Ensures the command runs only when <code>package.json</code> changes.</li>



<li><strong>Escaping Quotes</strong>: The <code>sed</code> command prevents issues with double quotes in commit messages.</li>
</ul>



<h2 class="wp-block-heading">Benefits</h2>



<p>✅ No more manual changelog updates for dependency upgrades.<br>✅ Faster PR handling and merging.<br>✅ Consistent changelog entries.</p>



<p>With <code>postUpgradeTasks</code>, Renovate can handle dependency updates more efficiently by automating changelog generation. Try adding this to your workflow and eliminate the manual effort!</p>
<p>The post <a href="https://onthecode.co.uk/blog/automating-changelog-updates-in-renovate-bot-prs">Automating Changelog Updates in Renovate Bot PRs</a> appeared first on <a href="https://onthecode.co.uk">onthecode</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://onthecode.co.uk/blog/automating-changelog-updates-in-renovate-bot-prs/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What is a Design System?</title>
		<link>https://onthecode.co.uk/blog/what-is-a-design-system</link>
					<comments>https://onthecode.co.uk/blog/what-is-a-design-system#respond</comments>
		
		<dc:creator><![CDATA[Umut Esen]]></dc:creator>
		<pubDate>Sat, 22 Feb 2025 18:35:55 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://onthecode.co.uk/?p=5834</guid>

					<description><![CDATA[<p>Every growing product faces the same challenge: inconsistent UI, duplicated code and design chaos. One team builds a button one way, another team builds it differently. Before you know it, your app looks like a patchwork of mismatched components. What is a Design System? A&#160;design system&#160;is a collection of reusable components, design principles, and guidelines that help teams build consistent and scalable user interfaces. It serves as a&#160;single source of truth&#160;for both designers and developers. Key Elements of a Design System Design Tokens The smallest reusable design properties, such as colors, typography, spacing, and shadows. Instead of hardcoding&#160;#FF5733&#160;as a color, you define&#160;primary-color&#160;and apply it everywhere. Component Library A set of reusable UI elements like buttons, forms and modals that adhere to design and accessibility standards. And to enforce design standards in code, we need a front-end framework (React, Angular, Vue, etc.). Documentation Usage instructions, design principles, and accessibility rules to ensure consistency. How It Works in Practice Imagine you work at a company with multiple teams working on a single product. Instead of every team creating their own version of a &#8220;Submit&#8221; button with slightly different padding, font sizes, and colors, you define a standard button component in your design system. This button is: Why Do Companies Use Design Systems? The world’s leading companies — Google, Airbnb, IBM, and Microsoft — all use design systems to scale their products. Here’s why: Scalability for Large Teams As products grow, maintaining UI consistency becomes harder. A design system provides a structured foundation that scales. Faster Development Developers don’t have to reinvent the wheel every time they build a new feature. With a component library, they can reuse existing components, reducing development time significantly. Consistent UI A design system ensures that every product maintains a cohesive look and feel. Without one, different teams may implement slightly different versions of the same components. Improved Collaboration Designers define the system. Developers implement it. Everyone works from a shared set of rules rather than treating design and development as separate silos. Accessibility and Usability Standards All users, including those with disabilities, should be able to use the product effectively. A design system integrates accessibility best practices into the components from the start. Design System Examples These are some of the great examples of solid design systems that power thousands of apps: Google created&#160;Material Design&#160;as a design system to unify the user experience across Android, web, and mobile apps. It includes everything from typography guidelines to pre-built UI components. Result?&#160;Hundreds of apps now have a consistent and user-friendly UI. How to Build a Design System Creating a design system isn’t an overnight task. Here’s a simplified roadmap to get started: Step 1: Audit Your Existing UI Step 2: Define Design Tokens Step 3: Create a Component Library Step 4: Document Everything Step 5: Adopt a Versioning Strategy Common Challenges (and How to Overcome Them) Even the best design systems face hurdles. Here’s how to tackle them: “Teams resist adoption.”&#160; 💡 Solution: Educate stakeholders on the&#160;time saved&#160;by using pre-built components. Offer workshops or demos. “Keeping the system updated is hard.”&#160; 💡 Solution: Assign a dedicated&#160;design system team&#160;responsible for maintenance and updates. “One-size-fits-all doesn’t work.”&#160; 💡 Solution: Allow for&#160;controlled flexibility. Some components may need customisation per product. Conclusion If your product is growing without a&#160;design system, you’re setting yourself up for&#160;technical debt and UI inconsistency. A well-structured design system helps teams move&#160;faster, collaborate&#160;better, and ship&#160;high-quality, scalable UI. Whether you’re a designer, developer, or product manager, investing in a design system will make your workflow smoother and more efficient.</p>
<p>The post <a href="https://onthecode.co.uk/blog/what-is-a-design-system">What is a Design System?</a> appeared first on <a href="https://onthecode.co.uk">onthecode</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Every growing product faces the same challenge: inconsistent UI, duplicated code and design chaos. One team builds a button one way, another team builds it differently. </p>



<p>Before you know it, your app looks like a patchwork of mismatched components.</p>



<h2 class="wp-block-heading"><strong>What is a Design System?</strong></h2>



<p>A&nbsp;<strong>design system</strong>&nbsp;is a collection of reusable components, design principles, and guidelines that help teams build consistent and scalable user interfaces. </p>



<p>It serves as a&nbsp;single source of truth&nbsp;for both designers and developers.</p>



<h2 class="wp-block-heading"><strong>Key Elements of a Design System</strong></h2>



<h3 class="wp-block-heading"><strong>Design Tokens</strong></h3>



<p>The smallest reusable design properties, such as colors, typography, spacing, and shadows. Instead of hardcoding&nbsp;<code>#FF5733</code>&nbsp;as a color, you define&nbsp;<code>primary-color</code>&nbsp;and apply it everywhere.</p>



<h3 class="wp-block-heading"><strong>Component Library</strong></h3>



<p>A set of reusable UI elements like buttons, forms and modals that adhere to design and accessibility standards.</p>



<p>And to enforce design standards in code, we need a front-end framework (React, Angular, Vue, etc.).</p>



<h3 class="wp-block-heading"><strong>Documentation</strong></h3>



<p>Usage instructions, design principles, and accessibility rules to ensure consistency.</p>



<h2 class="wp-block-heading"><strong>How It Works in Practice</strong></h2>



<p>Imagine you work at a company with multiple teams working on a single product.</p>



<p>Instead of every team creating their own version of a &#8220;Submit&#8221; button with slightly different padding, font sizes, and colors, you define a standard button component in your design system.</p>



<p>This button is: </p>



<ul class="wp-block-list">
<li>Styled according to brand guidelines.</li>



<li>Accessible by default (keyboard navigation, proper contrast, etc.). </li>



<li>Easily updated — fix it once, and every instance updates automatically.</li>
</ul>



<h2 class="wp-block-heading"><strong>Why Do Companies Use Design Systems?</strong></h2>



<p>The world’s leading companies — Google, Airbnb, IBM, and Microsoft — all use design systems to scale their products. </p>



<p>Here’s why:</p>



<h3 class="wp-block-heading"><strong>Scalability for Large Teams</strong></h3>



<p>As products grow, maintaining UI consistency becomes harder.</p>



<p>A design system provides a structured foundation that scales.</p>



<h3 class="wp-block-heading"><strong>Faster Development</strong></h3>



<p>Developers don’t have to reinvent the wheel every time they build a new feature. </p>



<p>With a component library, they can reuse existing components, reducing development time significantly.</p>



<h3 class="wp-block-heading"><strong>Consistent UI</strong></h3>



<p>A design system ensures that every product maintains a cohesive look and feel.</p>



<p>Without one, different teams may implement slightly different versions of the same components.</p>



<h3 class="wp-block-heading"><strong>Improved Collaboration</strong></h3>



<p>Designers define the system. </p>



<p>Developers implement it. </p>



<p>Everyone works from a shared set of rules rather than treating design and development as separate silos.</p>



<h3 class="wp-block-heading"><strong>Accessibility and Usability Standards</strong></h3>



<p>All users, including those with disabilities, should be able to use the product effectively.</p>



<p>A design system integrates accessibility best practices into the components from the start.</p>



<h2 class="wp-block-heading">Design System Examples</h2>



<p>These are some of the great examples of solid design systems that power thousands of apps:</p>



<ul class="wp-block-list">
<li>Google’s <a href="https://m3.material.io" target="_blank" rel="noreferrer noopener">Material Design</a></li>



<li>IBM’s <a href="https://carbondesignsystem.com" target="_blank" rel="noreferrer noopener">Carbon</a></li>



<li>Microsoft’s <a href="https://fluent2.microsoft.design" target="_blank" rel="noreferrer noopener">Fluent</a></li>



<li>Atlassian <a href="https://atlassian.design" target="_blank" rel="noreferrer noopener">Design</a></li>
</ul>



<p>Google created&nbsp;Material Design&nbsp;as a design system to unify the user experience across Android, web, and mobile apps. </p>



<p>It includes everything from typography guidelines to pre-built UI components.</p>



<p>Result?&nbsp;Hundreds of apps now have a consistent and user-friendly UI.</p>



<h2 class="wp-block-heading"><strong>How to Build a Design System</strong></h2>



<p>Creating a design system isn’t an overnight task. Here’s a simplified roadmap to get started:</p>



<h3 class="wp-block-heading"><strong>Step 1: Audit Your Existing UI</strong></h3>



<ul class="wp-block-list">
<li>Identify inconsistencies in design and code.</li>



<li>Take inventory of UI components used across your product.</li>
</ul>



<h3 class="wp-block-heading"><strong>Step 2: Define Design Tokens</strong></h3>



<ul class="wp-block-list">
<li>Establish a set of&nbsp;global styles&nbsp;for colors, typography, spacing, and shadows.</li>



<li>Use a tool like&nbsp;<a href="https://amzn.github.io/style-dictionary/#/" target="_blank" rel="noreferrer noopener">Style Dictionary</a>&nbsp;or&nbsp;<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_cascading_variables/Using_CSS_custom_properties" target="_blank" rel="noreferrer noopener">CSS variables</a>&nbsp;to manage tokens.</li>
</ul>



<h3 class="wp-block-heading"><strong>Step 3: Create a Component Library</strong></h3>



<ul class="wp-block-list">
<li>Build and document reusable UI components using&nbsp;<a href="https://storybook.js.org">Storybook</a>.</li>



<li>Ensure each component meets accessibility standards (ARIA roles, keyboard navigation, etc.).</li>
</ul>



<h3 class="wp-block-heading"><strong>Step 4: Document Everything</strong></h3>



<ul class="wp-block-list">
<li>Write clear usage guidelines for each component.</li>



<li>Explain when and how components should be used.</li>



<li>Provide code snippets and design mocks.</li>
</ul>



<h3 class="wp-block-heading"><strong>Step 5: Adopt a Versioning Strategy</strong></h3>



<ul class="wp-block-list">
<li>Use&nbsp;Semantic Versioning (SemVer)&nbsp;to track updates.</li>



<li>Assign&nbsp;ownership — who maintains the design system?</li>



<li>Schedule&nbsp;regular audits&nbsp;to ensure it stays relevant.</li>
</ul>



<h2 class="wp-block-heading"><strong>Common Challenges (and How to Overcome Them)</strong></h2>



<p>Even the best design systems face hurdles. Here’s how to tackle them:</p>



<p><strong>“Teams resist adoption.”</strong>&nbsp;</p>



<p>💡 Solution: Educate stakeholders on the&nbsp;time saved&nbsp;by using pre-built components. Offer workshops or demos.</p>



<p><strong>“Keeping the system updated is hard.”</strong>&nbsp;</p>



<p>💡 Solution: Assign a dedicated&nbsp;design system team&nbsp;responsible for maintenance and updates.</p>



<p><strong>“One-size-fits-all doesn’t work.”</strong>&nbsp;</p>



<p>💡 Solution: Allow for&nbsp;controlled flexibility. Some components may need customisation per product.</p>



<h2 class="wp-block-heading"><strong>Conclusion</strong></h2>



<p>If your product is growing without a&nbsp;design system, you’re setting yourself up for&nbsp;technical debt and UI inconsistency.</p>



<p>A well-structured design system helps teams move&nbsp;faster, collaborate&nbsp;better, and ship&nbsp;high-quality, scalable UI. </p>



<p>Whether you’re a designer, developer, or product manager, investing in a design system will make your workflow smoother and more efficient.</p>
<p>The post <a href="https://onthecode.co.uk/blog/what-is-a-design-system">What is a Design System?</a> appeared first on <a href="https://onthecode.co.uk">onthecode</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://onthecode.co.uk/blog/what-is-a-design-system/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Does Angular require defaultProject property?</title>
		<link>https://onthecode.co.uk/blog/does-angular-require-defaultproject-property</link>
					<comments>https://onthecode.co.uk/blog/does-angular-require-defaultproject-property#respond</comments>
		
		<dc:creator><![CDATA[Umut Esen]]></dc:creator>
		<pubDate>Fri, 25 Aug 2023 10:21:42 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://onthecode.co.uk/?p=5777</guid>

					<description><![CDATA[<p>Migrating your Angular project to version 14 will automatically remove the defaultProject property in angular.json for single project workspaces. Let&#8217;s understand what defaultProject is and when you might need it. What is default project in Angular? In Angular, a &#8220;default project&#8221; refers to the primary application or module within an Angular workspace. An Angular workspace is essentially a project container that can hold multiple projects, each of which can be an Angular application, library, or other related modules. When you create a new Angular workspace using the Angular CLI, it automatically generates a default project for you. This default project is often named &#8220;app&#8221; by default. It serves as the main entry point for your application and includes the initial components, modules, services, and other files necessary to get your Angular application up and running. You can also specify a different name for the default project during the creation of the workspace using the --defaultProject flag: In this case, the default project is going to be &#8220;my-default-app&#8221; instead of the usual &#8220;app.&#8221; Why do we need to specify defaultProject in Angular? You can have multiple projects within a single Angular workspace e.g., an admin panel and a user-facing frontend. Each project can have its own configuration, dependencies, and codebase.But they can also share common resources and libraries within the workspace. Angular CLI assumes you may create multiple projects in your workspace. And tries to help you by specifying the default project for you. Does angular require defaultProject in angular json file? Angular itself does not require a defaultProject in the angular.json file. The defaultProject property is completely optional. It specifies which project to build &#38; serve when a project name is not provided in the command line. However, there is an exception. If you have multiple projects in your workspace and you&#8217;re running a command that requires a project name (like ng serve or ng build) without specifying a project, then defaultProject is needed to tell Angular which project to apply the command to. If you only have one project in your workspace, or you always specify your project when running commands, then you don&#8217;t need&#160;defaultProject. In conclusion, Angular 14 (or any version) does not require defaultProject, but it can be helpful in multi-project workspaces.</p>
<p>The post <a href="https://onthecode.co.uk/blog/does-angular-require-defaultproject-property">Does Angular require defaultProject property?</a> appeared first on <a href="https://onthecode.co.uk">onthecode</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Migrating your <a href="http://angular.io">Angular</a> project to version 14 will automatically remove the <strong>defaultProject</strong> property in <code>angular.json</code> for single project workspaces. </p>



<p>Let&#8217;s understand what defaultProject is and when you might need it. </p>



<h2 class="wp-block-heading">What is default project in Angular?</h2>



<p>In <a href="/blog/category/angular">Angular</a>, a &#8220;default project&#8221; refers to the primary application or module within an Angular workspace. </p>



<p>An Angular workspace is essentially a project container that can hold multiple projects, each of which can be an Angular application, library, or other related modules.</p>



<p>When you create a new Angular workspace using the Angular CLI, it automatically generates a default project for you. </p>


<pre class="wp-block-code"><span><code class="hljs language-bash">ng new my-angular-app</code></span></pre>


<p>This default project is often named &#8220;app&#8221; by default. </p>



<p>It serves as the main entry point for your application and includes the initial components, modules, services, and other files necessary to get your Angular application up and running.</p>



<p>You can also specify a different name for the default project during the creation of the workspace using the <code>--defaultProject</code> flag:</p>


<pre class="wp-block-code"><span><code class="hljs language-bash">ng new my-angular-app --defaultProject=my-default-app</code></span></pre>


<p>In this case, the default project is going to be &#8220;my-default-app&#8221; instead of the usual &#8220;app.&#8221;</p>



<h2 class="wp-block-heading">Why do we need to specify defaultProject in Angular?</h2>



<p>You can have multiple projects within a single Angular workspace e.g., an admin panel and a user-facing frontend.</p>



<p>Each project can have its own configuration, dependencies, and codebase.But they can also share common resources and libraries within the workspace.</p>



<p>Angular CLI assumes you may create multiple projects in your workspace. And tries to help you by specifying the default project for you.</p>



<h2 class="wp-block-heading">Does angular require defaultProject in angular json file?</h2>



<p>Angular itself does not require a <code>defaultProject</code> in the <code>angular.json</code> file.</p>



<p>The <code>defaultProject</code> property is completely optional. It specifies which project to build &amp; serve when a project name is not provided in the command line.</p>



<p>However, there is an exception. </p>



<p>If you have multiple projects in your workspace and you&#8217;re running a command that requires a project name (like <code>ng serve</code> or <code>ng build</code>) without specifying a project, then <code>defaultProject</code> is needed to tell Angular which project to apply the command to.</p>



<p>If you only have one project in your workspace, or you always specify your project when running commands, then you don&#8217;t need&nbsp;<code>defaultProject</code>.</p>



<p>In conclusion, Angular 14 (or any version) does not require <code>defaultProject</code>, but it can be helpful in multi-project workspaces.</p>



<p></p>



<p></p>
<p>The post <a href="https://onthecode.co.uk/blog/does-angular-require-defaultproject-property">Does Angular require defaultProject property?</a> appeared first on <a href="https://onthecode.co.uk">onthecode</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://onthecode.co.uk/blog/does-angular-require-defaultproject-property/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
