<?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: Dipu Raj</title>
    <description>The latest articles on DEV Community by Dipu Raj (@techlab).</description>
    <link>https://dev.to/techlab</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F400491%2F7578270f-b82a-4f7e-8254-28006206c332.jpeg</url>
      <title>DEV Community: Dipu Raj</title>
      <link>https://dev.to/techlab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/techlab"/>
    <language>en</language>
    <item>
      <title>Why I'm Still Maintaining a 10-Year-Old jQuery Plugin</title>
      <dc:creator>Dipu Raj</dc:creator>
      <pubDate>Mon, 02 Nov 2026 12:56:44 +0000</pubDate>
      <link>https://dev.to/techlab/why-im-still-maintaining-a-10-year-old-jquery-plugin-2ajk</link>
      <guid>https://dev.to/techlab/why-im-still-maintaining-a-10-year-old-jquery-plugin-2ajk</guid>
      <description>&lt;p&gt;If you're a modern frontend developer, you might wonder - why would anyone need to maintain a jQuery plugin in 2026?&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's see what's wrong with jQuery
&lt;/h2&gt;

&lt;p&gt;There is nothing wrong with jQuery. It is a good package — &lt;strong&gt;but it was created for a different era.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today, many of the problems that jQuery solved years ago can be handled directly by JavaScript.&lt;/p&gt;

&lt;p&gt;Modern JavaScript has come a long way. We now have powerful browser APIs, Promises, ES modules, TypeScript, modern build tools, and versatile frameworks like React, Vue, Svelte, and others.&lt;/p&gt;

&lt;p&gt;For a new project, there are many cases where you simply don't need jQuery anymore.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then... Why does jQuery still exist?
&lt;/h2&gt;

&lt;p&gt;Because &lt;strong&gt;software doesn't disappear when technology changes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example, an application that has been running for a decade or more may have thousands of lines of JavaScript, multiple jQuery plugins, custom jQuery components, and business-critical workflows built around them.&lt;/p&gt;

&lt;p&gt;And migration isn't always as simple as replacing &lt;code&gt;$()&lt;/code&gt; with &lt;code&gt;querySelector()&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It could mean moving from:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;jQuery → React / Vue / Angular&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that means replacing jQuery can also mean &lt;strong&gt;changing the architecture&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's not just replacing a library.&lt;/p&gt;

&lt;p&gt;You're potentially changing the entire programming model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Imperative DOM manipulation → Declarative UI&lt;/li&gt;
&lt;li&gt;jQuery plugins → Components&lt;/li&gt;
&lt;li&gt;jQuery events → Component events and state&lt;/li&gt;
&lt;li&gt;Existing HTML/JavaScript → New application architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a new application, that may be the right decision.&lt;/p&gt;

&lt;p&gt;But for an existing application, it can be a significant engineering effort.&lt;/p&gt;

&lt;h2&gt;
  
  
  So why am I still maintaining a jQuery plugin?
&lt;/h2&gt;

&lt;p&gt;I've been maintaining a jQuery plugin called &lt;strong&gt;&lt;a href="https://github.com/techlab/jquery-smartwizard" rel="noopener noreferrer"&gt;jQuery SmartWizard&lt;/a&gt;&lt;/strong&gt; for more than 10 years.&lt;/p&gt;

&lt;p&gt;And after all these years, &lt;strong&gt;jQuery SmartWizard&lt;/strong&gt; is still being downloaded, served, and used.&lt;/p&gt;

&lt;p&gt;The main reason is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;People are still using it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It still gets roughly &lt;strong&gt;50,000 npm downloads per month&lt;/strong&gt; and receives &lt;strong&gt;millions of requests through CDNs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For a small, independent, open-source UI component, those numbers are meaningful.&lt;/p&gt;

&lt;p&gt;Somewhere, developers are still maintaining applications that depend on a little plugin I wrote years ago.&lt;/p&gt;

&lt;p&gt;And that makes me ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Is there still value in maintaining software that people are using?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For me, the answer is yes.&lt;/p&gt;

&lt;h2&gt;
  
  
  SmartWizard is evolving too
&lt;/h2&gt;

