<?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: Himanshu Jangid, हिमांशु जाँगिड़ </title>
    <description>The latest articles on DEV Community by Himanshu Jangid, हिमांशु जाँगिड़  (@himanshurajora).</description>
    <link>https://dev.to/himanshurajora</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%2F2758608%2F6bea8fd1-2bde-4ed8-8d1c-dd641968359f.jpeg</url>
      <title>DEV Community: Himanshu Jangid, हिमांशु जाँगिड़ </title>
      <link>https://dev.to/himanshurajora</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/himanshurajora"/>
    <language>en</language>
    <item>
      <title>The programming passion is melting</title>
      <dc:creator>Himanshu Jangid, हिमांशु जाँगिड़ </dc:creator>
      <pubDate>Thu, 19 Mar 2026 09:47:18 +0000</pubDate>
      <link>https://dev.to/himanshurajora/the-programming-passion-is-melting-2jeb</link>
      <guid>https://dev.to/himanshurajora/the-programming-passion-is-melting-2jeb</guid>
      <description>&lt;p&gt;I have two important things to say:&lt;/p&gt;

&lt;h2&gt;
  
  
  I don't enjoy programming anymore
&lt;/h2&gt;

&lt;p&gt;Every day, these AI agents get better and better. They are present in nearly every IDE and in all parts of the IDE. It all started with Copilot, which would only suggest a few lines when you left a comment.&lt;/p&gt;

&lt;p&gt;I remember turning it off because I wanted to write some code myself, and it was getting in the way. A small part of code completion wouldn't have helped me at all. But things are changing now. It's not just finishing a line anymore; it's finishing a whole project with just a few prompts.&lt;/p&gt;

&lt;p&gt;I adopted this technology because I thought I would stay behind in the community, and to some extent I was right, but I don't enjoy programming anymore. We used to get stuck on a problem for hours and then work hard for a long time to figure it out. That made us happy. We always spent a lot of time making games, game engines, and compilers because they were the noble things to do. &lt;/p&gt;

&lt;p&gt;But now they're only a few prompts away. You have an idea, a PRD, and a few prompts. That's it. You don't have to write code anymore. And you don't have any fun anymore.&lt;/p&gt;

&lt;h2&gt;
  
  
  There don't seem to be any juniors or seniors anymore.
&lt;/h2&gt;

&lt;p&gt;Life for software engineers was very different just two or three years ago. We had tools and learned how to use them well. One thing we learned took a lot of time, but it helped us grow as engineers. This is how the idea of Senior and Junior engineers came about. &lt;/p&gt;

&lt;p&gt;It seems like new people don't have to spend a lot of time learning how to code. They can just write one prompt and get code like a pro. These AI models are getting better every day, and people who worked hard to improve their skills are being challenged by people who are just starting out. I think that people who spend more time improving their skills over the years are still better engineers and can make better software, even when using AI tools. But does that even matter now?&lt;/p&gt;

&lt;p&gt;I know this post went in a negative direction, and I'd like to hear what you think. What do you think?&lt;/p&gt;

&lt;p&gt;Thanks for taking the time to read.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ai</category>
      <category>software</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Yield Keyword JavaScript - With Real life use-cases</title>
      <dc:creator>Himanshu Jangid, हिमांशु जाँगिड़ </dc:creator>
      <pubDate>Wed, 18 Mar 2026 23:03:52 +0000</pubDate>
      <link>https://dev.to/himanshurajora/yield-keyword-javascript-with-real-life-use-casesmd-1hbj</link>
      <guid>https://dev.to/himanshurajora/yield-keyword-javascript-with-real-life-use-casesmd-1hbj</guid>
      <description>&lt;p&gt;The yield keyword in JavaScript is primarily associated with generators, which are a special type of function that can be paused and resumed. Generators are useful for working with sequences of data, asynchronous programming, and creating iterators. Here are some real-life use cases and examples:&lt;/p&gt;

&lt;h2&gt;
  
  
  Lazy Evaluation and Infinite Sequences:
