<?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: Sushil Bajracharya</title>
    <description>The latest articles on DEV Community by Sushil Bajracharya (@sushilbajracharya01).</description>
    <link>https://dev.to/sushilbajracharya01</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%2F216154%2Fa3663fb7-4c20-4104-ab52-39c3989583ba.jpg</url>
      <title>DEV Community: Sushil Bajracharya</title>
      <link>https://dev.to/sushilbajracharya01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sushilbajracharya01"/>
    <language>en</language>
    <item>
      <title>WebLines reached 100 users</title>
      <dc:creator>Sushil Bajracharya</dc:creator>
      <pubDate>Thu, 26 Mar 2026 04:12:40 +0000</pubDate>
      <link>https://dev.to/sushilbajracharya01/weblines-reached-100-users-5e6n</link>
      <guid>https://dev.to/sushilbajracharya01/weblines-reached-100-users-5e6n</guid>
      <description>&lt;p&gt;I checked WebLines in the Chrome Web Store today and noticed it had reached 100 users. Didn’t expect that to feel this nice, but it does 😊.&lt;br&gt;
It’s a small number, but seeing something I built being used by people... feels a bit special.&lt;/p&gt;

&lt;p&gt;If you’re one of those 100, thank you.&lt;/p&gt;




&lt;p&gt;I’m not planning anything big or complicated with it.&lt;br&gt;
Just want to keep improving it slowly, adding stuff that helps, and keeping it simple.&lt;/p&gt;

&lt;p&gt;If you’ve used it, I’d love to know what you think.&lt;/p&gt;

&lt;p&gt;Even small feedback helps — what felt good, what didn’t, or even things that just felt unnecessary.&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%2F4his5kmj37jgeqnjt6xf.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%2F4his5kmj37jgeqnjt6xf.png" alt="Screenshot of the weblines in action" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>chromedev</category>
      <category>uiutility</category>
      <category>celebrate</category>
    </item>
    <item>
      <title>How I Published My First Chrome Extension</title>
      <dc:creator>Sushil Bajracharya</dc:creator>
      <pubDate>Sun, 27 Jul 2025 15:42:16 +0000</pubDate>
      <link>https://dev.to/sushilbajracharya01/how-i-published-my-first-chrome-extension-1dcb</link>
      <guid>https://dev.to/sushilbajracharya01/how-i-published-my-first-chrome-extension-1dcb</guid>
      <description>&lt;p&gt;I’ve always wanted to build and publish tools that make life a little easier, for myself and for others. Starting with a Chrome Extension felt right. Chrome is the most widely used browser in the world, and the Web Store makes publishing beginner-friendly with a low one-time developer fee of just $5 USD.&lt;/p&gt;

&lt;p&gt;In Nepal, we don’t have easy access to international payment methods like Mastercard, Visa, or PayPal. While some banks have introduced “Dollar Cards,” Chrome Web Store does not support them at this time.&lt;/p&gt;

&lt;p&gt;Luckily, I have an awesome brother, Sagun, who lives abroad. He stepped in and made the payment for me. If you have awesome people living abroad, too, try asking if they could help you with the fees. If you don’t have anyone abroad to help, there are services in Nepal that assist with Mastercard payments. For example, Technology Channel (Bishworaj Poudel) might be able to help you with this.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tips: It’s a good idea to create a new Google account specifically for your Chrome developer account. Keeping it separate helps keep things organized and secure.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I registered a Trader account on the Chrome Web Store. Identity verification was simple, but location verification required a recent utility bill or a government-issued document with both name and address. I wasn’t sure what to use initially, but fortunately, Nepal's driver’s license has all the necessary details. I submitted it, and within two days, my Trader account was verified.&lt;/p&gt;

&lt;p&gt;The rest of the process went smoothly. I designed the extension’s logo, screenshots, promo image, and other visuals using Figma, making sure they matched the dimensions recommended by the Chrome Web Store.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tip: Stick to the official size guidelines to avoid image rejection or awkward cropping.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once the assets were ready, I uploaded them along with the extension, filled out the basic information, and submitted them for review.&lt;/p&gt;

