<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Workspaces on AI VOID</title><link>https://ai-blog.noorshomelab.dev/tags/workspaces/</link><description>Recent content in Workspaces on AI VOID</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 19 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ai-blog.noorshomelab.dev/tags/workspaces/index.xml" rel="self" type="application/rss+xml"/><item><title>Organizing Your Codebase: Workspaces and Repository Structure</title><link>https://ai-blog.noorshomelab.dev/jujutsu-vcs-guide-2026/workspaces-repository-structure/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/jujutsu-vcs-guide-2026/workspaces-repository-structure/</guid><description>&lt;p&gt;Welcome back, intrepid developer! So far, you&amp;rsquo;ve mastered the basics of Jujutsu&amp;rsquo;s unique approach to version control, from its mutable history to the powerful operation log. You&amp;rsquo;ve seen how &lt;code&gt;jj&lt;/code&gt; empowers you to shape your history with confidence. But what happens when your project grows, or when you need to juggle multiple development lines simultaneously without creating a mess of separate Git clones?&lt;/p&gt;
&lt;p&gt;This chapter introduces you to &lt;code&gt;jj&lt;/code&gt;&amp;rsquo;s elegant solution: &lt;strong&gt;workspaces&lt;/strong&gt;. We&amp;rsquo;ll dive into how &lt;code&gt;jj&lt;/code&gt; structures repositories and how workspaces allow you to manage multiple working directories, each potentially focused on a different task, all backed by a single, shared repository. This isn&amp;rsquo;t just about saving disk space; it&amp;rsquo;s about streamlining your workflow, improving context switching, and enabling more flexible development patterns.&lt;/p&gt;</description></item><item><title>Monorepo Mastery: npm Workspaces &amp;amp; npx Unlocked</title><link>https://ai-blog.noorshomelab.dev/cut-the-chase/monorepo-mastery/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/cut-the-chase/monorepo-mastery/</guid><description>&lt;h1 id="monorepo-mastery-npm-workspaces--npx-unlocked"&gt;Monorepo Mastery: npm Workspaces &amp;amp; npx Unlocked&lt;/h1&gt;
&lt;p&gt;Native monorepo management with npm workspaces and on-demand package execution with npx. Node.js v22.x, npm v10.x (as of 2026-02-10).&lt;/p&gt;
&lt;h2 id="core-setup-npm-workspaces"&gt;Core Setup: npm Workspaces&lt;/h2&gt;
&lt;p&gt;Initialize a monorepo and define workspace roots in the root &lt;code&gt;package.json&lt;/code&gt; to enable npm&amp;rsquo;s native monorepo capabilities.&lt;/p&gt;
&lt;div class="highlight"&gt;
&lt;pre class="language-json line-numbers" data-start="1" tabindex="0"&gt;&lt;code class="language-json" data-lang="json"&gt;// root/package.json
{
&amp;#34;name&amp;#34;: &amp;#34;my-monorepo&amp;#34;,
&amp;#34;version&amp;#34;: &amp;#34;1.0.0&amp;#34;,
&amp;#34;private&amp;#34;: true, // Prevents accidental publishing of the root package
&amp;#34;workspaces&amp;#34;: [ // Defines directories containing workspace packages
&amp;#34;packages/*&amp;#34;, // Example: packages/ui-lib, packages/utils
&amp;#34;apps/*&amp;#34; // Example: apps/web, apps/admin
],
&amp;#34;scripts&amp;#34;: {
&amp;#34;build&amp;#34;: &amp;#34;npm run build --workspaces&amp;#34;, // Runs &amp;#39;build&amp;#39; script in all workspaces
&amp;#34;test&amp;#34;: &amp;#34;npm test --workspaces&amp;#34; // Runs &amp;#39;test&amp;#39; script in all workspaces
},
&amp;#34;devDependencies&amp;#34;: {
&amp;#34;typescript&amp;#34;: &amp;#34;^5.3.3&amp;#34; // Common dev dependencies are often hoisted to the root
}
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;Each workspace package also has its own &lt;code&gt;package.json&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>