<?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: Oleksii</title>
    <description>The latest articles on Forem by Oleksii (@oleksii_petrychenko).</description>
    <link>https://forem.com/oleksii_petrychenko</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%2F3003193%2Fc773bfd2-070e-4132-ad6d-d4f80fe826d2.jpg</url>
      <title>Forem: Oleksii</title>
      <link>https://forem.com/oleksii_petrychenko</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/oleksii_petrychenko"/>
    <language>en</language>
    <item>
      <title>Title: My Essential VS Code Plugins for Vue 3 + Nuxt Projects</title>
      <dc:creator>Oleksii</dc:creator>
      <pubDate>Wed, 02 Apr 2025 14:43:12 +0000</pubDate>
      <link>https://forem.com/oleksii_petrychenko/title-my-essential-vs-code-plugins-for-vue-3-nuxt-projects-3hjl</link>
      <guid>https://forem.com/oleksii_petrychenko/title-my-essential-vs-code-plugins-for-vue-3-nuxt-projects-3hjl</guid>
      <description>&lt;p&gt;As a frontend developer working primarily with Vue 3, Nuxt 3, and TypeScript, having the right tools in place makes all the difference. Over the years, I've tried a lot of VS Code extensions, and here’s the set I currently use in all my Vue projects.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vue - Official (by vuejs)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is now the one and only extension you need for Vue 3 development. It replaces the deprecated Volar and TypeScript Vue Plugin. It provides:&lt;/p&gt;

&lt;p&gt;Full support for Vue 3 + TypeScript&lt;/p&gt;

&lt;p&gt;IntelliSense for Composition API&lt;/p&gt;

&lt;p&gt;Syntax highlighting and error checking&lt;/p&gt;

&lt;p&gt;IDE-level integration with your .vue files&lt;/p&gt;

&lt;p&gt;If you’re still using Volar separately — it's time to upgrade.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Tailwind CSS IntelliSense&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tailwind is my go-to for styling in Nuxt projects. This plugin:&lt;/p&gt;

&lt;p&gt;Adds class name auto-completion&lt;/p&gt;

&lt;p&gt;Provides hover previews for colors&lt;/p&gt;

&lt;p&gt;Supports linting and class sorting&lt;/p&gt;

&lt;p&gt;It speeds up the design process tremendously.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ESLint&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I use ESLint in almost every project to enforce code quality and consistency. With the VS Code plugin:&lt;/p&gt;

&lt;p&gt;Errors and warnings appear directly in the editor&lt;/p&gt;

&lt;p&gt;Autofix on save (with a small config tweak)&lt;/p&gt;

&lt;p&gt;It keeps your code clean and your brain happy.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Prettier&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While ESLint catches code issues, Prettier ensures everything is formatted beautifully. I have it configured to format files on save. Together with ESLint, it's the dream team.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;GitLens&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you're working on teams or even just managing your own commits, GitLens:&lt;/p&gt;

&lt;p&gt;Shows who changed what, when, and why&lt;/p&gt;

&lt;p&gt;Adds inline blame annotations&lt;/p&gt;

&lt;p&gt;Makes Git history browsable directly in VS Code&lt;/p&gt;

&lt;p&gt;It's incredibly useful for debugging and understanding context.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vue VSCode Snippets&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Speed matters. With snippets, I can scaffold out a component, lifecycle hook, or watcher in seconds. It’s great for productivity.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Path Intellisense&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This plugin helps me avoid the age-old issue of typing incorrect file paths. It gives me autocomplete suggestions for relative imports — super handy when working with many components.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;With this setup, my VS Code becomes a powerful ally in writing clean, scalable, and fast Vue 3 / Nuxt applications. The combination of syntax support, formatting, linting, and Git insight makes development not only smoother — but also more enjoyable.&lt;/p&gt;

&lt;p&gt;Let me know if you use something else or want to share your setup!&lt;/p&gt;

&lt;p&gt;Thanks for reading — and happy coding!&lt;/p&gt;