&lt;p&gt;Since WebLines is a simple tool with minimal permissions, it was approved in just 2 days. Those two days felt long. I was really pumped to see my first extension live.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🔗 Try &lt;a href="https://chromewebstore.google.com/detail/web-lines/kmflghiffkojoldjcogebflmlnfhkdcb?hl=en-US&amp;amp;utm_source=ext_sidebar" rel="noopener noreferrer"&gt;WebLines&lt;/a&gt; for yourself: Visit the Chrome Web Store&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you’re building something or have questions about publishing your extension, feel free to ask down in the comments. And if you’ve already launched one, share it. I’d love to see what you’ve made!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WebLines: Your On-Screen Ruler for Perfect Alignment</title>
      <dc:creator>Sushil Bajracharya</dc:creator>
      <pubDate>Sun, 27 Jul 2025 15:13:21 +0000</pubDate>
      <link>https://dev.to/sushilbajracharya01/weblines-your-on-screen-ruler-for-perfect-alignment-24ba</link>
      <guid>https://dev.to/sushilbajracharya01/weblines-your-on-screen-ruler-for-perfect-alignment-24ba</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Check out &lt;a href="https://chromewebstore.google.com/detail/web-lines/kmflghiffkojoldjcogebflmlnfhkdcb?hl=en-US&amp;amp;utm_source=ext_sidebar" rel="noopener noreferrer"&gt;WebLines&lt;/a&gt; on the Chrome Web Store and follow along with the story below.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Back story
&lt;/h2&gt;

&lt;p&gt;While working on a complex design project recently, I found myself obsessing over alignment—tweaking absolute positions and spending more time than I’d like to admit, and then, half-jokingly, I told my teammates:&lt;br&gt;
"I think I need a ruler to check if these elements are in line!"&lt;/p&gt;

&lt;p&gt;That random joke sparked an idea:&lt;br&gt;
"What if I could have a ruler inside my web browser?"&lt;br&gt;
A tool that lets me draw straight lines across a webpage to check alignment quickly and visually.&lt;/p&gt;

&lt;p&gt;I immediately searched the Chrome Web Store, and as expected, someone had already thought of it.&lt;br&gt;
But instead of feeling discouraged, I saw an opportunity. I thought:&lt;br&gt;
“Why not build my version with my twist?”&lt;br&gt;
I tried a few amazing existing extensions, read their reviews, and noticed some areas where the user experience could be improved. So I built a version that addressed those gaps and better fit my workflow—hoping it might help others too. That’s how WebLines was created.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is WebLines?
&lt;/h2&gt;

&lt;p&gt;WebLines is a simple Chrome Extension that allows you to draw horizontal or vertical lines across any webpage. These lines help you visually verify whether elements are aligned properly. No more squinting or nudging with guesswork.&lt;/p&gt;

&lt;p&gt;You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Draw multiple lines anywhere on the screen&lt;/li&gt;
&lt;li&gt;Customize line color and opacity&lt;/li&gt;
&lt;li&gt;Remove lines easily&lt;/li&gt;
&lt;li&gt;Manage everything from a clean, user-friendly popup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s designed to be lightweight, intuitive, and genuinely helpful. Something I wish I had when I was aligning those divs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🚀 Try WebLines&lt;br&gt;
Install &lt;a href="https://chromewebstore.google.com/detail/web-lines/kmflghiffkojoldjcogebflmlnfhkdcb?hl=en-US&amp;amp;utm_source=ext_sidebar" rel="noopener noreferrer"&gt;WebLines&lt;/a&gt; from the Chrome Web Store&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;WebLines started as a random joke, but turned into a tool I now rely on whenever I need to check visual alignment. It’s simple, reliable, and does exactly what I built it for.&lt;br&gt;
If you’re a developer or person who values precision, give WebLines a try, and if you do, I’d love to hear your feedback. Let me know how it felt using it so I can keep improving it for everyone.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tooling</category>
      <category>chromedevtool</category>
      <category>programming</category>
    </item>
    <item>
      <title>Why is Semantic Versioning and how to add it in your React application</title>
      <dc:creator>Sushil Bajracharya</dc:creator>
      <pubDate>Wed, 07 May 2025 20:29:14 +0000</pubDate>
      <link>https://dev.to/sushilbajracharya01/why-is-semantic-versioning-and-how-to-add-it-in-your-react-application-5608</link>
      <guid>https://dev.to/sushilbajracharya01/why-is-semantic-versioning-and-how-to-add-it-in-your-react-application-5608</guid>
      <description>&lt;p&gt;As your React application evolves—introducing new features, fixing bugs, and optimizing performance—it becomes increasingly important to track these changes systematically. This is where Semantic Versioning (SemVer) comes into play.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Semantic Versioning?