&lt;/h2&gt;

&lt;p&gt;Generators allow for lazy evaluation, meaning they produce values on-demand rather than generating them all at once. This is particularly useful when working with infinite sequences.&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="kd"&gt;function&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nf"&gt;infiniteSequence&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sequence&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;infiniteSequence&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sequence&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 0&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sequence&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 1&lt;/span&gt;

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Asynchronous Programming:
&lt;/h2&gt;

&lt;p&gt;Generators can be used with asynchronous code to simplify complex asynchronous flows. This is often seen in combination with promises.&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;fetchData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nf"&gt;fetchDataGenerator&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="nf"&gt;fetchData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://api.example.com/data1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="nf"&gt;fetchData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://api.example.com/data2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;data2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;generator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;fetchDataGenerator&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;result1&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;generator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nx"&gt;result1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;result2&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;generator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;result2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;generator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Custom Iterators:
&lt;/h2&gt;

&lt;p&gt;Generators can be used to create custom iterators, allowing you to define how a loop should iterate over a custom data structure.&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;myObject&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nf"&gt;iterator&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;a&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;b&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;c&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;for (const value of myObject.iterator()) {&lt;br&gt;
  console.log(value);&lt;br&gt;
}&lt;/p&gt;
&lt;h2&gt;
  
  
  Recursive Algorithms:
&lt;/h2&gt;

&lt;p&gt;Generators can be used to implement recursive algorithms with a more iterative style, avoiding maximum call stack size errors.&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="kd"&gt;function&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nf"&gt;recursiveGenerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;yield&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nf"&gt;recursiveGenerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nf"&gt;recursiveGenerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The yield keyword, in these examples, is essential for pausing the execution of the generator function and passing values in and out of the generator, enabling more readable and manageable asynchronous and iterative code.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Boost your productivity with TMUX</title>
      <dc:creator>Himanshu Jangid, हिमांशु जाँगिड़ </dc:creator>
      <pubDate>Wed, 11 Mar 2026 19:53:47 +0000</pubDate>
      <link>https://dev.to/himanshurajora/boost-your-productivity-with-tmux-2ce4</link>
      <guid>https://dev.to/himanshurajora/boost-your-productivity-with-tmux-2ce4</guid>
      <description>&lt;p&gt;Hello engineers,&lt;/p&gt;

&lt;p&gt;What do you think I came up with today? Indeed, I have been following &lt;a href="https://dev.to/himanshurajora/the-hundred-things-principle-37o3"&gt;the 100 things principle to this day&lt;/a&gt;; I know what is good for me, and I am doing it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tmux
&lt;/h3&gt;

&lt;p&gt;This is definitely what I learned today.&lt;/p&gt;

&lt;p&gt;What? The answer to the question "What" is that it is a terminal multiplexer, which means that you can have the feel of multiple terminals in just one.&lt;/p&gt;

&lt;p&gt;How? It's simple; we just need to install the cli tool. In my case because I am an Arch user&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I use arch btw&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I simply install it with the command &lt;code&gt;pacman -S tmux&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Why? There is no doubt as to why I will use it in the future. It simply saves me a significant amount of time. That concludes it. I've recently started using Lunar Vim. Just another neovim configuration, which is, of course, a vim configuration using lua and vimscript.&lt;/p&gt;

&lt;p&gt;Okay, back to the point. I just like what tmux is doing. There are only about 5-10 simple commands to learn. You will save at least half an hour per day, and more importantly, you will save yourself and your mind from being frustrated every time you go back and forth in the terminal with the mouse. Because even &lt;code&gt;Ctrl + Tab&lt;/code&gt; does not work in my case, I had to come up with another solution.&lt;/p&gt;

