<?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: ZeeshanMustfai</title>
    <description>The latest articles on DEV Community by ZeeshanMustfai (@zeeshanmustfai).</description>
    <link>https://dev.to/zeeshanmustfai</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%2F1037850%2F5a4680b4-edb2-4bc2-8e54-6cbc27683fc7.jpg</url>
      <title>DEV Community: ZeeshanMustfai</title>
      <link>https://dev.to/zeeshanmustfai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zeeshanmustfai"/>
    <language>en</language>
    <item>
      <title>Systeme.io Review 2026: The Powerful All-in-One Marketing Platform You Can't Ignore (7 Reasons Why)</title>
      <dc:creator>ZeeshanMustfai</dc:creator>
      <pubDate>Tue, 06 Jan 2026 13:52:49 +0000</pubDate>
      <link>https://dev.to/zeeshanmustfai/systemeio-review-2026-the-powerful-all-in-one-marketing-platform-you-cant-ignore-7-reasons-why-3mc1</link>
      <guid>https://dev.to/zeeshanmustfai/systemeio-review-2026-the-powerful-all-in-one-marketing-platform-you-cant-ignore-7-reasons-why-3mc1</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction to Systeme.io&lt;/strong&gt;&lt;br&gt;
In today's fast-paced digital world, online entrepreneurs need tools that are simple, affordable, and powerful. Managing multiple platforms for email marketing, sales funnels, online courses, and automation can be overwhelming and expensive. That's exactly where &lt;strong&gt;&lt;a href="https://systeme.io/?sa=sa0259448449293227bf4c1a97bd5893c240184cc8" rel="noopener noreferrer"&gt;Systeme.io&lt;/a&gt;&lt;/strong&gt; shines.&lt;br&gt;
Systeme.io is an all-in-one online business platform designed to help creators, freelancers, startups, and marketers launch and scale their businesses without technical headaches. Whether you're selling digital products, running affiliate campaigns, or building a personal brand, this platform offers everything under one roof.&lt;br&gt;
What makes it even more appealing is that you can start 100% free, making it one of the most beginner-friendly marketing tools available today. In this in-depth article, we'll explore why Systeme.io is rapidly becoming a favorite among online entrepreneurs - and why promoting it as an affiliate is a smart move.&lt;br&gt;
What Is Systeme.io and How Does It Work?&lt;br&gt;
Systeme.io is a cloud-based software created to replace multiple business tools with a single, easy-to-use system. Instead of paying separately for funnel builders, email services, course platforms, and automation tools, you get everything in one dashboard.&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%2Fnjzp0e62p1y521lcwbq5.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%2Fnjzp0e62p1y521lcwbq5.png" alt=" " width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Systeme.io Works&lt;/strong&gt;&lt;br&gt;
The platform works by allowing users to:&lt;br&gt;
Build sales funnels using drag-and-drop blocks&lt;br&gt;
Collect leads with landing pages&lt;br&gt;
Send automated email campaigns&lt;br&gt;
Sell digital products and online courses&lt;br&gt;
Manage affiliate programs&lt;br&gt;
Automate workflows without coding&lt;/p&gt;

&lt;p&gt;All of this is done through a clean interface that even non-technical users can master quickly.&lt;/p&gt;

&lt;p&gt;**Key Features of Systeme.io That Make It Stand Out&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sales Funnel Builder**&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Systeme.io includes a powerful funnel builder that allows you to create:&lt;br&gt;
Opt-in pages&lt;br&gt;
Sales pages&lt;br&gt;
Checkout pages&lt;br&gt;
Thank-you pages&lt;/p&gt;

&lt;p&gt;You can launch funnels in minutes using pre-built templates optimized for conversions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Email Marketing Automation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unlike many platforms that charge extra for email features, Systeme.io includes:&lt;br&gt;
Unlimited email campaigns&lt;br&gt;
Visual automation workflows&lt;br&gt;
Tag-based segmentation&lt;/p&gt;

