<?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: Navaneeth V</title>
    <description>The latest articles on Forem by Navaneeth V (@navaneethvijay).</description>
    <link>https://forem.com/navaneethvijay</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%2F114034%2Ffa91e91a-663f-44cf-b233-238758b0236e.jpg</url>
      <title>Forem: Navaneeth V</title>
      <link>https://forem.com/navaneethvijay</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/navaneethvijay"/>
    <language>en</language>
    <item>
      <title>I Built a Productivity-First Inbox – Here's Why (and How)</title>
      <dc:creator>Navaneeth V</dc:creator>
      <pubDate>Mon, 14 Apr 2025 13:08:23 +0000</pubDate>
      <link>https://forem.com/navaneethvijay/i-built-a-productivity-first-inbox-heres-why-and-how-32gg</link>
      <guid>https://forem.com/navaneethvijay/i-built-a-productivity-first-inbox-heres-why-and-how-32gg</guid>
      <description>&lt;p&gt;Ever feel like you're drowning in emails? Yeah, me too.&lt;/p&gt;

&lt;p&gt;Seriously, it's a universal thing, right? That moment when your inbox becomes this chaotic mix of client chats and to-dos, and suddenly that important follow-up you swore you'd get to vanishes into the digital ether.&lt;/p&gt;

&lt;p&gt;Been there. So, I decided to try and fix it.&lt;/p&gt;

&lt;p&gt;The "Aha!" Moment: One Place for Everything&lt;/p&gt;

&lt;p&gt;It all clicked when I saw our project manager spending way too much time just organizing emails for clients. Think Gmail labels, setting up endless filters, and then manually copying tasks into some other tool.&lt;/p&gt;

&lt;p&gt;And it made me wonder:&lt;/p&gt;

&lt;p&gt;Why are we jumping between a bunch of different apps just to keep track of what needs doing from an email? It felt… inefficient.&lt;/p&gt;

&lt;p&gt;The Final Straw: When "Later" Never Happened&lt;/p&gt;

&lt;p&gt;For me, the frustration peaked when I completely missed a couple of crucial action items buried in a long, urgent email thread. I did that quick reply, thinking, "Yep, got it, I'll come back to that."&lt;/p&gt;

&lt;p&gt;Spoiler alert: "later" never came. Those emails just got swallowed by the inbox monster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter Flowmail: My Attempt at Sanity
&lt;/h2&gt;

&lt;p&gt;About six months ago, I started tinkering and building Flowmail. The very first version was super basic – just a way to see Gmail threads on a Kanban board.&lt;/p&gt;

&lt;p&gt;Since then, it's grown into a proper inbox built with getting things done in mind. No more juggling labels, filters, or separate task apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Under the Hood: The Tech Stuff
&lt;/h2&gt;

&lt;p&gt;Flowmail's built with some cool tech:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt;: For making the website and app feel smooth and fast.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase&lt;/strong&gt;: Handles all the secure logins and keeps the data safe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HonoJS&lt;/strong&gt;: Powers the backend (the behind-the-scenes stuff), and it encrypts your data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shadcn&lt;/strong&gt;: Makes the app look clean and easy to use with its UI components.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional AI&lt;/strong&gt; (Bring Your Own Key): If you want, you can plug in your own AI key for things like summarizing emails and picking out action items.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;And yeah, everything is encrypted – both in the database and when it's traveling across the internet. Privacy is a big deal, especially when you're dealing with important conversations.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes Flowmail a Little Different
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Smart Follow-Up Reminders: Never let those important things slip through the cracks again.&lt;/li&gt;
&lt;li&gt;AI Help with Summaries &amp;amp; Tasks (Your Choice, Your Keys): Optional AI features that you control.&lt;/li&gt;
&lt;li&gt;Everything in One Spot: Say goodbye to switching between Gmail and your project tools.&lt;/li&gt;
&lt;li&gt;Built with Security First: Your data stays safe and sound.&lt;/li&gt;
&lt;li&gt;Whether you're managing client work, job applications, or just trying to keep your life organized, Flowmail is designed to help you stay on top of things without duct-taping a bunch of different tools together.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Still a Work in Progress (Beta)&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%2Ffmbr01b01nmy7zn7qdwc.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%2Ffmbr01b01nmy7zn7qdwc.png" alt="flowmail-dashboard-preview" width="800" height="454"&gt;&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%2Ftha063504rmoel6o350d.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%2Ftha063504rmoel6o350d.png" alt="flowmail-dashboard-project" width="800" height="600"&gt;&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%2Fjjsvsdph163ej0ab519w.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%2Fjjsvsdph163ej0ab519w.png" alt="flowmail-dashboard-kanban" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Flowmail is currently invite-only while I keep tweaking the user experience and making the AI features even better. But if you're curious, you can check it out here 👉 &lt;a href="https://flowmail.in?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=flowmail_announcement" rel="noopener noreferrer"&gt;https://flowmail.in&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's Connect!&lt;/p&gt;

