<?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: Rusu Ionut</title>
    <description>The latest articles on Forem by Rusu Ionut (@johnrusu).</description>
    <link>https://forem.com/johnrusu</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%2F144753%2Ffed5f112-6526-409a-83c9-24b4234d3f54.jpg</url>
      <title>Forem: Rusu Ionut</title>
      <link>https://forem.com/johnrusu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/johnrusu"/>
    <language>en</language>
    <item>
      <title>Get a FREE Month of Premium! 🚀</title>
      <dc:creator>Rusu Ionut</dc:creator>
      <pubDate>Sat, 25 Apr 2026 16:36:01 +0000</pubDate>
      <link>https://forem.com/johnrusu/get-a-free-month-of-premium-4go4</link>
      <guid>https://forem.com/johnrusu/get-a-free-month-of-premium-4go4</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;We are excited to share a brand new way for you to enjoy our Premium features. If you've been loving the platform, why not bring a friend along? &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get a FREE month of Premium!&lt;/strong&gt; The process is incredibly simple: just share your unique invite link, and when a friend upgrades their account, your next month is completely on us. There's no limit to how many friends you can invite!&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Grab your invite link here:&lt;/strong&gt; &lt;a href="https://recipe-finder.org/invite-one-free-month" rel="noopener noreferrer"&gt;https://recipe-finder.org/invite-one-free-month&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for being such an awesome part of our community. Happy coding (and cooking)! 💻🍳&lt;/p&gt;

</description>
      <category>recipes</category>
      <category>culinary</category>
      <category>food</category>
      <category>cooking</category>
    </item>
    <item>
      <title>Building Recipe-Finder.org: A Full-Stack Journey with Vue, Express, MongoDB, and Vuetify 🍳</title>
      <dc:creator>Rusu Ionut</dc:creator>
      <pubDate>Sat, 25 Apr 2026 16:30:34 +0000</pubDate>
      <link>https://forem.com/johnrusu/building-recipe-finderorg-a-full-stack-journey-with-vue-express-mongodb-and-vuetify-2k57</link>
      <guid>https://forem.com/johnrusu/building-recipe-finderorg-a-full-stack-journey-with-vue-express-mongodb-and-vuetify-2k57</guid>
      <description>&lt;p&gt;Hello, DEV community! 👋 &lt;/p&gt;

&lt;p&gt;Today, I want to share a project I recently launched: &lt;a href="https://recipe-finder.org" rel="noopener noreferrer"&gt;Recipe-Finder.org&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Like many developers, I often find myself staring into the fridge wondering what to make with the random ingredients I have left. I wanted a fast, clean, and intuitive way to search for recipes, so I decided to build my own solution. &lt;/p&gt;

&lt;p&gt;It was a fantastic opportunity to dive deeper into full-stack development, and I decided to go with a modified MEVN stack. Here is a breakdown of how I built it, the tools I used, and what I learned along the way.&lt;/p&gt;




&lt;h3&gt;
  
  
  🛠️ The Tech Stack
&lt;/h3&gt;

&lt;p&gt;I wanted a stack that allowed for rapid development while keeping the application highly responsive. Here is what powered the project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; &lt;strong&gt;Vue.js&lt;/strong&gt;. I love Vue for its approachable learning curve and how easily it handles reactive components. It made building the dynamic search interfaces a breeze.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI Framework:&lt;/strong&gt; &lt;strong&gt;Vuetify&lt;/strong&gt;. To get that polished, Material Design look without writing hundreds of lines of custom CSS, Vuetify was my go-to. It provided out-of-the-box components like cards for the recipes, navigation drawers, and responsive grids.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; &lt;strong&gt;Express.js (Node.js)&lt;/strong&gt;. I kept the backend lightweight. Express handles the API routing, processing search requests from the Vue frontend and communicating with the database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; &lt;strong&gt;MongoDB&lt;/strong&gt;. Recipes are inherently document-like (they have arrays of ingredients, arrays of instructions, etc.). A NoSQL database like MongoDB was a perfect fit, allowing me to store recipe data flexibly without strict relational tables.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🏗️ Architecture &amp;amp; How It Works
&lt;/h3&gt;