&lt;p&gt;This makes nurturing leads and converting them into customers simple and efficient.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Online Course &amp;amp; Membership Platform&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Creators can host:&lt;br&gt;
Video courses&lt;br&gt;
Membership sites&lt;br&gt;
Drip content&lt;/p&gt;

&lt;p&gt;All without needing external tools like Teachable or Thinkific.&lt;br&gt;
&lt;strong&gt;4. Built-In Affiliate Management&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can create and manage your own affiliate program directly inside Systeme.io, track commissions, and automate payouts - perfect for scaling your business.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Payment Integrations&lt;/strong&gt;&lt;br&gt;
Systeme.io integrates smoothly with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stripe&lt;/li&gt;
&lt;li&gt;PayPal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Allowing you to accept payments globally with ease.&lt;br&gt;
Why Systeme.io Is Perfect for Beginners&lt;br&gt;
One of the biggest strengths of Systeme.io is its simplicity. The learning curve is minimal, making it ideal for beginners who want results fast.&lt;br&gt;
Beginner-Friendly Advantages&lt;br&gt;
No coding required&lt;br&gt;
Clean dashboard&lt;br&gt;
Step-by-step setup&lt;br&gt;
Free lifetime plan&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Systeme.io vs Other Marketing Platforms&lt;/strong&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%2Fcv82vcavheori2pcnlba.webp" 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%2Fcv82vcavheori2pcnlba.webp" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compared to ClickFunnels&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Much cheaper&lt;/li&gt;
&lt;li&gt;Easier to use&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Free plan available&lt;br&gt;
**&lt;br&gt;
Compared to Kajabi**&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;More affordable&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Better for affiliates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simpler automation&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Compared to Kartra&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster setup&lt;/li&gt;
&lt;li&gt;Less complex&lt;/li&gt;
&lt;li&gt;Ideal for solopreneurs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Systeme.io delivers similar functionality at a fraction of the cost.&lt;br&gt;
Why Promote Systeme.io as an Affiliate?&lt;br&gt;
Affiliate marketing is one of the best ways to earn passive income online, and Systeme.io offers a high-converting affiliate program.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Affiliate Benefits&lt;/li&gt;
&lt;li&gt;Recurring commissions&lt;/li&gt;
&lt;li&gt;Trusted brand&lt;/li&gt;
&lt;li&gt;High demand product&lt;/li&gt;
&lt;li&gt;Beginner-friendly offer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;You earn commissions every month as long as your referrals stay subscribed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Join and promote Systeme.io using this affiliate link:&lt;/strong&gt;&lt;br&gt;
 🔗 &lt;a href="https://systeme.io/?sa=sa0259448449293227bf4c1a97bd5893c240184cc8" rel="noopener noreferrer"&gt;https://systeme.io/?sa=sa0259448449293227bf4c1a97bd5893c240184cc8&lt;/a&gt;&lt;br&gt;
How to Use Systeme.io for Affiliate Marketing&lt;br&gt;
Create a free Systeme.io account&lt;br&gt;
Build a simple lead funnel&lt;br&gt;
Offer a free guide or checklist&lt;br&gt;
Promote via blog posts or social media&lt;br&gt;
Follow up with email automation&lt;/p&gt;

&lt;p&gt;This system works exceptionally well for content creators.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FAQs About Systeme.io&lt;/strong&gt;&lt;br&gt;
Is Systeme.io really free?&lt;br&gt;
Yes, Systeme.io offers a lifetime free plan with no credit card required.&lt;br&gt;
Can I use Systeme.io for affiliate marketing?&lt;br&gt;
Absolutely. It's one of the best platforms for affiliate funnels.&lt;br&gt;
Does Systeme.io support automation?&lt;br&gt;
Yes, advanced automation is included even in lower plans.&lt;br&gt;
Is Systeme.io good for beginners?&lt;br&gt;
Yes, it's designed specifically for non-technical users.&lt;br&gt;
Can I sell courses on Systeme.io?&lt;br&gt;
Yes, you can host and sell courses directly.&lt;br&gt;
Does Systeme.io work worldwide?&lt;br&gt;
Yes, it supports global payments and international users.&lt;br&gt;
Final Verdict: Is Systeme.io Worth It?&lt;br&gt;
Without a doubt, Systeme.io is one of the most powerful and affordable online business platforms available today. It simplifies entrepreneurship by combining essential tools into one intuitive system. Whether you're starting your first online venture or scaling an affiliate business, this platform delivers exceptional value.&lt;br&gt;
👉 &lt;strong&gt;Start for free and earn commissions here:&lt;/strong&gt;&lt;br&gt;
 🔗 &lt;a href="https://systeme.io/?sa=sa0259448449293227bf4c1a97bd5893c240184cc8" rel="noopener noreferrer"&gt;https://systeme.io/?sa=sa0259448449293227bf4c1a97bd5893c240184cc8&lt;/a&gt;&lt;/p&gt;

