<?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>DEV Community: Patrick Dev</title>
    <description>The latest articles on DEV Community by Patrick Dev (@patrickdev).</description>
    <link>https://dev.to/patrickdev</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%2F1570042%2F92a96bd4-10fe-4910-b282-ae00f81a5f96.png</url>
      <title>DEV Community: Patrick Dev</title>
      <link>https://dev.to/patrickdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/patrickdev"/>
    <language>en</language>
    <item>
      <title>Promising Micro SaaS Ideas 2024 | Leveraging MERN website</title>
      <dc:creator>Patrick Dev</dc:creator>
      <pubDate>Fri, 23 Aug 2024 11:29:48 +0000</pubDate>
      <link>https://dev.to/patrickdev/promising-micro-saas-ideas-2025-leveraging-mern-website-320</link>
      <guid>https://dev.to/patrickdev/promising-micro-saas-ideas-2025-leveraging-mern-website-320</guid>
      <description>&lt;p&gt;In 2024 and 2025, the micro SaaS landscape is ripe with opportunities, especially for developers skilled in the MERN stack (MongoDB, Express.js, React, Node.js) and web automation tools like Puppeteer to make the project completely AUTONOMOUS.&lt;/p&gt;

&lt;p&gt;For the development of a SaaS of the type listed above, feel free to write me at &lt;a href="mailto:jobs@patrickdev.it"&gt;jobs@patrickdev.it&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are some promising micro SaaS ideas that leverage these technologies:&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Promising Micro SaaS Ideas in 2025&lt;/strong&gt;
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🔹 Automated Email Marketing Platform&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Create a tool that automates email marketing campaigns, including features for template creation, scheduling, and analytics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why It Works&lt;/strong&gt;: Email marketing remains a critical component of digital marketing strategies. By incorporating Puppeteer, you can automate the extraction of email leads and performance metrics from various platforms, enhancing the tool's effectiveness.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🔹 Niche Analytics Dashboard&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Develop a customizable analytics dashboard tailored for specific industries (e.g., e-commerce, real estate).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why It Works&lt;/strong&gt;: Many businesses lack tailored analytics solutions. By using Puppeteer, you can scrape data from competitors or industry benchmarks, providing users with valuable insights directly within your dashboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🔹 Remote Team Collaboration Tool&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Build a platform that integrates project management, communication, and file sharing into one seamless experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why It Works&lt;/strong&gt;: With the rise of remote work, teams need effective collaboration tools. Automation can streamline onboarding processes and project updates, while Puppeteer can help automate data entry and reporting tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🔹 AI-Powered Customer Support Chatbot&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Create a chatbot that uses AI to handle customer inquiries, providing instant responses and support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why It Works&lt;/strong&gt;: Businesses increasingly seek to enhance customer service efficiency. Integrating Puppeteer can allow the bot to pull information from various sources, ensuring accurate and up-to-date responses.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🔹 Flight Price Tracker&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Develop a micro SaaS that tracks and compares flight prices across multiple airlines and travel sites.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why It Works&lt;/strong&gt;: Travel enthusiasts and frequent flyers would benefit from real-time price comparisons. Puppeteer can automate the scraping of flight prices, providing users with timely alerts on price drops.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🔹 Online Learning Community Platform&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Build a platform that allows users to create and share educational content, quizzes, and study materials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why It Works&lt;/strong&gt;: The online education sector is booming. You can automate the collection of user-generated content and feedback using Puppeteer, streamlining content management.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🔹 Grammar and Spelling Checker&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: Create a browser extension or web app that offers real-time grammar and spelling corrections.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why It Works&lt;/strong&gt;: Content creators and professionals need tools to enhance their writing. Puppeteer can be used to automate the analysis of writing styles and suggest improvements based on user preferences.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  🔸&lt;strong&gt;Trends to Consider&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI Integration&lt;/strong&gt;: Incorporating AI features can significantly enhance user experience and engagement. For instance, using machine learning algorithms to personalize user interactions within your micro SaaS can set your product apart.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Low-Code/No-Code Solutions&lt;/strong&gt;: As the demand for user-friendly applications grows, consider building a platform that allows users to create their own workflows or automations without extensive coding knowledge.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Vertical SaaS&lt;/strong&gt;: Focus on niche markets with specific needs, such as tools designed for healthcare, education, or small businesses, which can provide tailored solutions that larger platforms often overlook.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By focusing on these areas and leveraging your MERN stack skills alongside Puppeteer for automation, you can develop a micro SaaS product that meets the evolving needs of businesses and consumers in 2024 and beyond.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>mentorship</category>
      <category>career</category>
      <category>webdev</category>
    </item>
    <item>
      <title>5 Micro SaaS Ideas - Real-world - Potential</title>
      <dc:creator>Patrick Dev</dc:creator>
      <pubDate>Mon, 19 Aug 2024 21:48:35 +0000</pubDate>
      <link>https://dev.to/patrickdev/5-micro-saas-ideas-real-world-potential-3ge5</link>
      <guid>https://dev.to/patrickdev/5-micro-saas-ideas-real-world-potential-3ge5</guid>
      <description>&lt;h2&gt;
  
  
  1. &lt;strong&gt;Automated Social Media Posting Tool&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Real-World Example: Buffer&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Buffer is a well-known tool that allows users to schedule and manage social media posts across various platforms. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Potential Revenue Range:&lt;/strong&gt; $5,000 - $50,000/month depending on user base and subscription tiers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scale:&lt;/strong&gt; Can start small and grow with user demand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growth Potential:&lt;/strong&gt; High, as more businesses seek to automate their social media presence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target Audience:&lt;/strong&gt; Small businesses and freelancers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Competition:&lt;/strong&gt; Moderate; several existing tools but room for niche features.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical Complexity:&lt;/strong&gt; Low to moderate; can use existing APIs from social platforms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer Acquisition:&lt;/strong&gt; Relies on content marketing and social media outreach.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. &lt;strong&gt;Niche Project Management Tool&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Real-World Example: Notion Templates&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Notion allows users to create customized project management boards and templates, catering to specific industries such as education or design.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Potential Revenue Range:&lt;/strong&gt; $1,000 - $20,000/month based on template sales and subscriptions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scale:&lt;/strong&gt; Highly scalable with the potential for extensive template libraries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growth Potential:&lt;/strong&gt; Moderate to high, especially if targeting underserved niches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target Audience:&lt;/strong&gt; Freelancers, small teams, and specific industries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Competition:&lt;/strong&gt; High; however, unique templates can differentiate offerings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical Complexity:&lt;/strong&gt; Low; primarily requires design skills and knowledge of Notion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer Acquisition:&lt;/strong&gt; Through community engagement and showcasing templates on social platforms.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. &lt;strong&gt;Email Marketing Automation for Small Businesses&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Real-World Example: Mailchimp&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mailchimp offers email marketing solutions tailored for small to medium-sized businesses, focusing on automation and analytics.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Potential Revenue Range:&lt;/strong&gt; $10,000 - $100,000/month based on user base and pricing tiers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scale:&lt;/strong&gt; Can start with basic features and expand as user needs grow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growth Potential:&lt;/strong&gt; High, as email marketing remains a crucial tool for businesses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target Audience:&lt;/strong&gt; Small businesses and e-commerce platforms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Competition:&lt;/strong&gt; High; however, focusing on specific industries can help.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical Complexity:&lt;/strong&gt; Moderate; requires knowledge of email protocols and marketing strategies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer Acquisition:&lt;/strong&gt; Through partnerships and content marketing.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. &lt;strong&gt;Customer Feedback and Survey Tool&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Real-World Example: Typeform&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Typeform allows users to create engaging surveys and forms, focusing on user experience and data collection.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Potential Revenue Range:&lt;/strong&gt; $5,000 - $30,000/month depending on subscription models.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scale:&lt;/strong&gt; Can be expanded with additional features like analytics and integrations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growth Potential:&lt;/strong&gt; Moderate to high, especially in sectors focused on user experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target Audience:&lt;/strong&gt; Businesses seeking to gather customer insights.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Competition:&lt;/strong&gt; Moderate; differentiation through user experience is key.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical Complexity:&lt;/strong&gt; Low; can leverage existing form-building frameworks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer Acquisition:&lt;/strong&gt; Through SEO and partnerships with user experience agencies.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. &lt;strong&gt;Freelancer Job Board Aggregator&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Real-World Example: SolidGigs&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SolidGigs aggregates freelance job postings, providing curated leads to freelancers without commission deductions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Potential Revenue Range:&lt;/strong&gt; $2,000 - $15,000/month based on subscription fees.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scale:&lt;/strong&gt; Can grow by adding more job categories or geographic regions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growth Potential:&lt;/strong&gt; Moderate; relies on the freelance market's health.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target Audience:&lt;/strong&gt; Freelancers looking for job leads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Competition:&lt;/strong&gt; Moderate; uniqueness in job sourcing can help.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical Complexity:&lt;/strong&gt; Low; primarily involves web scraping and user interface design.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer Acquisition:&lt;/strong&gt; Through content marketing and partnerships with freelance platforms.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;These Micro SaaS ideas leverage specific niches and address targeted problems, allowing solo developers to create valuable solutions with relatively low overhead and significant growth potential.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>startup</category>
      <category>career</category>
    </item>
    <item>
      <title>404 Page Not Found Problem in Parallel Routes</title>
      <dc:creator>Patrick Dev</dc:creator>
      <pubDate>Mon, 19 Aug 2024 13:22:23 +0000</pubDate>
      <link>https://dev.to/patrickdev/404-error-problem-in-parallel-routes-27ln</link>
      <guid>https://dev.to/patrickdev/404-error-problem-in-parallel-routes-27ln</guid>
      <description>&lt;p&gt;How many people have you heard, "You will need an empty &lt;code&gt;page.tsx&lt;/code&gt;",  "should I put to each route an empty &lt;code&gt;page.tsx&lt;/code&gt;?" and if I have 3, 10 ... n of parallel routes? &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Nhaaa..&lt;br&gt;