&lt;p&gt;Okay, let's get started. I am assuming you have already figured out how to install &lt;strong&gt;Tmux&lt;/strong&gt; on your system, whether it is deb, rpm, or something else. (I use Arch, by the way).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Creating a session A session is simply a collection of terminal sessions. You can combine multiple terminals into a single session. To do this, use the following command: &lt;code&gt;tmux new -s &amp;lt;session name&amp;gt;&lt;/code&gt;. You will be instantly sent to that session and will see a status bar. To exit the session, press &lt;code&gt;Ctrl B&lt;/code&gt;, then &lt;code&gt;d&lt;/code&gt;. This command will detach the session.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Creating a new window: To create a new window in a session, press &lt;code&gt;Ctrl + B&lt;/code&gt; now. Press, then &lt;code&gt;c&lt;/code&gt;. You will have a new Windows that is ready for use.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Close a window: by pressing &lt;code&gt;x&lt;/code&gt; and then &lt;code&gt;y&lt;/code&gt;, or &lt;code&gt;n&lt;/code&gt; to cancel your decision.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Switching sessions: &lt;code&gt;Press + s&lt;/code&gt;; you'll know what to do.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Switching windows: Press &lt;code&gt;+w&lt;/code&gt;, you will see the list, and you can toggle from there.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Other commands&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;n&lt;/code&gt; to the next &lt;code&gt;window + l&lt;/code&gt; to toggle the window (not sure about it)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think that's all I have to say about T-mux; you can look up the rest on Google.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;#Linux&lt;/code&gt;  &lt;code&gt;#TMux&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;By Himanshu Jangid&lt;/p&gt;

&lt;p&gt;check out, &lt;a href="https://dev.to/himanshurajora/i-built-a-platform-to-help-developers-find-open-source-projects-that-need-contributors-2e54"&gt;LFC&lt;/a&gt;, my open-source contributors finding tool: &lt;a href="https://lookingforcontributors.web.app/" rel="noopener noreferrer"&gt;https://lookingforcontributors.web.app/&lt;/a&gt; &lt;/p&gt;

</description>
      <category>cli</category>
      <category>linux</category>
      <category>productivity</category>
      <category>tooling</category>
    </item>
    <item>
      <title>The Hundred Things Principle</title>
      <dc:creator>Himanshu Jangid, हिमांशु जाँगिड़ </dc:creator>
      <pubDate>Tue, 10 Mar 2026 10:13:34 +0000</pubDate>
      <link>https://dev.to/himanshurajora/the-hundred-things-principle-37o3</link>
      <guid>https://dev.to/himanshurajora/the-hundred-things-principle-37o3</guid>
      <description>&lt;h2&gt;
  
  
  Abstract
&lt;/h2&gt;

&lt;p&gt;The aim of this document is to present the Hundred Things Principle. Humans accumulate and retain a lot of knowledge over the course of a lifetime. We are built by nature in such a way that our memory never runs out, at least it has not yet been confirmed in any research. The hundred things principle is based on the idea that what is the minimum number of things a new human being should learn each day to accomplish great achievement. This method has not yet been applied or experimented on any human being but now after this has been written, I hope some people will try it on themselves and share their feedback. All the facts and knowledge stated in this document do not have any scientific support and are only based on personal experiences. So, one should only take it as an opinion.&lt;/p&gt;

&lt;h3&gt;
  
  
  Related Definitions
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Thing -&lt;/strong&gt; A thing can be an object, task, knowledge, fact, field, discussion, technology or anything that adds up in our brain and fills brain storage. It may or may not consist of subparts. The subparts can be standalone things if they are big enough to fill some space in our brain otherwise they will be included in the parent thing itself and will not be treated as separate. A thing should not take more than 2 to 5 minutes to be learnt.&lt;/p&gt;

&lt;p&gt;Himanshu Jangid&lt;/p&gt;




&lt;h2&gt;
  
  
  What should we count as a thing?
&lt;/h2&gt;

&lt;p&gt;This is the most obvious question to be asked by a person who wants to adopt this principle as his/her daily routine. What should be counted as a thing and what should not be? Is it okay to count something as a thing and its subparts as different things? What should be the minimum criteria for something to be called a thing?&lt;/p&gt;