</description>
      <category>marketing</category>
      <category>systemeio</category>
      <category>ai</category>
      <category>automation</category>
    </item>
    <item>
      <title>How to create suspense in the next JS?</title>
      <dc:creator>ZeeshanMustfai</dc:creator>
      <pubDate>Sun, 22 Oct 2023 16:49:08 +0000</pubDate>
      <link>https://dev.to/zeeshanmustfai/how-to-create-suspense-in-the-next-js-456b</link>
      <guid>https://dev.to/zeeshanmustfai/how-to-create-suspense-in-the-next-js-456b</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;What is React Suspense?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
React’s Suspense component was first added to React in v16.6, which was released in 2018. Suspense handles asynchronous operations like code splitting and data fetching. In simple terms, it lets you display a fallback component until the child component is fully loaded. The code below shows React Suspense’s syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;Suspense fallback={&amp;lt;Loading /&amp;gt;}&amp;gt;
  &amp;lt;SomeComponent /&amp;gt;
&amp;lt;/Suspense&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Suspense in NextJS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F8vros7qpg7src1pw6j8a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F8vros7qpg7src1pw6j8a.png" alt="Image description" width="640" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next.js&lt;/strong&gt; supports server-side rendering, so the UI will take some time to load. In such cases, you can use Suspense to load the UI. The component in loading.js is defined as a functional component that can be exported as the default. The syntax is below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export default function Loading() {
  // You can add any UI inside Loading, including a Skeleton.
  return &amp;lt;LoadingSkeleton /&amp;gt;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Setting up our Next.js project&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-next-app@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After successfully creating of next project follow the below steps.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Removing unnecessary files and folders.&lt;/li&gt;
&lt;li&gt;Creating &lt;code&gt;Loading.js&lt;/code&gt; into the root. &lt;/li&gt;
&lt;li&gt;Fetching posts from &lt;code&gt;[Jsonplaceholder](https://jsonplaceholder.typicode.com/)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Creating a &lt;code&gt;Posts route&lt;/code&gt; into the app folder.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;async function getPosts() {
  await new Promise((resolve) =&amp;gt; setTimeout(resolve, 2000));
  let res = await fetch(
    `https://jsonplaceholder.typicode.com/posts`
  );

  return res.json();
}

async function SocialPosts() {
  let posts = await getPosts();
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h3&amp;gt;Posts&amp;lt;/h3&amp;gt;
      {posts &amp;amp;&amp;amp;
        posts.map((index) =&amp;gt; {
          return &amp;lt;li&amp;gt;{index.title}&amp;lt;/li&amp;gt;;
        })}
    &amp;lt;/div&amp;gt;
  );
}
export default SocialPosts;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is the output: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fogow7p6xm7jqhgim4a8d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fogow7p6xm7jqhgim4a8d.png" alt="Image description" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F3jli0x28ny9b6zf80uxw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F3jli0x28ny9b6zf80uxw.png" alt="Image description" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Building a loading component with Next.js and React Suspense can significantly improve the user experience of your web application. With Suspense, you can easily create loading states for data-fetching and dynamic imports, making your application more responsive and efficient.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Top 5 image carousels libraries in React JS and Next JS</title>
      <dc:creator>ZeeshanMustfai</dc:creator>
      <pubDate>Tue, 03 Oct 2023 01:39:06 +0000</pubDate>
      <link>https://dev.to/zeeshanmustfai/top-5-image-carousels-libraries-in-react-and-next-js-285f</link>
      <guid>https://dev.to/zeeshanmustfai/top-5-image-carousels-libraries-in-react-and-next-js-285f</guid>
      <description>&lt;p&gt;Today we are talking about image sliders or carousels in React JS and Next JS. In the modern world, we need image sliders or carousels in every web and mobile app for demonstration of our web key features. &lt;/p&gt;