&lt;p&gt;The architecture is a standard decoupled setup. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;The Client:&lt;/strong&gt; The Vue app handles all the state management (using Pinia) and user interactions. When a user types an ingredient or recipe name, Vue triggers an Axios request.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The API:&lt;/strong&gt; The Express server receives this request. It validates the input and constructs a query.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The Data:&lt;/strong&gt; The server queries MongoDB, retrieves the matching recipe documents, and sends them back as a JSON response.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The Render:&lt;/strong&gt; Vue takes that JSON data and seamlessly updates the Vuetify DOM components to display the delicious results.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  🚧 Biggest Challenges &amp;amp; Lessons Learned
&lt;/h3&gt;

&lt;p&gt;No project is complete without a few bumps in the road. Here are a couple of things that tested my patience and what I learned from them:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Managing Complex Search Queries
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Challenge:&lt;/strong&gt; Users rarely type exact, sanitized ingredient names. Implementing a search that handled both strict array matching (for ingredients) and fuzzy text matching (for recipe titles) was tricky to get right without sacrificing performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Solution:&lt;/strong&gt; I ended up utilizing MongoDB's text search indexes and the &lt;code&gt;$text&lt;/code&gt; operator. For more nuanced ingredient matching, I built out an aggregation pipeline in Express that scores and sorts results based on how many ingredients match the user's input.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. Responsive UI with Vuetify
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Challenge:&lt;/strong&gt; Getting the recipe cards to look consistent was surprisingly tough. Recipe images had different aspect ratios, and title lengths varied wildly, which kept breaking my grid layouts on mobile screens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Solution:&lt;/strong&gt; I leveraged Vuetify's &lt;code&gt;v-img&lt;/code&gt; aspect-ratio props to enforce uniformity and used the CSS &lt;code&gt;line-clamp&lt;/code&gt; property for text truncation. I also fully utilized Vuetify's responsive grid system (&lt;code&gt;cols="12" sm="6" md="4"&lt;/code&gt;) to ensure the layout degrades gracefully based on viewport size.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🚀 What's Next?
&lt;/h3&gt;

&lt;p&gt;Getting the core functionality of &lt;a href="https://recipe-finder.org" rel="noopener noreferrer"&gt;Recipe-Finder.org&lt;/a&gt; live was step one. In the future, I plan to add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;User Accounts:&lt;/strong&gt; So people can save and favorite their go-to recipes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meal Planning:&lt;/strong&gt; A calendar feature to plan the week's dinners in advance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Shopping Lists:&lt;/strong&gt; Automatically compiling missing ingredients from a chosen recipe into an interactive checklist.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Let me know what you think!
&lt;/h3&gt;

&lt;p&gt;Building this was a lot of fun, and seeing it live on the web is incredibly rewarding. I'd love for you to try it out! &lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Check it out here:&lt;/strong&gt; &lt;a href="https://recipe-finder.org" rel="noopener noreferrer"&gt;Recipe-Finder.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have any feedback on the UI, the search functionality, or the code structure, please let me know in the comments below. Happy coding! 👨‍💻👩‍💻&lt;/p&gt;

</description>
      <category>vue</category>
      <category>node</category>
      <category>mongodb</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Turn Viral Recipe Videos into Clean Recipe Cards Instantly 🍳</title>
      <dc:creator>Rusu Ionut</dc:creator>
      <pubDate>Mon, 30 Mar 2026 21:07:05 +0000</pubDate>
      <link>https://forem.com/johnrusu/turn-viral-recipe-videos-into-clean-recipe-cards-instantly-p1k</link>
      <guid>https://forem.com/johnrusu/turn-viral-recipe-videos-into-clean-recipe-cards-instantly-p1k</guid>
      <description>&lt;h2&gt;
  
  
  ⚡ 60-Second Video -&amp;gt; 1-Click Cooking
&lt;/h2&gt;

&lt;p&gt;We turn chaotic viral cooking videos into organized recipe cards and standardized grocery lists.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Find:&lt;/strong&gt; Copy a video link (TikTok, Instagram, YouTube).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paste:&lt;/strong&gt; Drop it into our extractor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cook:&lt;/strong&gt; Get an instant clean card.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Try it for FREE:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Everybody gets &lt;strong&gt;2 FREE AI imports per month&lt;/strong&gt;. No credit card required.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://recipe-finder.org/social-recipe-extractor" rel="noopener noreferrer"&gt;👉 Extract Your First Recipe Here&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Go Premium for UNLIMITED Imports:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;For power users who cook a lot, get seamless, unlimited imports.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://recipe-finder.org/ai-assistant" rel="noopener noreferrer"&gt;👨‍🍳 Go Premium Now&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>tools</category>
      <category>cooking</category>
    </item>
    <item>
      <title>Empty fridge? I built a tool that tells you what to cook 🍳</title>
      <dc:creator>Rusu Ionut</dc:creator>
      <pubDate>Wed, 25 Mar 2026 07:39:12 +0000</pubDate>
      <link>https://forem.com/johnrusu/empty-fridge-i-built-a-tool-that-tells-you-what-to-cook-3a70</link>
      <guid>https://forem.com/johnrusu/empty-fridge-i-built-a-tool-that-tells-you-what-to-cook-3a70</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;Tired of staring at 3 random ingredients in your fridge and just ordering takeout? Me too. So I built an app to solve it. &lt;/p&gt;