&lt;p&gt;If you've ever tried building an email tool yourself, know the pain of inbox overload, or just enjoy watching developers build in public, I'd love to chat! I'm sharing the journey on &lt;a href="https://twitter.com/navaneeth_V29" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/sai-navaneeth-v/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; too.&lt;/p&gt;

&lt;p&gt;Thanks for reading! 🙌&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>buildinpublic</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to create Magento 2 git patch and apply.</title>
      <dc:creator>Navaneeth V</dc:creator>
      <pubDate>Mon, 21 Dec 2020 08:30:16 +0000</pubDate>
      <link>https://forem.com/navaneethvijay/how-to-create-magento-2-git-patch-and-apply-l99</link>
      <guid>https://forem.com/navaneethvijay/how-to-create-magento-2-git-patch-and-apply-l99</guid>
      <description>&lt;p&gt;There are times where it is not possible to override an core function or a possible github fix for an issue in Magento, and you are not updating the current version to get the fix.&lt;br&gt;
Times like these where git patches comes to the rescue.&lt;/p&gt;

&lt;p&gt;The basic syntax for apply git patches&lt;br&gt;
&lt;code&gt;git apply &amp;lt;location-of-your-patch-file&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Suppose we are ought to modify the file &lt;br&gt;
&lt;code&gt;vendor/magento/module-customer/Block/CustomerData.php&lt;/code&gt; and create a custom patch.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a copy of that file in the same location
&lt;code&gt;vendor/magento/module-customer/Block/CustomerDataModified.php&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Modify the changes in the new file and save it.&lt;/li&gt;
&lt;li&gt;At this point, the vendor folders are ignored and you want to force git to find difference between two files, so we run the command
&lt;code&gt;diff -u CustomerData.php CustomerDataModified.php &amp;gt; diff.patch&lt;/code&gt;
This will generate a file 'diff.patch' in your root directory.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>magento</category>
      <category>git</category>
    </item>
    <item>
      <title>How to revert a pull request and apply the changes manually ?</title>
      <dc:creator>Navaneeth V</dc:creator>
      <pubDate>Wed, 16 Sep 2020 13:28:51 +0000</pubDate>
      <link>https://forem.com/navaneethvijay/how-to-revert-a-pull-request-and-apply-the-changes-manually-4b42</link>
      <guid>https://forem.com/navaneethvijay/how-to-revert-a-pull-request-and-apply-the-changes-manually-4b42</guid>
      <description>&lt;p&gt;It is a very common practice to following the git branching in your project to maintain a stable code base in production by having a development , staging and master branches.&lt;/p&gt;

&lt;p&gt;First thing first, always commit your code everytime you make a significant changes in the respective branch. At some point your commit history would look like this. Let us call this branch as &lt;em&gt;feature/cancel-order-buton.&lt;/em&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%2Fi%2F50h6nvl4xcty2sqqdq8n.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%2Fi%2F50h6nvl4xcty2sqqdq8n.png" alt="Alt Text" width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next thing you do is create a pull request to your development branch, that is it, you are done with your task. Then your usual development process continues and 5 other team members creates PR to development branch as well, at this point we have 6 PRs created including your PR.&lt;/p&gt;