&lt;p&gt;There are several popular React libraries for creating image carousels or sliders. These libraries make it easy to implement image carousels with various features and customization options. Here are some of the top React image carousel libraries. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;One-&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/swiper"&gt;&lt;strong&gt;Swiper&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Swiper - is the free and most modern mobile touch slider with hardware-accelerated transitions and amazing native behavior. It is intended to be used in mobile websites, mobile web apps, and mobile native/hybrid apps.&lt;/p&gt;

&lt;p&gt;Swiper is not compatible with all platforms, it is a modern touch slider that is focused only on modern apps/platforms to bring the best experience and simplicity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://swiperjs.com/demos"&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/nolimits4web/Swiper"&gt;&lt;strong&gt;Github&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Two-&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/react-slick"&gt;&lt;strong&gt;React-Slick&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;React-Slick is a popular choice for creating responsive and customizable carousels. It's built on top of the Slick carousel library and offers a wide range of options for configuration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://react-slick.neostack.com/"&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="//github.com/akiran/react-slick"&gt;&lt;strong&gt;Github&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Three-&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/react-responsive-carousel"&gt;&lt;strong&gt;React Responsive Carousel&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;React Responsive Carousel is a Powerful, lightweight, and fully customizable carousel component for React apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Features:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Responsive&lt;/li&gt;
&lt;li&gt;Mobile friendly&lt;/li&gt;
&lt;li&gt;Swipe to slide&lt;/li&gt;
&lt;li&gt;Mouse emulating touch&lt;/li&gt;
&lt;li&gt;Server-side rendering compatible&lt;/li&gt;
&lt;li&gt;Keyboard navigation&lt;/li&gt;
&lt;li&gt;Custom animation duration&lt;/li&gt;
&lt;li&gt;Autoplay w/ custom interval&lt;/li&gt;
&lt;li&gt;Infinite loop&lt;/li&gt;
&lt;li&gt;Horizontal or Vertical directions&lt;/li&gt;
&lt;li&gt;Supports images, videos, text content, or anything you want. &lt;/li&gt;
&lt;li&gt;Supports external controls&lt;/li&gt;
&lt;li&gt;Highly customizable:&lt;/li&gt;
&lt;li&gt;Custom thumbs&lt;/li&gt;
&lt;li&gt;Custom arrows&lt;/li&gt;
&lt;li&gt;Custom indicators&lt;/li&gt;
&lt;li&gt;Custom status&lt;/li&gt;
&lt;li&gt;Custom animation handlers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://react-responsive-carousel.js.org/"&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/leandrowd/react-responsive-carousel"&gt;&lt;strong&gt;Github&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Four-&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/react-multi-carousel"&gt;&lt;strong&gt;React Multi Carousel&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;React Multi Carousel is a Production-ready, lightweight fully customizable React carousel component that rocks and supports multiple items and SSR(Server-side rendering).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Server-side rendering&lt;/li&gt;
&lt;li&gt;Infinite mode&lt;/li&gt;
&lt;li&gt;Dot mode&lt;/li&gt;
&lt;li&gt;Custom animation&lt;/li&gt;
&lt;li&gt;AutoPlay mode&lt;/li&gt;
&lt;li&gt;Auto-play interval&lt;/li&gt;
&lt;li&gt;Supports images, videos, everything.&lt;/li&gt;
&lt;li&gt;Responsive&lt;/li&gt;
&lt;li&gt;Swipe to slide&lt;/li&gt;
&lt;li&gt;Mouse drag to slide&lt;/li&gt;
&lt;li&gt;Keyboard control to slide&lt;/li&gt;
&lt;li&gt;Multiple items&lt;/li&gt;
&lt;li&gt;Show/hide arrows&lt;/li&gt;
&lt;li&gt;Custom arrows/control buttons&lt;/li&gt;
&lt;li&gt;Custom dots&lt;/li&gt;
&lt;li&gt;Custom styling&lt;/li&gt;
&lt;li&gt;Accessibility support&lt;/li&gt;
&lt;li&gt;Center mode.&lt;/li&gt;
&lt;li&gt;Show the next/previous set of items partially&lt;/li&gt;
&lt;li&gt;RTL support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.junia.ai/react-multi-carousel"&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/YIZHUANG/react-multi-carousel"&gt;&lt;strong&gt;Github&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Five-&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/react-image-gallery"&gt;&lt;strong&gt;React Image Gallery&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;React image gallery is a React component for building image galleries and carousels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mobile swipe gestures&lt;/li&gt;
&lt;li&gt;Thumbnail navigation&lt;/li&gt;
&lt;li&gt;Fullscreen support&lt;/li&gt;
&lt;li&gt;Custom rendered slides&lt;/li&gt;
&lt;li&gt;RTL support&lt;/li&gt;
&lt;li&gt;Responsive design&lt;/li&gt;
&lt;li&gt;Tons of customization options&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.linxtion.com/demo/react-image-gallery/"&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/xiaolin/react-image-gallery"&gt;&lt;strong&gt;Github&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading. &lt;/p&gt;