&lt;p&gt;Just type in whatever is sitting in your kitchen, and it instantly generates meals you can actually make. &lt;/p&gt;

&lt;h3&gt;
  
  
  🔗 Try it out here:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🍽️ &lt;strong&gt;&lt;a href="https://recipe-finder.org" rel="noopener noreferrer"&gt;Find a Recipe Right Now&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧅 &lt;strong&gt;&lt;a href="https://recipe-finder.org" rel="noopener noreferrer"&gt;Search by the Ingredients You Have&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;💸 &lt;strong&gt;&lt;a href="https://recipe-finder.org" rel="noopener noreferrer"&gt;Stop Wasting Groceries&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;(Dev note: The site is built for lightning-fast searches using Vue 3, Express, and MongoDB).&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  💬 Let's Talk!
&lt;/h3&gt;

&lt;p&gt;Click the links above, give it a spin, and let me know if it finds you something good. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Also: What is your ultimate "clean-out-the-fridge" meal?&lt;/strong&gt; Drop it below! 👇&lt;/p&gt;

&lt;h1&gt;
  
  
  Food #Recipes #Cooking #WebDev #VueJS
&lt;/h1&gt;

</description>
      <category>food</category>
      <category>recipes</category>
      <category>cooking</category>
      <category>lifehacks</category>
    </item>
    <item>
      <title>I built a Recipe Finder using Vue 3, Express.js, and MongoDB 🍳🚀</title>
      <dc:creator>Rusu Ionut</dc:creator>
      <pubDate>Tue, 24 Mar 2026 20:25:05 +0000</pubDate>
      <link>https://forem.com/johnrusu/i-built-a-recipe-finder-using-vue-3-expressjs-and-mongodb-2alg</link>
      <guid>https://forem.com/johnrusu/i-built-a-recipe-finder-using-vue-3-expressjs-and-mongodb-2alg</guid>
      <description>&lt;p&gt;Hey Dev Community! 👋 &lt;/p&gt;

&lt;p&gt;We’ve all been there: you’re staring at a half-empty fridge wondering if you can actually make a meal out of a bell pepper and some leftover rice. To solve my own "what’s for dinner" fatigue, I built &lt;strong&gt;&lt;a href="https://recipe-finder.org" rel="noopener noreferrer"&gt;recipe-finder.org&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ The Tech Stack
&lt;/h3&gt;

&lt;p&gt;I wanted this project to be fast, reactive, and easy to scale. Here’s how I put it together:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend: Vue 3&lt;/strong&gt; I leaned heavily into Vue’s reactivity system. The goal was a seamless UI where ingredients could be added or removed without any clunky page refreshes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend: Express.js&lt;/strong&gt; I went with Express to keep the API layer robust yet lightweight. It handles the logic between the user's pantry and the recipe database with minimal overhead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database: MongoDB&lt;/strong&gt; Since recipe data can be pretty unstructured, MongoDB's flexible document schema made it the perfect choice for efficient querying.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Give it a spin!
&lt;/h3&gt;

&lt;p&gt;I’m officially launching it today and would love for you to check it out:&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://recipe-finder.org" rel="noopener noreferrer"&gt;recipe-finder.org&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  💬 Let's Talk!
&lt;/h3&gt;

&lt;p&gt;I’d love to hear your thoughts on the UI/UX or any features you'd like to see added. Also, I’m curious—&lt;strong&gt;what is your favorite "clean-out-the-fridge" meal?&lt;/strong&gt; 🍲&lt;/p&gt;

&lt;h1&gt;
  
  
  WebDevelopment #VueJS #ExpressJS #MongoDB #FullStack #SoftwareEngineering #ProjectLaunch #RecipeFinder
&lt;/h1&gt;

</description>
      <category>javascript</category>
      <category>food</category>
      <category>recipes</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