</description>
      <category>vue</category>
      <category>nuxt</category>
      <category>vscode</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Lessons From Two Years of Building Vue 3 + TypeScript Applications for the Adult Content Industry</title>
      <dc:creator>Oleksii</dc:creator>
      <pubDate>Tue, 01 Apr 2025 17:26:12 +0000</pubDate>
      <link>https://forem.com/oleksii_petrychenko/lessons-from-two-years-of-building-vue-3-typescript-applications-for-the-adult-content-industry-4nea</link>
      <guid>https://forem.com/oleksii_petrychenko/lessons-from-two-years-of-building-vue-3-typescript-applications-for-the-adult-content-industry-4nea</guid>
      <description>&lt;p&gt;&lt;strong&gt;How working on a high-traffic product shaped my mindset, tech choices, and development approach&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s be honest: working in Adult Content isn't the most mainstream path for a frontend developer. But when you're serving millions of users on a daily basis, performance, reliability, and scalability become non-negotiable—no matter the industry.&lt;/p&gt;

&lt;p&gt;Over the last two years, I worked as a Vue 3 + TypeScript developer building a large-scale web application in the adult entertainment industry for the U.S. market. Here's what I learned, what I wish I'd known earlier, and what I now bring into every project I touch.&lt;/p&gt;

&lt;p&gt;1.Performance is not a bonus. It's a baseline.&lt;/p&gt;

&lt;p&gt;When your traffic spikes during peak hours, the last thing you want is a bloated frontend. With Vue 3’s Composition API and TypeScript's strictness, I was able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build lean components that re-render smartly&lt;/li&gt;
&lt;li&gt;Keep state predictable using Pinia instead of Vuex&lt;/li&gt;
&lt;li&gt;Rely on static typing to prevent bugs in complex flows&lt;/li&gt;
&lt;li&gt;Performance issues in adult content apps = users bounce in seconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2.TypeScript gives you superpowers — if you embrace it fully.&lt;/p&gt;

&lt;p&gt;At first, I treated TypeScript as a "nice-to-have." Big mistake.&lt;/p&gt;

&lt;p&gt;Once I committed to strict types, everything changed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fewer runtime errors&lt;/li&gt;
&lt;li&gt;Better IDE autocomplete&lt;/li&gt;
&lt;li&gt;Easier refactors when business logic evolved
Type safety is not overhead. It’s insurance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3.SSR is worth the extra effort (yes, even for adult content)&lt;/p&gt;

&lt;p&gt;Google doesn’t care what your content is. If your site doesn’t render fast or crawl well — you lose.&lt;br&gt;
Using Nuxt 3 for SSR:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improved SEO significantly&lt;/li&gt;
&lt;li&gt;Reduced time-to-first-paint for mobile users&lt;/li&gt;
&lt;li&gt;Enabled better caching strategies
SSR is not just for blogs or SaaS. It’s for every product that needs to be found.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4.Architecture matters. It saves your sanity later.&lt;/p&gt;

&lt;p&gt;We started with a flat file structure. Big mistake. When the team scaled, everything broke.&lt;br&gt;
What worked:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modular folder structure by domain&lt;/li&gt;
&lt;li&gt;Clear separation of UI components vs. business logic&lt;/li&gt;
&lt;li&gt;Global types &amp;amp; interfaces folder
Vue 3 with Composition API lets you think in modules. Use that.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;5.You can build seriously clean code in a not-so-serious industry.&lt;/p&gt;

&lt;p&gt;Adult content aside, the standards were sky-high.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unit testing with Vitest&lt;/li&gt;
&lt;li&gt;E2E flows with Cypress&lt;/li&gt;
&lt;li&gt;Code reviews with strict rules&lt;/li&gt;
&lt;li&gt;CI/CD pipelines for every push
Clean code has no shame. And neither should the people writing it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Final Thought&lt;/p&gt;

&lt;p&gt;I don’t regret a single line of code I wrote for that project. It taught me how to work with pressure, ship to real users, handle complex logic, and keep my codebase scalable.&lt;/p&gt;

&lt;p&gt;No matter the industry — good engineering is good engineering.&lt;/p&gt;

&lt;p&gt;And Vue 3 + TypeScript? They're the best tools I've ever used to build fast, elegant, real-world applications.&lt;/p&gt;

&lt;p&gt;Thanks for reading! I'm Oleksii — a frontend developer who loves clean code, TypeScript, and building things that scale. Feel free to connect with me here or on &lt;a href="https://www.linkedin.com/in/oleksii-petrychenko-38064515b/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>vue</category>
      <category>typescript</category>
      <category>nuxt</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