&lt;p&gt;For more interesting content please follow me &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/zeeshan-mustfai-2bb4aaa9/"&gt;&lt;strong&gt;Linkedin&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/ZeeshanMustfai"&gt;&lt;strong&gt;Github&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>programming</category>
    </item>
    <item>
      <title>Form validation in react and next JS using Formik and Yup</title>
      <dc:creator>ZeeshanMustfai</dc:creator>
      <pubDate>Sun, 01 Oct 2023 15:56:48 +0000</pubDate>
      <link>https://dev.to/zeeshanmustfai/react-form-validation-with-formik-and-yup-4m6l</link>
      <guid>https://dev.to/zeeshanmustfai/react-form-validation-with-formik-and-yup-4m6l</guid>
      <description>&lt;p&gt;In this article, I will show you how to implement react form validation using Formik and Yup.&lt;/p&gt;

&lt;p&gt;The form has the following fields:&lt;br&gt;
Name: required&lt;br&gt;
Age: required and the maximum age limit is 50&lt;br&gt;
Email: required&lt;br&gt;
Note: we will add regex for complex email using the matches function of yup.&lt;br&gt;
Currency: required&lt;br&gt;
Note: we will also handle multi-select using yup.array().min(1).&lt;br&gt;
Terms and Conditions: required &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fy9d6ljzm3oztgfs90cm7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fy9d6ljzm3oztgfs90cm7.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Successful form submissions look like this below &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fkuv4g8g1bh3mzdx3fzwh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fkuv4g8g1bh3mzdx3fzwh.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Technology&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;react [18.2.0] + Vite &lt;/li&gt;
&lt;li&gt;formik &lt;/li&gt;
&lt;li&gt;yup&lt;/li&gt;
&lt;li&gt;material ui&lt;/li&gt;
&lt;li&gt;typescript&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Configure project&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We need to make a new React JS project using Vite and install all the above dependencies&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm install formik yup @mui/material @emotion/react @emotion/styled

or 
yarn add formik yup @mui/material @emotion/react @emotion/styled


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;After project setup &lt;br&gt;
I will make a new component for form building using material UI &lt;br&gt;
[BookingForm.tsx]&lt;/p&gt;

&lt;p&gt;There are 2 ways to implement validation using Formik &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;useFormik&lt;/li&gt;
&lt;li&gt;Formik,Field,setFieldData etc &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am using formik hook in this tutorial!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fkywohogh6pxbeho7svnv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fkywohogh6pxbeho7svnv.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is Complete file &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import {
  Button,
  Checkbox,
  FormControlLabel,
  FormHelperText,
  InputLabel,
  MenuItem,
  TextField,
} from '@mui/material';
import * as yup from 'yup';
import { useFormik } from 'formik';