&lt;p&gt;Since there are still users depending on it, that also inspired me to create the &lt;strong&gt;&lt;a href="https://github.com/techlab/smart-wizard" rel="noopener noreferrer"&gt;next generation of SmartWizard&lt;/a&gt;&lt;/strong&gt; using a more modern approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TypeScript&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modern build tooling&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better package architecture&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automated testing&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cleaner source code&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Framework-friendly packages&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved documentation&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The existing jQuery version can continue serving applications that depend on it, while the newer architecture provides a path toward modern development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technology moves forward. Software doesn't always have to be thrown away.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>jquery</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Deploying a Node.js Application on AWS EC2 with Apache</title>
      <dc:creator>Dipu Raj</dc:creator>
      <pubDate>Fri, 02 Jan 2026 12:19:39 +0000</pubDate>
      <link>https://dev.to/techlab/deploying-a-nodejs-application-on-aws-ec2-with-apache-3djj</link>
      <guid>https://dev.to/techlab/deploying-a-nodejs-application-on-aws-ec2-with-apache-3djj</guid>
      <description>&lt;p&gt;Deploying a Node.js application to a server can feel daunting if you're just getting started with infrastructure. While managed services like Heroku or AWS Elastic Beanstalk exist, sometimes you want &lt;strong&gt;full control&lt;/strong&gt; over your setup — especially if you're hosting multiple apps on the same machine.&lt;/p&gt;

&lt;p&gt;In this guide, I'll walk you through how I deployed a Node.js web app to an &lt;strong&gt;AWS EC2 instance&lt;/strong&gt;, kept it running reliably, and served it through &lt;strong&gt;Apache as a reverse proxy&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 This approach is still valid, but some tools and versions have evolved. I’ve updated commands to use modern Node versions.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🧱 What We’ll Do
&lt;/h2&gt;

&lt;p&gt;We’ll break the deployment into three phases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Install Node.js &amp;amp; set up the app&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep the app running with a process manager&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configure Apache as a reverse proxy&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🚀 Step 1: Install Node.js &amp;amp; Upload Your App
&lt;/h2&gt;

&lt;p&gt;SSH into your EC2 instance:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
ssh ubuntu@your.ec2.ip.address
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>node</category>
      <category>aws</category>
      <category>ec2</category>
      <category>apache</category>
    </item>
    <item>
      <title>jQuery Smart Wizard - A free and open source step wizard plugin for jQuery</title>
      <dc:creator>Dipu Raj</dc:creator>
      <pubDate>Mon, 08 Jun 2020 15:22:36 +0000</pubDate>
      <link>https://dev.to/techlab/jquery-smart-wizard-a-free-and-open-source-step-wizard-plugin-for-jquery-40ie</link>
      <guid>https://dev.to/techlab/jquery-smart-wizard-a-free-and-open-source-step-wizard-plugin-for-jquery-40ie</guid>
      <description>&lt;p&gt;jQuery Smart Wizard is a step wizard plugin for jQuery. Provides a neat and stylish interface for your forms, checkout screen, registration steps, etc. Easy implementation, Bootstrap compatibility, customizable toolbars, themes, events and Ajax support are few of the features.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://techlaboratory.net/jquery-smartwizard"&gt;http://techlaboratory.net/jquery-smartwizard&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/techlab/jquery-smartwizard"&gt;https://github.com/techlab/jquery-smartwizard&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>jquery</category>
      <category>webdev</category>
      <category>wizard</category>
    </item>
    <item>
      <title>jQuery Smart Tab - A cool jQuery tab control plugin </title>
      <dc:creator>Dipu Raj</dc:creator>
      <pubDate>Tue, 02 Jun 2020 15:25:05 +0000</pubDate>
      <link>https://dev.to/techlab/jquery-smart-tab-a-cool-jquery-tab-control-plugin-1n4o</link>
      <guid>https://dev.to/techlab/jquery-smart-tab-a-cool-jquery-tab-control-plugin-1n4o</guid>
      <description>&lt;p&gt;A free and open source jQuery plugin for easy implementation of tab interface with features like Ajax contents, themes, animation effects, event support&lt;/p&gt;

&lt;p&gt;&lt;a href="http://techlaboratory.net/jquery-smarttab"&gt;http://techlaboratory.net/jquery-smarttab&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/techlab/jquery-smarttab"&gt;https://github.com/techlab/jquery-smarttab&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jQuery</category>
      <category>javascript</category>
      <category>tab</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