To hell with parallel routes, I prefer to directly import a component into the layout and through the usePathname contextualizes the content of the modal right?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No, there is no more wrong thing. And also if you can reason it this way the solution you simply didn't need a page with a navigation independent of another “slot” and you confused the purpose of the parallel routes/slots with a simple separation of components of a layout/page.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Next JS parallel routes don't work&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;When you decide to create a new slot, or n slots, you are literally saying that you want to develop in parallel 1 ... n &lt;code&gt;layouts/page.tsx&lt;/code&gt;, from this you already understand how thoughtful a choice it must be.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem behind default.jsx
&lt;/h2&gt;

&lt;p&gt;So you need for example a &lt;code&gt;@modal&lt;/code&gt; that when you navigate in it doesn't affect the navigation of the home page that is underneath, but at the same time in case of refresh to the current modal navigation url or trivially at the first load we have to tell all our &lt;code&gt;slots&lt;/code&gt; how they have to compose themselves at each url segment.&lt;/p&gt;

&lt;p&gt;That's why in most cases, as in a modal, the most important thing to do is a &lt;code&gt;default.tsx&lt;/code&gt; at the first segment level, so that the development perspective is reversed. That is, write only the segments that we want the modal to action and not think about putting empty all the ones where it is not used.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem behind catch all [[...all]]
&lt;/h2&gt;