const style = {textAlign: 'start'}
const formStyle = {marginBottom: '10px'}
const currencies = [
  {
    value: 'USD',
    label: '$',
  },
  {
    value: 'EUR',
    label: '€',
  },
  {
    value: 'BTC',
    label: '฿',
  },
  {
    value: 'JPY',
    label: '¥',
  },
];

const BookingForm = () =&amp;gt; {
  const validationSchema = yup.object({
    name: yup.string().required('Name is required'),
    age: yup
      .number()
      .required('Age is required')
      .max(50, 'Your age must less from fifty'),
    email: yup
      .string()
      .email('Enter a valid email')
      .required('Email is required'),
    currency: yup.string().required('Currency is required'),
    terms: yup.bool().oneOf([true], 'You must accept the terms and conditions')
  });

  const formik = useFormik({
    initialValues: {
      name: '',
      age: '',
      email: '',
      currency: '',
      terms: false,
    },

    validationSchema,
    onSubmit: (values) =&amp;gt; {
      alert(JSON.stringify(values, null, 2));
    },
  });

  return (
    &amp;lt;form onSubmit={formik.handleSubmit}&amp;gt;
      &amp;lt;div style={formStyle}&amp;gt;
        &amp;lt;InputLabel sx={style}&amp;gt;Name&amp;lt;/InputLabel&amp;gt;
        &amp;lt;TextField
          type='text'
          name='name'
          placeholder='name*'
          size='small'
          value={formik.values.name}
          onChange={formik.handleChange}
          onBlur={formik.handleBlur}
          error={formik.touched.name &amp;amp;&amp;amp; Boolean(formik.errors.name)}
          helperText={formik.touched.name &amp;amp;&amp;amp; formik.errors.name}
          fullWidth
        /&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div style={formStyle}&amp;gt;
        &amp;lt;InputLabel sx={style}&amp;gt;Age&amp;lt;/InputLabel&amp;gt;
        &amp;lt;TextField
          type='number'
          name='age'
          placeholder='age*'
          size='small'
          value={formik.values.age}
          onChange={formik.handleChange}
          onBlur={formik.handleBlur}
          error={formik.touched.age &amp;amp;&amp;amp; Boolean(formik.errors.age)}
          helperText={formik.touched.age &amp;amp;&amp;amp; formik.errors.age}
          fullWidth
        /&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div style={formStyle}&amp;gt;
        &amp;lt;InputLabel sx={style}&amp;gt;Email&amp;lt;/InputLabel&amp;gt;
        &amp;lt;TextField
          type='text'
          name='email'
          placeholder='email'
          size='small'
          value={formik.values.email}
          onChange={formik.handleChange}
          onBlur={formik.handleBlur}
          error={formik.touched.email &amp;amp;&amp;amp; Boolean(formik.errors.email)}
          helperText={formik.touched.email &amp;amp;&amp;amp; formik.errors.email}
          fullWidth
        /&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div style={formStyle}&amp;gt;
        &amp;lt;InputLabel sx={style}&amp;gt;Currency&amp;lt;/InputLabel&amp;gt;
        &amp;lt;TextField
          id='filled-select-currency'
          select
          defaultValue='EUR'
          name='currency'
          fullWidth
          size='small'
          value={formik.values.currency}
          onChange={formik.handleChange}
          onBlur={formik.handleBlur}
          error={formik.touched.currency &amp;amp;&amp;amp; Boolean(formik.errors.currency)}
          helperText={formik.touched.currency &amp;amp;&amp;amp; formik.errors.currency}
        &amp;gt;
          {currencies.map((option) =&amp;gt; (
            &amp;lt;MenuItem key={option.value} value={option.value}&amp;gt;
              {option.label}
            &amp;lt;/MenuItem&amp;gt;
          ))}
        &amp;lt;/TextField&amp;gt;
      &amp;lt;/div&amp;gt;

      &amp;lt;div style={{textAlign: 'start'}}&amp;gt;
        &amp;lt;FormControlLabel
          control={
            &amp;lt;Checkbox
              name='terms'
              onChange={formik.handleChange}
              value={formik.values.terms}
              onBlur={formik.handleBlur}
            /&amp;gt;
          }
          label='Terms and condition'
          name='terms'
        /&amp;gt;
        {formik.errors.terms &amp;amp;&amp;amp; &amp;lt;FormHelperText sx={{color: 'red'}}&amp;gt;{formik.errors.terms}&amp;lt;/FormHelperText&amp;gt;}
      &amp;lt;/div&amp;gt;

      &amp;lt;Button type='submit' variant='contained' sx={{ mt: '15px' }}&amp;gt;
        Submit
      &amp;lt;/Button&amp;gt;
    &amp;lt;/form&amp;gt;
  );
};

