<?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: ibtihel ben salah</title>
    <description>The latest articles on DEV Community by ibtihel ben salah (@ibtihelbs).</description>
    <link>https://dev.to/ibtihelbs</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%2F846917%2Fc353a17a-bbc3-41ff-962d-8ccf2ed4be99.png</url>
      <title>DEV Community: ibtihel ben salah</title>
      <link>https://dev.to/ibtihelbs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ibtihelbs"/>
    <language>en</language>
    <item>
      <title>My Third portfolio</title>
      <dc:creator>ibtihel ben salah</dc:creator>
      <pubDate>Sun, 16 Mar 2025 09:36:17 +0000</pubDate>
      <link>https://dev.to/ibtihelbs/my-third-portfolio-4cem</link>
      <guid>https://dev.to/ibtihelbs/my-third-portfolio-4cem</guid>
      <description>&lt;h1&gt;
  
  
  Building My Web Development Portfolio: A Journey with Next.js, Tailwind CSS, and Framer Motion
&lt;/h1&gt;

&lt;p&gt;As a front-end developer with over three years of experience, I've created several portfolio pieces that showcase my skills in modern web development technologies. In this article, I'll take you through three distinct projects I designed and built from scratch using Next.js, Tailwind CSS, and Framer Motion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why These Technologies?
&lt;/h2&gt;

&lt;p&gt;Before diving into the projects themselves, let me explain why I chose this particular tech stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt;: Provides server-side rendering capabilities, optimized performance, and an excellent developer experience&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS&lt;/strong&gt;: Offers utility-first approach to styling that speeds up development while maintaining consistency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framer Motion&lt;/strong&gt;: Enables smooth, sophisticated animations that enhance user experience without compromising performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This combination has allowed me to create responsive, performant websites with engaging animations while maintaining clean, maintainable code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project 1: Personal Portfolio Website
&lt;/h2&gt;

&lt;p&gt;My personal portfolio at &lt;a href="https://ibtihelbensalah.vercel.app" rel="noopener noreferrer"&gt;ibtihelbensalah.vercel.app&lt;/a&gt; features a minimalist design with elegant typography and a clear information hierarchy. I wanted to create a site that reflects my aesthetic sensibilities while effectively showcasing my skills and projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Design Process
&lt;/h3&gt;

&lt;p&gt;I began with a simple concept: a clean, typography-focused layout with strategic use of white space. The cream background provides warmth while maintaining readability, and the distinctive typeface adds personality without sacrificing professionalism.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technical Implementation
&lt;/h3&gt;

&lt;p&gt;For this project, I used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js for routing and page structure&lt;/li&gt;
&lt;li&gt;Tailwind CSS for responsive layout and styling&lt;/li&gt;
&lt;li&gt;Framer Motion for subtle page transitions and element animations&lt;/li&gt;
&lt;li&gt;Custom React components for skill tags and project cards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The site is fully responsive, with optimized layouts for mobile, tablet, and desktop views. Performance was a priority, so I implemented image optimization and code splitting to ensure fast load times.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project 2: AURALUX Travel Website
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://auraluxe-blush.vercel.app" rel="noopener noreferrer"&gt;AURALUX&lt;/a&gt; demonstrates my ability to create content-rich, visually engaging websites for specific industries. This travel site features high-quality imagery, clear navigation, and organized content sections.&lt;/p&gt;

&lt;h3&gt;
  
  
  Design Process
&lt;/h3&gt;

&lt;p&gt;For this travel website, I focused on creating an immersive experience that would inspire visitors to explore destinations. I used a harmonious color palette anchored by natural landscape imagery and created a balanced layout that showcases featured destinations and hotels.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technical Implementation
&lt;/h3&gt;