&lt;p&gt;Now, you need to remove complete code changes that you did in the development for some reason. If you are using a tool like eg. Bitbucket, you will be able to unmerge your PR easily. Once this is done, a new branch will be created with all the changes removed and then you can merge it back to development branch.&lt;/p&gt;

&lt;p&gt;The next thing to do is cherry-pick the changes from the remaining 5 PRs and merge it to development branch&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git cherry-pick &amp;lt;commit-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Once all the changes from other branches are cherry picked and applied, you have successfully reverted your PR code from your development branch and you can continue the deployment process.&lt;/p&gt;

</description>
      <category>git</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to create themes in Magento 2. The right way.</title>
      <dc:creator>Navaneeth V</dc:creator>
      <pubDate>Sat, 20 Jun 2020 01:49:29 +0000</pubDate>
      <link>https://forem.com/navaneethvijay/how-to-develop-themes-in-magento-2-the-right-way-375</link>
      <guid>https://forem.com/navaneethvijay/how-to-develop-themes-in-magento-2-the-right-way-375</guid>
      <description>&lt;p&gt;Magento is an e-commerce framework built using php, based on symphony framework. With the support for Magento 1.x coming to and end by June 30, 2020.&lt;/p&gt;

&lt;p&gt;A theme is a component of Magento application which provides a consistent look and feel for entire application area.&lt;/p&gt;

&lt;p&gt;Often you find yourself working with templates, layouts and stylesheets. Magento come with two default themes called blank and luma.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Luma theme&lt;/strong&gt;&lt;br&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%2Fi%2Fmomyl2pv9bd9nuomxe0d.jpg" 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%2Fi%2Fmomyl2pv9bd9nuomxe0d.jpg" alt="luma" width="800" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blank theme&lt;/strong&gt;&lt;br&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%2Fi%2Fo33bfawncus6zr3bizje.jpg" 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%2Fi%2Fo33bfawncus6zr3bizje.jpg" alt="blank q" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a new theme which is not luma or blank.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Create a directory for the theme under

&lt;code&gt;app/design/frontend/&amp;lt;your_vendor_name&amp;gt;/&amp;lt;your_theme_name&amp;gt;.&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;ol&gt;
&lt;li&gt;Add a declaration file theme.xml and optionally create etc directory and create a file named view.xml to the theme directory.&lt;/li&gt;
&lt;li&gt;Add a composer.json file.&lt;/li&gt;
&lt;li&gt;Add registration.php.&lt;/li&gt;
&lt;li&gt;Create directories for CSS, JavaScript, images, and fonts in web folder.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Let's look into the theme.xml file
&lt;/h3&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%2Fi%2Fb9p9aqts7bswbstq2pv6.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%2Fi%2Fb9p9aqts7bswbstq2pv6.png" alt="Alt Text" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your newly created theme extends blank theme, which has all necessary styles required for any theme development. &lt;br&gt;
However if yout store is being developed from scratch, it's good to use blank as parent theme instead of luma as you would be overriding the existing styles to suite your store.&lt;/p&gt;

&lt;p&gt;You can start applying styles based on modules or entire theme level using the &lt;code&gt;_module.less&lt;/code&gt; and &lt;code&gt;_theme.less&lt;/code&gt; files. However if you want to extend the parent styles and additional styles, you can use &lt;code&gt;_extend.less&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can check Magento's ui library for available less variables and mixins, which is available in &lt;code&gt;lib&lt;/code&gt; folder in your Magento root directory, the library also comes with a guide.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/magento/magento2/tree/2.4-develop/lib/web/css" rel="noopener noreferrer"&gt;Magento Ui library&lt;/a&gt;&lt;/p&gt;

</description>
      <category>php</category>
      <category>magento</category>
      <category>ecommerce</category>
    </item>
  </channel>
</rss>