&lt;p&gt;It has already been specified what should be counted as a thing in the definitions section in the first section of the document. We will focus on the minimum criteria of a thing to be a thing.&lt;/p&gt;

&lt;p&gt;There are many cases that are raised during the specification of what should fit into the thing category. It depends on various criteria&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Type of the thing&lt;/li&gt;
&lt;li&gt;Size of the thing&lt;/li&gt;
&lt;li&gt;Number of sub things&lt;/li&gt;
&lt;li&gt;Relative knowledge&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Based on type of thing&lt;/strong&gt; A thing can be of various types&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fact&lt;/li&gt;
&lt;li&gt;Topic&lt;/li&gt;
&lt;li&gt;Subject&lt;/li&gt;
&lt;li&gt;Video or Movie&lt;/li&gt;
&lt;li&gt;Article&lt;/li&gt;
&lt;li&gt;Observation&lt;/li&gt;
&lt;li&gt;Podcast or Recorded session&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now these types can be directly associated with the possibility of a thing to be called a thing.&lt;/p&gt;

&lt;p&gt;If it is a fact then it should be big enough to be recorded. One line facts should not be considered as a thing instead a group of many facts should be.&lt;/p&gt;

&lt;p&gt;If it is a topic then it should be at least a paragraph big, and should contain meaningful data.&lt;/p&gt;

&lt;p&gt;A subject can not be called a thing if it is too big; instead its subtopics can be individual things.&lt;/p&gt;

&lt;p&gt;Videos and movies can be called a thing directly and you can break it into many things.&lt;/p&gt;

&lt;p&gt;Articles are the best examples of what should be called a thing, they contain facts, data, knowledge and meaningful information. They have a good size and enough knowledge to fill some part of the brain.&lt;/p&gt;

&lt;p&gt;Observation is something that we observe during our work or sometimes simply sit and look. An observation can be called a thing if you associate some additional knowledgeable information with it.&lt;/p&gt;

&lt;p&gt;Podcasts and recorded sessions are also proper things and can be broken down into things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Based on size of thing&lt;/strong&gt; A thing should be not more than 2-5 minutes long to be learnt less than or more than it should not be considered as a standalone thing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Based on number of sub things&lt;/strong&gt; If a something is small and it has more than 2 sub things then it is a thing otherwise it is not. If something is big then it can be broken in subparts. And if something already has subparts and they are also big then they can be broken too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Based on Relative knowledge&lt;/strong&gt; If something is not big enough but something else is related to it then the combination of both of those can be considered as a thing.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is not a thing?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Clearing up the misunderstanding
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;What we think a thing is&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Though it is already clear from the above section “What should we count as a thing” that whatever that is not being counted as a thing is also not a thing. But it’s more complex than you think. We might say it when your father tells you something and it is big enough than it is also a thing. Or you can also say that you are in your school or college and you discuss something with them, this can also be a thing.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;What a thing actually is&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;In reality things are different in The Hundred Things Principle. When you walk around and get some knowledge, it may teach you something, it may even fill some space in your brain. But according to the principle, It will be only a thing when you know exactly that you are going to learn something. Because then you can keep a record of it. This principle is all about documentation. You must have a record of what you have learnt over a period of time. So the best way to learn according to this principle is that you sit somewhere or just walk with a particular frequency, you keep a book, a laptop, a mobile or any knowledge resource in your hands and learn them. And continuously keep a record of it. You store the names and a little description about the things you learnt with a reference so that you can revise it again if needed.&lt;/p&gt;

&lt;p&gt;Now you know exactly what it is and you can easily categorise “thing” and “not a thing”.&lt;/p&gt;




&lt;h2&gt;
  
  
  How should we find new things?
&lt;/h2&gt;

&lt;p&gt;The common issues raised while learning are - What should you learn? Where should you learn from? How should you find new things to learn from?&lt;/p&gt;