export default BookingForm;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Then use BookingForm component into Main file called App.tsx&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F04f06za80htvxb0wtnun.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F04f06za80htvxb0wtnun.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, You can fork my GitHub repository for this lesson&lt;br&gt;
&lt;a href="https://github.com/ZeeshanMustfai/formik-validation" rel="noopener noreferrer"&gt;https://github.com/ZeeshanMustfai/formik-validation&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                     **_ Thanks _**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Follow me on Linkedin &lt;br&gt;
&lt;a href="https://www.linkedin.com/in/zeeshan-mustfai-2bb4aaa9/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/zeeshan-mustfai-2bb4aaa9/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow me on github&lt;br&gt;
&lt;a href="https://github.com/ZeeshanMustfai" rel="noopener noreferrer"&gt;https://github.com/ZeeshanMustfai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>form</category>
      <category>nextjs</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Top 5 form validation libraries in React JS and Next JS</title>
      <dc:creator>ZeeshanMustfai</dc:creator>
      <pubDate>Sat, 30 Sep 2023 00:11:32 +0000</pubDate>
      <link>https://dev.to/zeeshanmustfai/top-5-form-validation-libraries-in-react-js-and-next-js-2i50</link>
      <guid>https://dev.to/zeeshanmustfai/top-5-form-validation-libraries-in-react-js-and-next-js-2i50</guid>
      <description>&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Formik&lt;/strong&gt;
is a widely used library for building forms in React, next, and Vuejs as well. It includes a built-in form validation system that is easy to use and integrates well with React components. Formik provides a high level of flexibility and customization.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GitHub Repository: &lt;a href="https://github.com/formium/formik"&gt;https://github.com/formium/formik&lt;/a&gt;)&lt;br&gt;
Installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i formik
yarn add formik
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;React Hook Form&lt;/strong&gt;
is another popular library for building forms in React. It focuses on providing a simple and efficient way to manage form state and validation using React hooks.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GitHub Repository: &lt;a href="https://github.com/react-hook-form/react-hook-form"&gt;https://github.com/react-hook-form/react-hook-form&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i react-hook-form
yarn add react-hook-form
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Final Form&lt;/strong&gt;
is a form state management and validation library for React. It emphasizes performance and flexibility and provides a wide range of plugins for additional functionality.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GitHub Repository: &lt;a href="https://github.com/final-form/final-form"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i final-form
yarn add final-form
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Redux Form&lt;/strong&gt;
If you're already using Redux in your React application, Redux Form can be a good choice. It integrates well with Redux to manage form state and validation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GitHub Repository: &lt;a href="https://github.com/erikras/redux-form"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i redux-form
yarn add redux-form
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Yup&lt;/strong&gt;
While not a form library itself, Yup is a schema validation library that works seamlessly with Formik and other form libraries. You can define your validation schema with Yup and use it to validate form inputs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GitHub Repository: &lt;a href="https://github.com/jquense/yup"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i npm i yup
yarn add npm i yup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>formik</category>
      <category>react</category>
      <category>nextjs</category>
      <category>yup</category>
    </item>
  </channel>
</rss>