&lt;p&gt;Get this error &lt;code&gt;You cannot define a route with the same specificity as a optional catch-all route ("/" and "/[[...all]]"). weird because it is parallel route&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;app&lt;/span&gt;
&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;modal&lt;/span&gt;
&lt;span class="err"&gt;│&lt;/span&gt;   &lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="p"&gt;[[...&lt;/span&gt;&lt;span class="nx"&gt;all&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="nx"&gt;layout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tsx&lt;/span&gt;
&lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tsx&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Unfortunately, there has not yet been a direct explanation/solution to this problem, but it can &lt;code&gt;simply be solved&lt;/code&gt; by writing it in the same but more extensive way as follows&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;app&lt;/span&gt;
&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;modal&lt;/span&gt;
&lt;span class="err"&gt;│&lt;/span&gt;   &lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="nx"&gt;all&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="err"&gt;│&lt;/span&gt;   &lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tsx&lt;/span&gt;
&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="nx"&gt;layout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tsx&lt;/span&gt;
&lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tsx&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I hope this has been of some help to you on the level of conceptual clarification, if not I am available in the comments&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>typescript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Q&amp;A Parallel Routes - Nextjs</title>
      <dc:creator>Patrick Dev</dc:creator>
      <pubDate>Sun, 18 Aug 2024 13:44:27 +0000</pubDate>
      <link>https://dev.to/patrickdev/q-a-parallel-routes-nextjs-5193</link>
      <guid>https://dev.to/patrickdev/q-a-parallel-routes-nextjs-5193</guid>
      <description>&lt;p&gt;React's robust toolkit, Next.js, introduces two key capabilities: Intercepting Routes and Parallel Routes. These features empower programmers to craft fluid and adaptable user interfaces within their software. This article will delve into Parallel Routes, shedding light on their practical applications, core functions, and potential synergies to bolster navigation within apps.&lt;/p&gt;

&lt;h1&gt;
  
  
  What are parallel routes?
&lt;/h1&gt;

&lt;p&gt;It's a feature introduced to allow developers to simultaneously render multiple pages or layouts in the same view. In practical terms it allows you to create multiple “children” of the main layout each having an independent router/navigation that does not affect the overall navigation of the page. &lt;/p&gt;

&lt;p&gt;Complex, dynamic application segments benefit greatly from parallel routes. Parallel Routes excel in rendering intricate, fluid components of a program, particularly in scenarios like multi-section dashboards or interactive overlays. To illustrate the nuances of Parallel Routes, consider this dashboard layout from the Next.js official guide:&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%2F05pzl5oy7f9wxtau2nof.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%2F05pzl5oy7f9wxtau2nof.png" alt="Image description" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the benefits of parallel routes?
&lt;/h2&gt;

&lt;p&gt;◼️ &lt;strong&gt;Independent Route Handling&lt;/strong&gt;&lt;br&gt;
One of the primary advantages of parallel routes is the ability to handle each route independently. This means that different sections of a webpage can load and display content without being affected by the loading states of other sections. For example, if one component takes longer to fetch data, other components can still remain interactive, displaying their content without delays. This granular control improves user experience by providing a more responsive interface and simplifies debugging and maintenance for developers.&lt;/p&gt;

&lt;p&gt;◼️ &lt;strong&gt;Enhanced User Experience&lt;/strong&gt;&lt;br&gt;
Parallel routes facilitate a smoother user experience by allowing simultaneous rendering of multiple views. This is particularly beneficial for complex applications like dashboards, where different sections (e.g., user analytics, notifications, and team updates) can be displayed side-by-side. Users can interact with each section independently, which enhances usability and engagement.&lt;/p&gt;

&lt;p&gt;◼️ &lt;strong&gt;Sub-navigation Capabilities&lt;/strong&gt;&lt;br&gt;
Each parallel route can function as a mini-application with its own navigation and state management. This enables seamless sub-navigation within each section of an application. For instance, users can switch between different views or states within a component (like toggling between archived and current notifications) without disrupting the overall layout or affecting other sections. This modular approach allows for a more organized and intuitive navigation experience.&lt;/p&gt;

&lt;p&gt;◼️ &lt;strong&gt;Improved Code Management&lt;/strong&gt;&lt;br&gt;
Parallel routes allow developers to split a single layout into various slots, making the codebase more manageable. This modular structure is particularly advantageous when different teams work on various sections of a page, as it reduces complexity and enhances collaboration. Each slot can be developed and maintained independently, which streamlines the overall development process.&lt;/p&gt;

&lt;p&gt;◼️ &lt;strong&gt;Conditional Rendering and Flexibility&lt;/strong&gt;&lt;br&gt;
Parallel routes also support conditional rendering, which allows developers to display different content based on specific conditions without needing to navigate away from the current page. This flexibility is crucial for modern web applications that require dynamic content updates while maintaining a consistent user interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are slots in NextJS?
&lt;/h2&gt;

&lt;p&gt;Slots are a key concept behind parallel routes, which allow rendering multiple pages within the same layout simultaneously. Slots are defined using the @folder naming convention and are designed to structure content modularly&lt;/p&gt;

&lt;p&gt;Key Points about Slots:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Slots are defined using the &lt;code&gt;@folder&lt;/code&gt; naming convention, such as &lt;code&gt;@users&lt;/code&gt;, &lt;code&gt;@revenue&lt;/code&gt;, &lt;code&gt;@notifications&lt;/code&gt;, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Each slot is passed as a prop to a corresponding &lt;code&gt;layout.tsx&lt;/code&gt; file&lt;br&gt;
Slots enable rendering multiple independent pages within the same layout simultaneously&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Slots can be independently rendered within the layout, allowing for a dynamic and complex user interface&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;code&gt;{ children }&lt;/code&gt; slot is an implicit or automatic slot that doesn't need to be associated with a &lt;code&gt;@folder&lt;/code&gt; and it's important to understand that creating a folder called &lt;code&gt;@children&lt;/code&gt; is the ecquivalent of the children we have by default creating &lt;code&gt;page.tsx&lt;/code&gt; in the &lt;code&gt;/app&lt;/code&gt; directory &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>nextjs</category>
      <category>typescript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Parallel Routes: Starter Guide in Nextjs</title>
      <dc:creator>Patrick Dev</dc:creator>
      <pubDate>Sun, 18 Aug 2024 09:55:54 +0000</pubDate>
      <link>https://dev.to/patrickdev/parallel-routes-getting-started-guide-nextjs-app-router-4da</link>
      <guid>https://dev.to/patrickdev/parallel-routes-getting-started-guide-nextjs-app-router-4da</guid>
      <description>&lt;h3&gt;
  
  
  ◼️ Next.js 13.3 add a lot of features
&lt;/h3&gt;

&lt;p&gt;And one of which completely extends the basic optics of React root file with the classic and single children, &lt;strong&gt;as below&lt;/strong&gt;⏬&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// app/layout.tsx&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;PropsWithChildren&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default &lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;children&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt; &lt;span class="nx"&gt;PropsWithChildren&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;html&lt;/span&gt; &lt;span class="nx"&gt;lang&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;en&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dark&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;children&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/body&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/html&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;was the parallel routes, with the idea of having multiple ReactNode children and especially independent pages, in terms of navigation and rendering, in one and the same view ( or better &lt;code&gt;with same layout&lt;/code&gt; ) and in rare cases used for conditional rendering of pages, to overcome and expand this barrier.&lt;/p&gt;

&lt;h3&gt;
  
  
  ◼️ Well, that's exactly the purpose &lt;strong&gt;parallel routes&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// app/layout.tsx&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;PropsWithChildren&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default &lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;outlines&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;children&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ads&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt; &lt;span class="nx"&gt;Props&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;html&lt;/span&gt; &lt;span class="nx"&gt;lang&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;en&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dark&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;outlines&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
                    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
                    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ads&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/body&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/html&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;Props&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;PropsWithChildren&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;ads&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ReactNode&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;outlines&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ReactNode&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;OK, sounds good right?&lt;/strong&gt;&lt;br&gt;
But how to define these damn parallel routes?&lt;/p&gt;
&lt;h2&gt;
  
  
  ◼️ Syntax of parallel routes
&lt;/h2&gt;

&lt;p&gt;Each of the new &lt;strong&gt;“children”&lt;/strong&gt; we can define it as a &lt;strong&gt;“slot”&lt;/strong&gt; in technical terms, and to define them is simply by creating a new folder, in the app router directory of course, with the following syntax &lt;code&gt;@youtslotname&lt;/code&gt;, &lt;/p&gt;

&lt;p&gt;To conclude, I leave you with the structure for defining slots that I showed you in the code example mentioned earlier:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;app&lt;/span&gt;
&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;ads&lt;/span&gt;
&lt;span class="err"&gt;│&lt;/span&gt;   &lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tsx&lt;/span&gt;
&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;outlines&lt;/span&gt;
&lt;span class="err"&gt;│&lt;/span&gt;   &lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tsx&lt;/span&gt;
&lt;span class="err"&gt;├──&lt;/span&gt; &lt;span class="nx"&gt;layout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tsx&lt;/span&gt;
&lt;span class="err"&gt;└──&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tsx&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Intercepting routes VS Parallel routes | Nextjs App Router</title>
      <dc:creator>Patrick Dev</dc:creator>
      <pubDate>Sat, 17 Aug 2024 23:23:14 +0000</pubDate>
      <link>https://dev.to/patrickdev/nextjs-parallel-routing-vs-intercepting-routing-1422</link>
      <guid>https://dev.to/patrickdev/nextjs-parallel-routing-vs-intercepting-routing-1422</guid>
      <description>&lt;p&gt;Each technique serves distinct purposes and can significantly enhance the user experience and application performance when implemented correctly.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;And so far so obvious you will say😉&lt;br&gt;
But let's start with a brief single distinction!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Intercepting Routes&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Intercepting routes allows developers to handle navigation requests before they reach their final destination. This technique is useful for scenarios where you want to display an alternative view or component without changing the URL or refreshing the page. &lt;/p&gt;

&lt;p&gt;Particularly beneficial for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dynamic Content&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Request Manipulation&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Parallel Routes&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Parallel routes, on the other hand, enables the simultaneous rendering of multiple pages within a shared layout. This technique is particularly useful for enhancing performance and user experience by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reducing Latency&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shared Data Dependencies&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Complex Layouts&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Comparison of Intercepting and Parallel Routes&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Intercepting Routes&lt;/th&gt;
&lt;th&gt;Parallel Routes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Purpose&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Manipulate requests before reaching the page&lt;/td&gt;
&lt;td&gt;Render multiple pages simultaneously&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Use Cases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Authentication, dynamic content display&lt;/td&gt;
&lt;td&gt;Tabbed navigation, shared data dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Routing Convention&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Uses &lt;code&gt;(..)&lt;/code&gt; for segment matching&lt;/td&gt;
&lt;td&gt;Uses named slots for layout integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;User Experience&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Maintains context while changing views&lt;/td&gt;
&lt;td&gt;Enhances performance and reduces latency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Choosing the Right Approach
&lt;/h2&gt;

&lt;p&gt;The decision to use intercepting or parallel routes in Next.js depends on the specific needs of your application:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use Intercepting Routing when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You need to fetch data or perform server-side computations before rendering.&lt;/li&gt;
&lt;li&gt;You want to show modals or overlays without losing the current context.&lt;/li&gt;
&lt;li&gt;Custom authentication or authorization handling is required.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Use Parallel Routing when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You aim to optimize performance by rendering multiple pages at once.&lt;/li&gt;
&lt;li&gt;You have shared data dependencies that can be efficiently managed.&lt;/li&gt;
&lt;li&gt;You want to enhance the perceived loading time and overall user experience.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;📲 Write in the comments if you would like a post on just code examples and practical examples in addition to just hated theory ☕️&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>nextjs</category>
      <category>typescript</category>
      <category>webdev</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