&lt;h3&gt;
  
  
  Solutions
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Join a community&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;The best and quick solution to this problem is to join communities. Communities have people of similar fields and knowledge with level. Someone might have more knowledge than others. This is a simple hierarchical structure and in this kind of system you can see people above you about what they have learnt or have been learning. You can ask them where to find solutions? and what are the things you should try? It is the same as keeping a meteor. A community guides people throughout their journey. But there is a special case of what to do if you are the root node in this hierarchy, this means you are the top level member of the community. In that case you can join a bigger community or you can join other relative or non relative communities where you are not a root node. This is the best suitable method for most people.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Become an explorer&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Though the above method is suitable for most people, the most recommended method for a person is to become an explorer. An explorer is someone who is not dependent on a single source for his growth rather he always keeps exploring for new alternatives and mentors. During this process an explorer learns most things on his own rather than from specific sources. An explorer does not trust anyone; he always tries to find the best solution by looking at more than one source's views.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The advantages for an explorer&lt;/strong&gt; The advantages of becoming an explorer is that you always have better knowledge than others who followed a specific structure. An explorer learns everything on his own; this makes his character more solid and makes himself a good teacher. An explorer has more potential, he is more creative and artistic, he is a critical thinker and picks the most isolated parts of the topic that everyone ignores.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The disadvantages for an explorer&lt;/strong&gt; The fact that an explorer does not trust anyone gives him a doubting nature. This makes himself isolated, people don’t usually like these kinds of people. Explorer focuses more on learning than living that makes him unhealthy. He does not like people who do not think like him, this makes others almost hate him. He might be bad at focusing as his habit is to look at multiple things at a time.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;What should you actually do&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;In simple words rather than becoming either a community member or explorer; you should become both. This will help you to be both friendly in nature and good at knowledge and different opinions.&lt;/p&gt;




&lt;h2&gt;
  
  
  How many things should we learn?
&lt;/h2&gt;

&lt;p&gt;Now comes the best and most crucial part. How many things should you learn each day to become wise?&lt;/p&gt;

&lt;p&gt;Let’s go step by step : (For going from one step to another. A time gap of at least 10 days should be there)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start with 5 things per day (each taking 2-5 minutes). In the worst case it takes 50 minutes of your day. Now 50 minutes per day is not something that can make you fast, wise and productive. So we have to go one step further.&lt;/li&gt;
&lt;li&gt;Now do 10 things per day (each taking 2-5 minutes) in the worst case it takes 100 minutes. This is not the end, let's move further.&lt;/li&gt;
&lt;li&gt;Now do 20 things per day. Now it takes 200 minutes. It is still a manageable time. Let’s go a step further.&lt;/li&gt;
&lt;li&gt;Now do 40 things per day. It takes 400 minutes. There is a problem now. We know that we don’t have this much time left after all day of working, eating, attending meetings, classes in colleges or schools, doing off campus work like homework or refactoring of code (if you are a programmer). We can’t avoid these issues, but we can borrow some extra time from other tasks. Let’s say 10 minutes from lunch, taking less sleep (6-7hr per day is enough) etc. If we somehow borrow 30 minutes and we reduce the size of things from worst case 5 minutes to best case 2 or 3 minutes. You can now manage things for the 40 things case.&lt;/li&gt;
&lt;li&gt;Now let’s move directly to our actual target that comes from the heading. We are not at 100 things a day in the worst case it is 500 minutes that means at least the straight 8 hours a day. To be at this level, you have to be so efficient with your time management skills. One has to finish his office work in time and then focus on learning things to get to this level. One will at least need 4-6months to be truly at this stage of learning.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Extra tips
&lt;/h2&gt;

&lt;p&gt;For learning we need to have dedication, focus and mental strength. To get these powers one should practice yoga and meditation, and should maintain good health for keeping the mental strength at a higher level. Keep in mind that everything takes time. You might feel exhausted or tired but doing this multiple times and focusing only on things will make you almost addicted to them. Then, your golden period will start. You will have better and sharper knowledge than others. You will be confident with your words and beliefs. You will think more deeply and critically, looking at all the aspects of any problem. So these were some extra tips that you can follow to make yourself better at “The Hundred things principle”.&lt;/p&gt;




