<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Frontend, architecture and tools | aganov.dev</title>
    <link>https://aganov.dev/en/docs</link>
    <description>Articles about web development, project architecture and creating your own tools.</description>
    <language>en</language>
    <lastBuildDate>Sun, 24 May 2026 19:23:23 GMT</lastBuildDate>
    <atom:link href="https://aganov.dev/en/feed.xml" rel="self" type="application/rss+xml" />
    <image>
      <url>https://aganov.dev/_og/d/c_HomePage,title_~RnJvbnRlbmQsIGFyY2hpdGVjdHVyZSBhbmQgdG9vbHMgfCBhZ2Fub3YuZGV2,description_~QXJ0aWNsZXMgYWJvdXQgd2ViIGRldmVsb3BtZW50LCBwcm9qZWN0IGFyY2hpdGVjdHVyZSBhbmQgY3JlYXRpbmcgeW91ciBvd24gdG9vbHMu.png</url>
      <title>Frontend, architecture and tools | aganov.dev</title>
      <link>https://aganov.dev/en/docs</link>
      <width>144</width>
      <height>75</height>
    </image>
    <item>
      <title>Project architecture</title>
      <link>https://aganov.dev/en/docs/guides/articles/architecture</link>
      <guid isPermaLink="true">https://aganov.dev/en/docs/guides/articles/architecture</guid>
      <pubDate>Sun, 10 May 2026 20:57:00 GMT</pubDate>
      <description><![CDATA[How I organize folder structure, components, stores, routing, validation — and why.]]></description>
      <media:content url="https://aganov.dev/_og/d/c_DocsPage,title_Project+architecture,description_~SG93IEkgb3JnYeKApg,section_Guides,collection_Articles,p_Ii9lbi9kb2NzL2d1aWRlcy9hcnRpY2xlcy9hcmNoaXRlY3R1cmUi,s_31rVUyacKCEd_RBO.png" medium="image" type="image/png" />
      <category>Guides</category>
      <category>Articles</category>
      <category>Frontend</category>
      <category>Vue 3</category>
      <category>Architecture</category>
      <dc:creator>David Aganov</dc:creator>
      <content:encoded><![CDATA[<p><img src="https://aganov.dev/_og/d/c_DocsPage,title_Project+architecture,description_~SG93IEkgb3JnYeKApg,section_Guides,collection_Articles,p_Ii9lbi9kb2NzL2d1aWRlcy9hcnRpY2xlcy9hcmNoaXRlY3R1cmUi,s_31rVUyacKCEd_RBO.png" alt="Project architecture" /></p><p>How I organize folder structure, components, stores, routing, validation — and why.</p><p><a href="https://aganov.dev/en/docs/guides/articles/architecture">Project architecture</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Stack</title>
      <link>https://aganov.dev/en/docs/about/projects/stack</link>
      <guid isPermaLink="true">https://aganov.dev/en/docs/about/projects/stack</guid>
      <pubDate>Sat, 09 May 2026 16:25:00 GMT</pubDate>
      <description><![CDATA[CLI to generate projects from my templates — pick what you need, get a clean result without cruft.]]></description>
      <media:content url="https://aganov.dev/_og/d/c_DocsPage,title_Stack,description_~Q0xJIHRvIGdlbmVyYXRlIHByb2plY3RzIGZyb20gbXnigKY,section_About,collection_Projects,p_Ii9lbi9kb2NzL2Fib3V0L3Byb2plY3RzL3N0YWNrIg,s_qKM-NiSOY51OZfRf.png" medium="image" type="image/png" />
      <category>About</category>
      <category>Projects</category>
      <category>CLI</category>
      <category>Tools</category>
      <category>Frontend</category>
      <category>DX</category>
      <dc:creator>David Aganov</dc:creator>
      <content:encoded><![CDATA[<p><img src="https://aganov.dev/_og/d/c_DocsPage,title_Stack,description_~Q0xJIHRvIGdlbmVyYXRlIHByb2plY3RzIGZyb20gbXnigKY,section_About,collection_Projects,p_Ii9lbi9kb2NzL2Fib3V0L3Byb2plY3RzL3N0YWNrIg,s_qKM-NiSOY51OZfRf.png" alt="Stack" /></p><p>CLI to generate projects from my templates — pick what you need, get a clean result without cruft.</p><p><a href="https://aganov.dev/en/docs/about/projects/stack">Stack</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Vue Lynx Template</title>
      <link>https://aganov.dev/en/docs/guides/templates/vue-lynx-template</link>
      <guid isPermaLink="true">https://aganov.dev/en/docs/guides/templates/vue-lynx-template</guid>
      <pubDate>Sat, 09 May 2026 09:30:00 GMT</pubDate>
      <description><![CDATA[Template for mobile apps with Vue 3 + Lynx. Familiar Vue 3 on the inside, a native Android app on the outside.]]></description>
      <media:content url="https://aganov.dev/_og/d/c_DocsPage,title_Vue+Lynx+Template,section_Guides,collection_Templates,p_Ii9lbi9kb2NzL2d1aWRlcy90ZW1wbGF0ZXMvdnVlLWx5bngtdGVtcGxhdGUi,s_oV_s6B9xem3n2yqn.png" medium="image" type="image/png" />
      <category>Guides</category>
      <category>Templates</category>
      <category>Vue</category>
      <category>Mobile</category>
      <category>Lynx</category>
      <category>Frontend</category>
      <category>Tools</category>
      <dc:creator>David Aganov</dc:creator>
      <content:encoded><![CDATA[<p><img src="https://aganov.dev/_og/d/c_DocsPage,title_Vue+Lynx+Template,section_Guides,collection_Templates,p_Ii9lbi9kb2NzL2d1aWRlcy90ZW1wbGF0ZXMvdnVlLWx5bngtdGVtcGxhdGUi,s_oV_s6B9xem3n2yqn.png" alt="Vue Lynx Template" /></p><p>Template for mobile apps with Vue 3 + Lynx. Familiar Vue 3 on the inside, a native Android app on the outside.</p><p><a href="https://aganov.dev/en/docs/guides/templates/vue-lynx-template">Vue Lynx Template</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Vue Modern Template</title>
      <link>https://aganov.dev/en/docs/guides/templates/vue-modern-template</link>
      <guid isPermaLink="true">https://aganov.dev/en/docs/guides/templates/vue-modern-template</guid>
      <pubDate>Sat, 09 May 2026 11:04:00 GMT</pubDate>
      <description><![CDATA[A lean Vue 3 app template. TypeScript, Tailwind, and a stable architecture.]]></description>
      <media:content url="https://aganov.dev/_og/d/c_DocsPage,title_Vue+Modern+Template,section_Guides,collection_Templates,p_Ii9lbi9kb2NzL2d1aWRlcy90ZW1wbGF0ZXMvdnVlLW1vZGVybi10ZW1wbGF0ZSI,s_JFyc1KYaSiymNgHX.png" medium="image" type="image/png" />
      <category>Guides</category>
      <category>Templates</category>
      <category>Vue</category>
      <category>Frontend</category>
      <dc:creator>David Aganov</dc:creator>
      <content:encoded><![CDATA[<p><img src="https://aganov.dev/_og/d/c_DocsPage,title_Vue+Modern+Template,section_Guides,collection_Templates,p_Ii9lbi9kb2NzL2d1aWRlcy90ZW1wbGF0ZXMvdnVlLW1vZGVybi10ZW1wbGF0ZSI,s_JFyc1KYaSiymNgHX.png" alt="Vue Modern Template" /></p><p>A lean Vue 3 app template. TypeScript, Tailwind, and a stable architecture.</p><p><a href="https://aganov.dev/en/docs/guides/templates/vue-modern-template">Vue Modern Template</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Vue PWA Template</title>
      <link>https://aganov.dev/en/docs/guides/templates/vue-pwa-template</link>
      <guid isPermaLink="true">https://aganov.dev/en/docs/guides/templates/vue-pwa-template</guid>
      <pubDate>Sat, 09 May 2026 08:51:00 GMT</pubDate>
      <description><![CDATA[Progressive Web App template with Vue 3 + Vite. Offline mode out of the box, Tailwind, TypeScript — and little cruft in the base build.]]></description>
      <media:content url="https://aganov.dev/_og/d/c_DocsPage,title_Vue+PWA+Template,section_Guides,collection_Templates,p_Ii9lbi9kb2NzL2d1aWRlcy90ZW1wbGF0ZXMvdnVlLXB3YS10ZW1wbGF0ZSI,s_ZfvbT3MWw0y3Y0Wd.png" medium="image" type="image/png" />
      <category>Guides</category>
      <category>Templates</category>
      <category>Vue</category>
      <category>PWA</category>
      <category>Frontend</category>
      <category>Tools</category>
      <dc:creator>David Aganov</dc:creator>
      <content:encoded><![CDATA[<p><img src="https://aganov.dev/_og/d/c_DocsPage,title_Vue+PWA+Template,section_Guides,collection_Templates,p_Ii9lbi9kb2NzL2d1aWRlcy90ZW1wbGF0ZXMvdnVlLXB3YS10ZW1wbGF0ZSI,s_ZfvbT3MWw0y3Y0Wd.png" alt="Vue PWA Template" /></p><p>Progressive Web App template with Vue 3 + Vite. Offline mode out of the box, Tailwind, TypeScript — and little cruft in the base build.</p><p><a href="https://aganov.dev/en/docs/guides/templates/vue-pwa-template">Vue PWA Template</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Astro Clean Template</title>
      <link>https://aganov.dev/en/docs/guides/templates/astro-clean-template</link>
      <guid isPermaLink="true">https://aganov.dev/en/docs/guides/templates/astro-clean-template</guid>
      <pubDate>Tue, 24 Mar 2026 00:05:00 GMT</pubDate>
      <description><![CDATA[Template for static sites with Astro. Compiles components into predictable HTML/CSS/JS files — no extra dependencies, no client bundler magic.]]></description>
      <media:content url="https://aganov.dev/_og/d/c_DocsPage,title_Astro+Clean+Template,section_Guides,collection_Templates,p_Ii9lbi9kb2NzL2d1aWRlcy90ZW1wbGF0ZXMvYXN0cm8tY2xlYW4tdGVtcGxhdGUi,s_QzQ7v9bl2c5064KE.png" medium="image" type="image/png" />
      <category>Guides</category>
      <category>Templates</category>
      <category>Astro</category>
      <category>Frontend</category>
      <category>Tools</category>
      <dc:creator>David Aganov</dc:creator>
      <content:encoded><![CDATA[<p><img src="https://aganov.dev/_og/d/c_DocsPage,title_Astro+Clean+Template,section_Guides,collection_Templates,p_Ii9lbi9kb2NzL2d1aWRlcy90ZW1wbGF0ZXMvYXN0cm8tY2xlYW4tdGVtcGxhdGUi,s_QzQ7v9bl2c5064KE.png" alt="Astro Clean Template" /></p><p>Template for static sites with Astro. Compiles components into predictable HTML/CSS/JS files — no extra dependencies, no client bundler magic.</p><p><a href="https://aganov.dev/en/docs/guides/templates/astro-clean-template">Astro Clean Template</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Clean API Client</title>
      <link>https://aganov.dev/en/docs/guides/articles/services</link>
      <guid isPermaLink="true">https://aganov.dev/en/docs/guides/articles/services</guid>
      <pubDate>Fri, 20 Feb 2026 18:01:00 GMT</pubDate>
      <description><![CDATA[Request-layer architecture that eliminates code duplication in components.]]></description>
      <media:content url="https://aganov.dev/_og/d/c_DocsPage,title_Clean+API+Client,description_~UmVxdWVzdC1sYXllciBhcmPigKY,section_Guides,collection_Articles,p_Ii9lbi9kb2NzL2d1aWRlcy9hcnRpY2xlcy9zZXJ2aWNlcyI,s_ReHw-4vrlVy4begD.png" medium="image" type="image/png" />
      <category>Guides</category>
      <category>Articles</category>
      <category>Frontend</category>
      <category>Architecture</category>
      <category>API</category>
      <dc:creator>David Aganov</dc:creator>
      <content:encoded><![CDATA[<p><img src="https://aganov.dev/_og/d/c_DocsPage,title_Clean+API+Client,description_~UmVxdWVzdC1sYXllciBhcmPigKY,section_Guides,collection_Articles,p_Ii9lbi9kb2NzL2d1aWRlcy9hcnRpY2xlcy9zZXJ2aWNlcyI,s_ReHw-4vrlVy4begD.png" alt="Clean API Client" /></p><p>Request-layer architecture that eliminates code duplication in components.</p><p><a href="https://aganov.dev/en/docs/guides/articles/services">Clean API Client</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Mindful Vibe Coding</title>
      <link>https://aganov.dev/en/docs/guides/articles/vibecoding</link>
      <guid isPermaLink="true">https://aganov.dev/en/docs/guides/articles/vibecoding</guid>
      <pubDate>Fri, 02 Jan 2026 21:37:00 GMT</pubDate>
      <description><![CDATA[An article about how I use AI in my work and why I don't consider it a replacement for developers.]]></description>
      <media:content url="https://aganov.dev/_og/d/c_DocsPage,title_Mindful+Vibe+Coding,description_~QW4gYXJ0aWNsZSBhYm91dOKApg,section_Guides,collection_Articles,p_Ii9lbi9kb2NzL2d1aWRlcy9hcnRpY2xlcy92aWJlY29kaW5nIg,s_axoKos_XAwAwa8Pm.png" medium="image" type="image/png" />
      <category>Guides</category>
      <category>Articles</category>
      <category>Artificial Intelligence</category>
      <category>Development</category>
      <dc:creator>David Aganov</dc:creator>
      <content:encoded><![CDATA[<p><img src="https://aganov.dev/_og/d/c_DocsPage,title_Mindful+Vibe+Coding,description_~QW4gYXJ0aWNsZSBhYm91dOKApg,section_Guides,collection_Articles,p_Ii9lbi9kb2NzL2d1aWRlcy9hcnRpY2xlcy92aWJlY29kaW5nIg,s_axoKos_XAwAwa8Pm.png" alt="Mindful Vibe Coding" /></p><p>An article about how I use AI in my work and why I don't consider it a replacement for developers.</p><p><a href="https://aganov.dev/en/docs/guides/articles/vibecoding">Mindful Vibe Coding</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Polyglot Keeper</title>
      <link>https://aganov.dev/en/docs/about/projects/polyglot-keeper</link>
      <guid isPermaLink="true">https://aganov.dev/en/docs/about/projects/polyglot-keeper</guid>
      <pubDate>Mon, 15 Dec 2025 10:02:00 GMT</pubDate>
      <description><![CDATA[AI-powered i18n synchronization tool that automatically translates missing keys and maintains perfect translation structure — in JSON and Markdown files.]]></description>
      <media:content url="https://aganov.dev/_og/d/c_DocsPage,title_Polyglot+Keeper,description_~QUktcG93ZXLigKY,section_About,collection_Projects,p_Ii9lbi9kb2NzL2Fib3V0L3Byb2plY3RzL3BvbHlnbG90LWtlZXBlciI,s_aAdl3AVsimqRSjBo.png" medium="image" type="image/png" />
      <category>About</category>
      <category>Projects</category>
      <category>CLI</category>
      <category>i18n</category>
      <category>AI</category>
      <category>Node.js</category>
      <dc:creator>David Aganov</dc:creator>
      <content:encoded><![CDATA[<p><img src="https://aganov.dev/_og/d/c_DocsPage,title_Polyglot+Keeper,description_~QUktcG93ZXLigKY,section_About,collection_Projects,p_Ii9lbi9kb2NzL2Fib3V0L3Byb2plY3RzL3BvbHlnbG90LWtlZXBlciI,s_aAdl3AVsimqRSjBo.png" alt="Polyglot Keeper" /></p><p>AI-powered i18n synchronization tool that automatically translates missing keys and maintains perfect translation structure — in JSON and Markdown files.</p><p><a href="https://aganov.dev/en/docs/about/projects/polyglot-keeper">Polyglot Keeper</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Working with Layers in Nuxt 3</title>
      <link>https://aganov.dev/en/docs/guides/articles/nuxt-layers</link>
      <guid isPermaLink="true">https://aganov.dev/en/docs/guides/articles/nuxt-layers</guid>
      <pubDate>Thu, 24 Jul 2025 19:15:00 GMT</pubDate>
      <description><![CDATA[Using Layers in Nuxt 3 for project structuring and site separation]]></description>
      <media:content url="https://aganov.dev/_og/d/c_DocsPage,title_Working+with+Layers+in+Nuxt+3,description_~VeKApg,section_Guides,collection_Articles,p_Ii9lbi9kb2NzL2d1aWRlcy9hcnRpY2xlcy9udXh0LWxheWVycyI,s_jozZFcriwdCcJZ_H.png" medium="image" type="image/png" />
      <category>Guides</category>
      <category>Articles</category>
      <category>Nuxt</category>
      <category>Frontend</category>
      <dc:creator>David Aganov</dc:creator>
      <content:encoded><![CDATA[<p><img src="https://aganov.dev/_og/d/c_DocsPage,title_Working+with+Layers+in+Nuxt+3,description_~VeKApg,section_Guides,collection_Articles,p_Ii9lbi9kb2NzL2d1aWRlcy9hcnRpY2xlcy9udXh0LWxheWVycyI,s_jozZFcriwdCcJZ_H.png" alt="Working with Layers in Nuxt 3" /></p><p>Using Layers in Nuxt 3 for project structuring and site separation</p><p><a href="https://aganov.dev/en/docs/guides/articles/nuxt-layers">Working with Layers in Nuxt 3</a></p>]]></content:encoded>
    </item>
  </channel>
</rss>