&lt;/h2&gt;

&lt;p&gt;Semantic Versioning is a versioning scheme that assigns meaningful version numbers to software releases, following the format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MAJOR.MINOR.PATCH
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each segment tells a story:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MAJOR&lt;/strong&gt;: For breaking changes or major architectural shifts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MINOR&lt;/strong&gt;: For adding features in a backward-compatible way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PATCH&lt;/strong&gt;: For backward-compatible bug fixes or small improvements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, version 2.1.3 implies the second major release, with one minor feature update, and three patches since the last minor update.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use Semantic Versioning in React Apps?
&lt;/h2&gt;

&lt;p&gt;Using SemVer brings structure and predictability. It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Helps your team and users understand the impact of updates.&lt;/li&gt;
&lt;li&gt;Supports better version control across environments (like staging vs. production).&lt;/li&gt;
&lt;li&gt;Encourages good development habits.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Adding Version Info to Your React Project
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Manually Updating the Version&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In every React project (created via create-react-app, Vite, etc.), there’s a package.json file where the project version is stored:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// package.json
{
  "name": "my-react-app",
  "version": "1.0.0",
  ...
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every time you push a meaningful change—be it a bug fix, feature addition, or breaking change—update this version number accordingly.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Displaying Version Number in the UI&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You might want to display the version number somewhere in your app—maybe in the footer, an “About” section, or for debugging purposes.&lt;/p&gt;

&lt;p&gt;Here’s how you can do it:&lt;/p&gt;

&lt;p&gt;a. Access the Version from package.json&lt;/p&gt;

&lt;p&gt;You can import the version number like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// src/components/Version.tsx
import React from 'react';
import packageJson from '../../package.json';

const Version = () =&amp;gt; {
  return (
    &amp;lt;p style={{ fontSize: '0.8rem', color: '#888' }}&amp;gt;
      Version: {packageJson.version}
    &amp;lt;/p&amp;gt;
  );
};

export default Version;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This works as long as your project setup supports importing JSON (it does by default in most React setups).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;b. Use It in Your App&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// src/App.tsx or wherever appropriate
import React from 'react';
import Version from './components/Version';

function App() {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h1&amp;gt;My Awesome React App&amp;lt;/h1&amp;gt;
      {/* Other components */}
      &amp;lt;footer&amp;gt;
        &amp;lt;Version /&amp;gt;
      &amp;lt;/footer&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default App;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now your version will be visible in the UI—super handy for both users and developers to keep track of the release they’re using.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;Semantic Versioning may seem like a small detail, but it plays a big role in keeping your development process sane, especially as your app grows. By pairing it with visible version info in your UI, you make life easier for users, teammates, and even your future self.&lt;/p&gt;

&lt;p&gt;It’s a lightweight step that adds clarity and professionalism to your project.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>programming</category>
      <category>react</category>
    </item>
    <item>
      <title>How to Clean Up node_modules Folders and Free Gigabytes of Space</title>
      <dc:creator>Sushil Bajracharya</dc:creator>
      <pubDate>Wed, 07 May 2025 19:56:04 +0000</pubDate>
      <link>https://dev.to/sushilbajracharya01/how-to-clean-up-nodemodules-folders-and-free-gigabytes-of-space-4a0e</link>
      <guid>https://dev.to/sushilbajracharya01/how-to-clean-up-nodemodules-folders-and-free-gigabytes-of-space-4a0e</guid>
      <description>&lt;p&gt;Working on multiple Node.js projects often leaves your system buried under countless node_modules folders. These directories can quietly eat up a surprising amount of disk space. Manually removing them is not just boring — it’s time-consuming. In this post, we’ll explore fast, efficient ways to delete all node_modules folders recursively and free up your system.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Note:&lt;/strong&gt; This guide uses Unix-based commands and is intended for macOS and Linux. Windows users can follow along using WSL or Git Bash. npkill works on all platforms.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Basic Command to Delete node_modules
&lt;/h2&gt;

&lt;p&gt;The simplest way to delete all node_modules directories from the current folder and its subdirectories is by using the find command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;find . -name 'node_modules' -type d -prune -exec rm -rf '{}' \
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command searches for directories named node_modules and deletes them recursively. However, if there are many directories to delete, it can take a long time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Improving the Command
&lt;/h2&gt;

&lt;p&gt;To improve the efficiency of the command, you can use the + at the end of the exec command, which will combine multiple delete operations into one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;While this command is faster because it batches the delete operations, it might not provide real-time feedback. It can be problematic if you want to monitor the progress or resume the operation in case it gets interrupted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making the Command Resumable
&lt;/h2&gt;

&lt;p&gt;To make the deletion process resumable and provide real-time feedback, you can use the \; at the end of the exec command and add the -print option:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With this command, each node_modules directory is deleted individually, and the deleted directory is printed to the console. This approach makes it easier to see the progress and resume the operation if it gets interrupted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage Note
&lt;/h2&gt;

&lt;p&gt;Before running any of these commands, make sure to navigate to the root directory of your projects. You can do this using the cd command. Alternatively, you can specify the project directory directly in the find command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd /path/to/your/project
find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Or without changing the directory:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;find /path/to/your/project -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Interactive Method
&lt;/h2&gt;

&lt;p&gt;Prefer a visual interface over terminal commands? npkill is a great tool for scanning and deleting node_modules folders interactively.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;npkill will display a list of node_modules directories with their sizes, and you can select which ones to delete interactively.&lt;/p&gt;

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

&lt;p&gt;Cleaning up node_modules directories is a quick win for reclaiming valuable disk space. Whether you lean toward a command-line solution or prefer something more interactive, the methods above make it easy to manage and remove these space-hungry folders. Pick the approach that fits your workflow best — and keep your development environment clean, fast, and clutter-free.&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>npm</category>
      <category>terminal</category>
    </item>
    <item>
      <title>Making clean API requests to the Backend with URLSearchParams in React.</title>
      <dc:creator>Sushil Bajracharya</dc:creator>
      <pubDate>Tue, 02 Jan 2024 18:16:53 +0000</pubDate>
      <link>https://dev.to/sushilbajracharya01/making-clean-api-requests-to-the-backend-with-urlsearchparams-in-react-3egp</link>
      <guid>https://dev.to/sushilbajracharya01/making-clean-api-requests-to-the-backend-with-urlsearchparams-in-react-3egp</guid>
      <description>&lt;p&gt;In the earlier days of crafting URLs in my React projects, I leaned on the trusty technique of String Interpolation for wrangling those pesky URL parameters. Sure, it got the job done, but deep down, it felt a bit off, like wearing mismatched socks – functional working, yet not quite right. The code lacked the finesse I yearned for, and as the project grew, the unease lingered. If you've ever sensed that discomfort when using String Interpolation for URL parameters, you're not alone. Let's explore a more fitting solution that not only does the job but does it with a touch of elegance. &lt;br&gt;
&lt;a href="https://i.giphy.com/media/JqDeI2yjpSRgdh35oe/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/JqDeI2yjpSRgdh35oe/giphy.gif" alt="rachel tada" width="480" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Enter ---&amp;gt; a cleaner and more structured approach using &lt;strong&gt;URLSearchParams&lt;/strong&gt; in React.&lt;/p&gt;

&lt;p&gt;"URLSearchParams" is a built-in JavaScript object that allows you to work with the query string of a URL. It provides methods for appending, deleting, getting, and setting key-value pairs in the query string. &lt;/p&gt;

&lt;p&gt;Here is how we can utilize URLSearchParams for clean API.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; const queryParams = new URLSearchParams();
 queryParams.append("limit", "10");
 queryParams.append("offset", offset);
 if (isActive) {
   queryParams.append("active", "true");
 }

 const params = `?${queryParams.toString()}`;
 const url = `${api}${params}`;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We create a new instance of URLSearchParams to manage our URL parameters. The append method adds parameters to the URLSearchParams instance. Here, we add "limit" with a static value of "10," "offset" with a dynamic value, and "active" conditionally. The if (isActive) statement ensures that the "active" parameter is appended only if the isActive variable is truthy. We construct the query string using queryParams.toString(). Finally, we combine the base API URL (api) with the constructed query string to form the complete URL.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Structured Parameters: Each parameter is appended individually, enhancing readability.&lt;/li&gt;
&lt;li&gt;Conditional Appending: Conditions for appending parameters are clearer.&lt;/li&gt;
&lt;li&gt;Dynamic Values: Easily accommodates dynamic values.&lt;/li&gt;
&lt;li&gt;Automatic Encoding: Takes care of encoding special characters, reducing the risk of errors.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While both approaches achieve the same result, the URLSearchParams approach is cleaner, more readable, and easier to maintain, especially as our project complexity increases. If you have found a better way, feel free to share it in the COMMENTS. Do REACT and FOLLOW ME to hear more from me.&lt;/p&gt;

&lt;p&gt;REFERENCE: &lt;br&gt;
&lt;a href="https://medium.com/swlh/urlsearchparams-in-javascript-df524f705317" rel="noopener noreferrer"&gt;UrlSearchParams in JS&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.shecodes.io/athena/27068-what-is-urlsearchparams-in-javascript" rel="noopener noreferrer"&gt;What is urlsearchparams in javascript&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>frontend</category>
      <category>cleancode</category>
      <category>react</category>
    </item>
    <item>
      <title>Impact of letter casing on design</title>
      <dc:creator>Sushil Bajracharya</dc:creator>
      <pubDate>Mon, 01 Jan 2024 20:20:04 +0000</pubDate>
      <link>https://dev.to/sushilbajracharya01/impact-of-letter-casing-on-design-4cb7</link>
      <guid>https://dev.to/sushilbajracharya01/impact-of-letter-casing-on-design-4cb7</guid>
      <description>&lt;p&gt;In my latest web project, I opted to use material tailwind component library to aid me in development. In the package, I encountered uppercase words in buttons and it left me a bit confused about this design choice. To know more about how I should feel seeing this UPPERCASED Design, I delved deep into my research on letter casing.&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%2Ff5bpljsjk8jrr28xcork.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%2Ff5bpljsjk8jrr28xcork.png" alt="Logo of material Tailwind" width="180" height="93"&gt;&lt;/a&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%2Fdr3xrgghextakpe0dixn.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%2Fdr3xrgghextakpe0dixn.png" alt="Button from material tailwind package" width="260" height="129"&gt;&lt;/a&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%2Fw93na6wrqrrpp462v4pe.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%2Fw93na6wrqrrpp462v4pe.png" alt="Buttons in materail tailwind" width="685" height="174"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;According to my research, I found there to be 3 standard letter casings, &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sentence casing&lt;/li&gt;
&lt;li&gt;Title Casing&lt;/li&gt;
&lt;li&gt;ALL CAPS&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Design is so simple, that's why it is so complicated. - Paul Rand&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Sentence casing&lt;br&gt;
Sentence casing is taught to us by our teachers in schools and colleges. We capitalize the first letter of the sentence. The sentence case looks casual, cleaner, and improves readability.&lt;br&gt;
When to use:&lt;br&gt;
a. Sentence casing is more legible, we use it for long texts such as paragraphs, long text contents, etc. It is easier to scan and read.&lt;br&gt;
b. Can be used freely, it is causal and clean.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Title Casing&lt;br&gt;
Title casing is capitalizing every word in a sentence. This casing was popularized by Apple. In the title case, each word is given emphasis and words stand out, but it makes reading/scanning of text slower and more difficult. &lt;br&gt;
When to use:&lt;br&gt;
a. As the title suggests, we can use it in titles and subtitles.&lt;br&gt;
b. Can be used in navigation elements like links. &lt;br&gt;
c. Not to be used in labels, buttons, and long texts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ALL CAPS&lt;br&gt;
ALL CAPS is capitalizing each letter of the word. This makes the word stand out in the UI but it makes readability hard.&lt;br&gt;
I found it interesting to know that there are different theories on why it is difficult to read. One theory states that SINCE LETTERS ARE CAPITAL, it is difficult for us to distinguish the letters as all the letters have the same height, we lose the height advantage. Another source counters the claim saying it is difficult to read not because of shape but because of lack of practice.&lt;br&gt;
ALL CAPS means important, it should not be overused and it should not be where reading long text is required. &lt;br&gt;
When to use:&lt;br&gt;
a. When we want to emphasize and direct the user's attention to a specific element or piece of information.&lt;br&gt;
b. We can use it in UI buttons, tabs, headings, titles, and labels where text length is shorter than one line.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&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%2Fcm34omro6b29fd1k6isn.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%2Fcm34omro6b29fd1k6isn.png" alt="Labels and buttons all caps" width="475" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Based on my findings, it turns out that having ALL CAPS in buttons isn't as frowned upon. Due to this unsettlement, I got to learn about the cases and share my understanding. If you have anything you want to share, feel free to express it in the COMMENTS. Do REACT and FOLLOW ME to hear more from me.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Follow me if you want to know, why I decided not to use Tailwind Material and created my own custom components.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;REFERENCES: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://uxplanet.org/why-letter-casing-is-important-to-consider-during-design-decisions-50402acd0a4e" rel="noopener noreferrer"&gt;Why letter casing is important to consider during design decisions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://uxdesign.cc/writing-styles-for-a-better-ui-and-ux-cdc35b457444" rel="noopener noreferrer"&gt;Writing styles for a better UI and UX
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[All Caps on UI: Good or Bad?
]:(&lt;a href="https://uxdworld.com/2017/12/30/all-caps-on-ui-good-or-bad/" rel="noopener noreferrer"&gt;https://uxdworld.com/2017/12/30/all-caps-on-ui-good-or-bad/&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ux</category>
      <category>ui</category>
    </item>
    <item>
      <title>Sharp or Rounded Borders in Design</title>
      <dc:creator>Sushil Bajracharya</dc:creator>
      <pubDate>Mon, 01 Jan 2024 18:19:15 +0000</pubDate>
      <link>https://dev.to/sushilbajracharya01/sharp-or-rounded-borders-in-design-4j7a</link>
      <guid>https://dev.to/sushilbajracharya01/sharp-or-rounded-borders-in-design-4j7a</guid>
      <description>&lt;p&gt;I was working on a web project that involved creating an examination system tailored for pilots. Since childhood, I have regarded the profession of a pilot as a serious and meticulous undertaking, so, my primary focus was on achieving a design that exuded professionalism and seriousness. During the design process, the consideration of incorporating sharp edges caught my attention, prompting me to delve deeper into the intricacies of when to opt for sharp borders versus rounded ones. As I delve into my discoveries and understanding of rounded and sharp border design, allow me to share the insights I've gathered.&lt;/p&gt;

&lt;p&gt;The choice between Sharp and Rounded styles can significantly impact the visual appeal, usability, and emotional response of a website. The unexpected revelation emerged when I realized the subtle link between sharp designs and my childhood. From early warnings about sharp objects like scissors, pencils, thorns, scales, and more, the association of sharp designs with strictness and seriousness became remarkably apparent. In light of my research, I've compiled a list outlining the distinctions between sharp and rounded design styles. Here's a breakdown of the differences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Aesthetic Appeal&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sharp Borders: Sharp edges and straight lines convey a sense of precision and modernity. They often contribute to a clean and minimalistic aesthetic, making elements stand out with a bold and defined look.&lt;/p&gt;

&lt;p&gt;Rounded Borders: On the other hand, rounded borders offer a softer and more approachable feel. They can create a friendly and inviting atmosphere, which might be well-suited for websites with a focus on user engagement or content consumption.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Brand Identity&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sharp Borders: Companies with a high-tech or professional image might benefit from sharp borders to reinforce a sense of precision and efficiency. This style can align well with brands in industries such as technology, finance, or consulting.&lt;/p&gt;

&lt;p&gt;Rounded Borders: Brands aiming for a warm and inclusive image, such as those in the hospitality, health, or lifestyle sectors, may find that rounded borders help communicate a friendlier and more welcoming identity.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Usability and Accessibility&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sharp Borders: In some cases, sharp borders can be advantageous for creating a clear visual hierarchy. They can help define distinct sections and guide users through the content more efficiently, especially when combined with contrasting colors.&lt;/p&gt;

&lt;p&gt;Rounded Borders: Rounded edges are often associated with a softer user interface. This can reduce visual friction, making it easier for users to focus on content without distractions. Rounded borders can also contribute to a more tactile and touch-friendly design, enhancing the overall user experience, especially on mobile devices.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Device Responsiveness&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sharp Borders: If your website needs to adapt to various screen sizes and resolutions, sharp borders can be more forgiving in terms of maintaining a polished appearance. Straight lines tend to scale well, preserving the integrity of the design across different devices.&lt;/p&gt;

&lt;p&gt;Rounded Borders: While rounded borders can be responsive as well, they may require additional considerations to ensure a consistent and appealing look, especially on smaller screens.&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%2F6d9ly4sb2hz57gk6d7qq.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%2F6d9ly4sb2hz57gk6d7qq.png" alt="Picture of sharpe and rounded border design" width="800" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope my insights will guide your decisions while you design your next project. In addition to the insights shared, another valuable lesson was the consistency of the design, whether you lean towards a serious tone with sharp edges or a friendlier feel with rounded borders, you must follow it throughout your project. Feel free to share your thoughts in the comments. &lt;/p&gt;

&lt;p&gt;Currently, I'm delving into the impact of letter casing on design, and if you're eager to explore this and other captivating insights in the realm of design and development, consider following me for regular updates.&lt;/p&gt;

</description>
      <category>ux</category>
      <category>uxdesign</category>
      <category>ui</category>
    </item>
    <item>
      <title>Builtin token generator in Node</title>
      <dc:creator>Sushil Bajracharya</dc:creator>
      <pubDate>Tue, 23 May 2023 17:37:34 +0000</pubDate>
      <link>https://dev.to/sushilbajracharya01/builtin-token-generator-in-node-4a51</link>
      <guid>https://dev.to/sushilbajracharya01/builtin-token-generator-in-node-4a51</guid>
      <description>&lt;p&gt;&lt;em&gt;For those who are already familiar with the concept, you can skip the explanation and directly access the code snippet: Go to Code. For those who are interested in learning about it, I encourage you to continue reading below.&lt;/em&gt;&lt;/p&gt;

&lt;h2 id="Introduction"&gt;Introduction&lt;/h2&gt;

&lt;p&gt;In modern web applications, JSON Web Token (JWT) authentication is a widely adopted method to secure APIs and authenticate users. The tokens are generated using cryptographic algorithms, such as HMAC or RSA, among others, to ensure both their uniqueness and security. These algorithms play a crucial role in generating secure tokens that can be trusted for authentication and data integrity.&lt;br&gt;
For the generation of these tokens, it requires a secret. secret is a key that is used sign and verify the integrity of the token. &lt;/p&gt;

&lt;p&gt;Choosing a strong secret key is crucial for secure token verification. Using simple and easily guessable secrets like "secret123" or "catdog123" can make the token verification process vulnerable to unauthorized intruders. In the early stages of my Node.js journey, I had used such secrets. It is important to select a unique and complex secret key to enhance the security of the tokens and in this blog post, we will explore how to generate secure random token easily in the console using NodeJs and it's builtin crypto module.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;:&lt;br&gt;
Before proceeding, make sure you have Node.js installed on your machine. You can download the latest version from the official Node.js website (&lt;a href="https://nodejs.org" rel="noopener noreferrer"&gt;https://nodejs.org&lt;/a&gt;).&lt;/p&gt;

&lt;h2 id="code"&gt;Code&lt;/h2&gt;

&lt;p&gt;To generate a secure secret key, you can follow these steps:&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="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;crypto&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;randomBytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;hex&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Copy the above line of code:&lt;/li&gt;
&lt;li&gt;Open terminal or console.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;node&lt;/code&gt; on the terminal or console.&lt;/li&gt;
&lt;li&gt;Paste the code.&lt;/li&gt;
&lt;li&gt;Press enter to run the code.&lt;/li&gt;
&lt;/ol&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%2F72e7cycxbo4dc9jlrdnx.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%2F72e7cycxbo4dc9jlrdnx.png" alt="example of running crypto to create secret" width="800" height="105"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remember to save and bookmark this blog post so that you can easily refer back to it whenever you need to generate a secret key for your future projects.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>node</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