&lt;h2&gt;
  
  
  Thanks
&lt;/h2&gt;

&lt;p&gt;Thanks for reading this document. I hope that you will benefit from “The Hundred Things Principle”. You can even go further than 100 things, it totally depends on you. I have thought about almost all the aspects of this method and it seems to be good. I am trying this on myself too. Once again, Thanks for reading! &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%2Fr53mzegpmeq7p1rutg7e.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%2Fr53mzegpmeq7p1rutg7e.png" alt="smiley" width="64" height="64"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please checkout my other blog: &lt;a href="https://dev.to/himanshurajora/i-built-a-platform-to-help-developers-find-open-source-projects-that-need-contributors-2e54"&gt;https://dev.to/himanshurajora/i-built-a-platform-to-help-developers-find-open-source-projects-that-need-contributors-2e54&lt;/a&gt;&lt;/p&gt;

</description>
      <category>learning</category>
      <category>discuss</category>
      <category>community</category>
    </item>
    <item>
      <title>Learn how to add markdown editor to your website</title>
      <dc:creator>Himanshu Jangid, हिमांशु जाँगिड़ </dc:creator>
      <pubDate>Tue, 10 Mar 2026 10:02:01 +0000</pubDate>
      <link>https://dev.to/himanshurajora/learn-how-to-add-markdown-editor-to-your-website-eh5</link>
      <guid>https://dev.to/himanshurajora/learn-how-to-add-markdown-editor-to-your-website-eh5</guid>
      <description>&lt;p&gt;I've got a new markdown editor for writing my blogs. &lt;strong&gt;It includes the following features:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ordered lists&lt;/li&gt;
&lt;li&gt;Bullets.&lt;/li&gt;
&lt;li&gt;Code&lt;/li&gt;
&lt;li&gt;Typography&lt;/li&gt;
&lt;li&gt;Table&lt;/li&gt;
&lt;li&gt;Various Text Styles&lt;/li&gt;
&lt;li&gt;HTML Support&lt;/li&gt;
&lt;li&gt;Links&lt;/li&gt;
&lt;li&gt;Images and much more.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  To make something like it for yourself in react, Follow these steps:
&lt;/h3&gt;

&lt;p&gt;Install the markdown editor react component&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install react-markdown-editor-lite --save&lt;/code&gt; also a markdown parser &lt;code&gt;npm install markdown-it --save&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now add this to your react component&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// import react, react-markdown-editor-lite, and a markdown parser you like&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;ReactDOM&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-dom&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;MarkdownIt&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;markdown-it&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;MdEditor&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-markdown-editor-lite&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;// import style manually&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-markdown-editor-lite/lib/index.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Register plugins if required&lt;/span&gt;
&lt;span class="c1"&gt;// MdEditor.use(YOUR_PLUGINS_HERE);&lt;/span&gt;

&lt;span class="c1"&gt;// Initialize a markdown parser&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;mdParser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;MarkdownIt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="cm"&gt;/* Markdown-it options */&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Finish!&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;handleEditorChange&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;html&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;handleEditorChange&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;html&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;props&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;MdEditor&lt;/span&gt; &lt;span class="na"&gt;style&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;500px&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;renderHTML&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;mdParser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;onChange&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleEditorChange&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;For using with Next JS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;dynamic&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/dynamic&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-markdown-editor-lite/lib/index.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;MdEditor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;dynamic&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-markdown-editor-lite&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;ssr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;MdEditor&lt;/span&gt; &lt;span class="na"&gt;style&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;500px&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;renderHTML&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="cm"&gt;/* Render function */&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.npmjs.com/package/react-markdown-editor-lite" rel="noopener noreferrer"&gt;Click Here to Learn more&lt;/a&gt; &lt;a href="https://www.npmjs.com/package/react-markdown-editor-lite" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/react-markdown-editor-lite&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why should you use a markdown editor
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;It is lighter than common WYSIWYG editors.&lt;/li&gt;
&lt;li&gt;Based on Markdown language&lt;/li&gt;
&lt;li&gt;Fast Blog editing without much thinking&lt;/li&gt;
&lt;li&gt;HTML Support&lt;/li&gt;
&lt;li&gt;Automatic linkify the links (make them clickable)&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Thanks For Reading
&lt;/h4&gt;