&lt;p&gt;Key technical aspects include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dynamic routing with Next.js for destination and hotel pages&lt;/li&gt;
&lt;li&gt;Responsive grid layouts with Tailwind CSS&lt;/li&gt;
&lt;li&gt;Scroll animations using Framer Motion to reveal content as users explore the page&lt;/li&gt;
&lt;li&gt;Custom carousel components for showcasing destinations and properties&lt;/li&gt;
&lt;li&gt;Optimized image loading for improved performance&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Project 3: Restaurant Template
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://restaurant-template-eight-eta.vercel.app" rel="noopener noreferrer"&gt;restaurant template&lt;/a&gt; demonstrates my versatility with a completely different aesthetic. It features a retro, playful design with bold typography and vibrant colors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Design Process
&lt;/h3&gt;

&lt;p&gt;For this project, I wanted to create a fun, engaging experience that reflects the personality of a casual dining establishment. The checkered pattern, bold typography, and bright color scheme work together to create an inviting, memorable brand identity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technical Implementation
&lt;/h3&gt;

&lt;p&gt;Technical highlights include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js for page structure and API routes for menu items&lt;/li&gt;
&lt;li&gt;Custom Tailwind configuration to implement the specific color palette&lt;/li&gt;
&lt;li&gt;Framer Motion animations for menu item transitions and interactive elements&lt;/li&gt;
&lt;li&gt;Responsive design for various device sizes&lt;/li&gt;
&lt;li&gt;Interactive menu filtering functionality&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;p&gt;Throughout these projects, I've refined my approach to both design and development:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start with user needs&lt;/strong&gt;: Each site was designed with its specific audience in mind&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prototype before coding&lt;/strong&gt;: Wireframing and design mockups saved development time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance matters&lt;/strong&gt;: Optimizing images and implementing efficient animations improved user experience&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Component reusability&lt;/strong&gt;: Building modular components accelerated development across projects&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsive from the start&lt;/strong&gt;: Designing with multiple device sizes in mind from the beginning prevented rework&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;What do you think of it do you have any advices ?&lt;/p&gt;

</description>
      <category>portfolio</category>
      <category>nextjs</category>
      <category>programming</category>
      <category>tailwindcss</category>
    </item>
    <item>
      <title>This One Library Will Save You 15 Hours – You Only Need to Copy and Paste.</title>
      <dc:creator>ibtihel ben salah</dc:creator>
      <pubDate>Sat, 22 Feb 2025 15:08:33 +0000</pubDate>
      <link>https://dev.to/ibtihelbs/this-one-library-will-save-you-15-hours-you-only-need-to-copy-and-paste-2n2g</link>
      <guid>https://dev.to/ibtihelbs/this-one-library-will-save-you-15-hours-you-only-need-to-copy-and-paste-2n2g</guid>
      <description>&lt;p&gt;If you're a React developer using &lt;strong&gt;Framer Motion&lt;/strong&gt; and &lt;strong&gt;Tailwind CSS&lt;/strong&gt;, you know how powerful these tools are for building stunning, animated UIs. But even with these frameworks, creating custom animations from scratch can be time-consuming. Enter &lt;strong&gt;Motion-Primitives&lt;/strong&gt; – a library of beautifully designed, easy-to-integrate motion components that will save you hours of work.  &lt;/p&gt;

&lt;p&gt;Motion-Primitives is built specifically for engineers and designers who want to add polished animations to their projects without the hassle. With its &lt;strong&gt;copy-paste workflow&lt;/strong&gt;, you can skip the installation and setup process entirely. Just copy the code, paste it into your project, and you're done.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Why Motion-Primitives is a Game-Changer
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Built for Framer Motion + Tailwind CSS&lt;/strong&gt;: Seamlessly integrates with your existing stack.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Beautifully Designed&lt;/strong&gt;: Every component is crafted with aesthetics and usability in mind.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy-Paste Workflow&lt;/strong&gt;: No installation or setup required – just copy and paste.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time-Saving&lt;/strong&gt;: Save up to 4 hours (or more!) by reusing pre-built components.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customizable&lt;/strong&gt;: Start with a template and tweak it to fit your design.
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What’s in the Box?
&lt;/h3&gt;

&lt;p&gt;Motion-Primitives offers a growing library of components, including:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Page transitions&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hover effects&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scroll-triggered animations&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loading spinners&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Micro-interactions&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And because it’s built with Tailwind CSS, styling is a breeze.  &lt;/p&gt;