&lt;h1&gt;
  
  
  react #markdown
&lt;/h1&gt;

&lt;p&gt;Check out my open-source contributor finding tool at &lt;a href="https://lookingforcontributors.web.app/" rel="noopener noreferrer"&gt;https://lookingforcontributors.web.app/&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I built a platform to help developers find open source projects that need contributors</title>
      <dc:creator>Himanshu Jangid, हिमांशु जाँगिड़ </dc:creator>
      <pubDate>Mon, 09 Mar 2026 18:47:08 +0000</pubDate>
      <link>https://dev.to/himanshurajora/i-built-a-platform-to-help-developers-find-open-source-projects-that-need-contributors-2e54</link>
      <guid>https://dev.to/himanshurajora/i-built-a-platform-to-help-developers-find-open-source-projects-that-need-contributors-2e54</guid>
      <description>&lt;p&gt;Many developers want to contribute to open source, but one of the biggest problems is &lt;strong&gt;figuring out where to start&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You might have experienced this before:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You want to contribute to open source&lt;/li&gt;
&lt;li&gt;You search GitHub for projects&lt;/li&gt;
&lt;li&gt;There are thousands of repositories&lt;/li&gt;
&lt;li&gt;You don't know which ones actually need contributors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For beginners, this can be frustrating. Even experienced developers sometimes struggle to find projects that are actively looking for help.&lt;/p&gt;

&lt;p&gt;So I decided to build a small platform to make this easier.&lt;/p&gt;




&lt;h2&gt;
  
  
  Introducing LookingForContributors
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;LookingForContributors&lt;/strong&gt;, a platform where open source maintainers can share their projects and developers can discover projects that need contributors.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://lookingforcontributors.web.app/" rel="noopener noreferrer"&gt;https://lookingforcontributors.web.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;br&gt;
&lt;strong&gt;connect developers who want to contribute with projects that need contributors.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What the platform helps with
&lt;/h2&gt;

&lt;p&gt;With LookingForContributors you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discover open source projects looking for contributors&lt;/li&gt;
&lt;li&gt;Find projects based on skill level (beginner → advanced)&lt;/li&gt;
&lt;li&gt;Help maintainers reach more contributors&lt;/li&gt;
&lt;li&gt;Make it easier for students and new developers to start contributing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many people want real-world development experience, and open source is one of the best ways to get it.&lt;/p&gt;

&lt;p&gt;This platform tries to make that first step easier.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I built this
&lt;/h2&gt;

&lt;p&gt;A lot of people in developer communities ask questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;How do I start contributing to open source?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Where can I find beginner-friendly projects?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Which projects actually need contributors?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even though GitHub has millions of repositories, it's still difficult to &lt;strong&gt;discover the right projects&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I wanted to create a place where maintainers can say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“We’re looking for contributors.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And developers can easily discover those opportunities.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;The project is built using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;TailwindCSS&lt;/li&gt;
&lt;li&gt;Firebase&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Feedback welcome
&lt;/h2&gt;

&lt;p&gt;This project is still evolving, and I would really appreciate feedback from the developer community.&lt;/p&gt;

&lt;p&gt;Things I'd love feedback on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Features that would make this more useful&lt;/li&gt;
&lt;li&gt;Better ways to discover projects&lt;/li&gt;
&lt;li&gt;Ideas for GitHub integrations&lt;/li&gt;
&lt;li&gt;Suggestions for improving the platform&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can check it out here:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://lookingforcontributors.web.app/" rel="noopener noreferrer"&gt;https://lookingforcontributors.web.app/&lt;/a&gt;&lt;/p&gt;

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

</description>
      <category>beginners</category>
      <category>github</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