&lt;h3&gt;
  
  
  A Note on the Beta
&lt;/h3&gt;

&lt;p&gt;Motion-Primitives is currently in &lt;strong&gt;beta&lt;/strong&gt;, which means new components and updates are being released regularly. While this is an exciting time to get involved, keep in mind that the library is still evolving. Expect significant improvements and new features as the project grows.  &lt;/p&gt;

&lt;h3&gt;
  
  
  How to Get Started
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Browse the Motion-Primitives library &lt;a href="https://motion-primitives.com/docs" rel="noopener noreferrer"&gt;or Click &lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;Copy the code snippet for the component you need.
&lt;/li&gt;
&lt;li&gt;Paste it into your React project.
&lt;/li&gt;
&lt;li&gt;Customize it with Tailwind CSS or leave it as is!
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With Motion-Primitives, you can focus on what really matters: building amazing user experiences. So why spend hours writing animation code when you can copy, paste, and save yourself 4 hours (or more) on every project?&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>react</category>
      <category>motion</category>
      <category>animation</category>
    </item>
    <item>
      <title>The one mistake that cost me 1.5 year and 10 000$</title>
      <dc:creator>ibtihel ben salah</dc:creator>
      <pubDate>Sat, 01 Feb 2025 15:01:33 +0000</pubDate>
      <link>https://dev.to/ibtihelbs/the-one-mistake-that-cost-me-15-year-and-10-000-5cp2</link>
      <guid>https://dev.to/ibtihelbs/the-one-mistake-that-cost-me-15-year-and-10-000-5cp2</guid>
      <description>&lt;p&gt;1.5 years ago, I set out to learn Node.js by building a fullstack e-commerce app using the MERN stack. It sounded like the perfect project at the time—challenging, practical, and impressive on a&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%2Fuploads%2Farticles%2Fauog0edftqdnafw7gzv3.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%2Fuploads%2Farticles%2Fauog0edftqdnafw7gzv3.jpg" alt="Image description" width="800" height="450"&gt;&lt;/a&gt; portfolio. But looking back, I regret it. &lt;/p&gt;

&lt;p&gt;Don’t get me wrong: the project wasn’t a waste of time. I learned a lot about Express, MongoDB, and API integrations. I even gained some experience with payment gateways and inventory management. But here’s the problem: I wasn’t trying to become an e-commerce expert. I was trying to learn Node.js. &lt;/p&gt;

&lt;p&gt;Instead of focusing on mastering Node.js fundamentals, I spent most of my time debugging e-commerce-specific features. The complexity of the project became a distraction, pulling me away from my original learning goals.  &lt;/p&gt;

&lt;h3&gt;
  
  
  What I Should Have Done Instead
&lt;/h3&gt;

&lt;p&gt;In hindsight, I should have started with smaller, more focused projects that aligned with my goal of learning Node.js. &lt;/p&gt;

&lt;p&gt;These projects would have allowed me to deeply understand Node.js without getting bogged down by unnecessary complexity. Once I had a solid foundation, I could have gradually taken on more ambitious projects, like an e-commerce app. &lt;/p&gt;

&lt;h3&gt;
  
  
  Lessons Learned
&lt;/h3&gt;

&lt;p&gt;This experience taught me two important lessons: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start Small&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
It's tempting to jump into big, flashy projects, but mastering the basics is far more important. Small, focused projects allow you to build a strong foundation before tackling complexity. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Align Projects with Learning Goals&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Choose projects that directly help you learn the skills you’re targeting. If your goal is to learn Node.js, don’t let yourself get distracted by features or technologies that aren’t relevant to that goal. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;While I don’t regret the effort I put into the e-commerce app, I do regret not being more intentional about my learning journey. It’s a reminder that growth comes from focused, deliberate practice—not just ambitious projects. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What about you?&lt;/strong&gt; Have you ever started a project that didn’t align with your learning goals? What did you do differently afterward? Let’s chat in the comments! &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>node</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
