<?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: Haroon Ahmad</title>
    <description>The latest articles on DEV Community by Haroon Ahmad (@ranaharoon3222).</description>
    <link>https://dev.to/ranaharoon3222</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%2F454745%2Fb2f38beb-1170-4c2d-b2e2-7421cc26f1ff.png</url>
      <title>DEV Community: Haroon Ahmad</title>
      <link>https://dev.to/ranaharoon3222</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ranaharoon3222"/>
    <language>en</language>
    <item>
      <title>🚀 Meet Covry — Your New AI Cover Letter Sidekick</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Sun, 01 Jun 2025 09:45:28 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/meet-covry-your-new-cover-letter-sidekick-4079</link>
      <guid>https://dev.to/ranaharoon3222/meet-covry-your-new-cover-letter-sidekick-4079</guid>
      <description>&lt;p&gt;Hey folks! 👋&lt;br&gt;&lt;br&gt;
I just launched &lt;strong&gt;Covry&lt;/strong&gt;, a smart, time-saving tool that helps you &lt;strong&gt;generate tailored cover letters in seconds&lt;/strong&gt; — without the stress.&lt;/p&gt;

&lt;p&gt;Whether you're applying on Upwork, LinkedIn, or a job board, Covry makes it easy to stand out with letters that sound like &lt;em&gt;you&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;✅ Quick &amp;amp; personalized.&lt;br&gt;
✅ Edit Directly.&lt;br&gt;
✅ Personalized for Shopify, Wordpress, Custom Website etc...&lt;br&gt;
✅ Built for real-world jobs.&lt;br&gt;
✅ No templates. Just results.&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://covry.websolave.com/" rel="noopener noreferrer"&gt;Try Covry Now&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love your thoughts &amp;amp; feedback!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
    <item>
      <title>🧨 Builder.ai’s Fall: A Cautionary Tale for Startups</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Mon, 26 May 2025 07:15:41 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/builderais-fall-a-cautionary-tale-for-startups-328f</link>
      <guid>https://dev.to/ranaharoon3222/builderais-fall-a-cautionary-tale-for-startups-328f</guid>
      <description>&lt;p&gt;I’m deeply saddened to share that &lt;strong&gt;Builder.ai&lt;/strong&gt; – once a &lt;strong&gt;$1.3 billion unicorn&lt;/strong&gt; backed by Microsoft and other investors – has &lt;strong&gt;filed for insolvency in the UK&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Builder.ai (formerly Engineer.ai), founded in 2016, promised to let anyone build custom apps “as easy as ordering pizza” using AI. Over the years, it raised &lt;strong&gt;~$450–500M&lt;/strong&gt; from big-name backers and promised rapid growth. But in &lt;strong&gt;May 2025&lt;/strong&gt;, the company abruptly ran out of cash, entering bankruptcy proceedings – leaving employees and the tech community stunned.&lt;/p&gt;




&lt;h2&gt;
  
  
  📅 Timeline of Key Events
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;2016:&lt;/strong&gt; Founded by Sachin Dev Duggal as &lt;em&gt;Engineer.ai&lt;/em&gt;, offering AI-powered no-code app development
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2019:&lt;/strong&gt; &lt;em&gt;WSJ&lt;/em&gt; reports their “AI” was mostly human developers; firm rebrands to Builder.ai
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2021–2022:&lt;/strong&gt; Claims 300% YoY growth; raises Series B &amp;amp; C
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;May 2023:&lt;/strong&gt; Raises $250M Series D from QIA, Microsoft joins as investor; valuation hits ~$1.3B
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Oct 2024:&lt;/strong&gt; Takes $50M debt facility from Viola Credit based on inflated forecasts
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Early 2025:&lt;/strong&gt; Revenue restated from $220M → $55M; CEO Duggal steps down
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mar 2025:&lt;/strong&gt; Emergency $75M raised; 270 layoffs
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;May 2025:&lt;/strong&gt; Lenders seize $37M of cash. Builder.ai enters UK insolvency
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💣 Why It Collapsed
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Massively Overstated Revenues&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Builder.ai’s internal audit &lt;strong&gt;slashed its 2023–2024 sales projections by 75%&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2024 forecast: $220M → &lt;strong&gt;$55M&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;2023 revenue: $180M → &lt;strong&gt;$45M&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Some insiders claimed previous figures were &lt;strong&gt;inflated by 20–300%&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  2. &lt;strong&gt;Sudden Cash Seizure&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Lenders seized &lt;strong&gt;$37M out of $42M&lt;/strong&gt; cash from Builder.ai’s accounts, citing covenant breaches. This left:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;~$5M in cash (much locked overseas)
&lt;/li&gt;
&lt;li&gt;No ability to pay staff or vendors&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;“Effectively shut down our ability to operate.” – &lt;em&gt;CEO Manpreet Ratia&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  3. &lt;strong&gt;High Burn, Big Debts&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Despite raising $500M, cash burned fast:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Owed &lt;strong&gt;$85M to AWS&lt;/strong&gt;, &lt;strong&gt;$30M to Microsoft&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Only &lt;strong&gt;$7M&lt;/strong&gt; left by early 2025&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. &lt;strong&gt;Leadership Instability&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Duggal exits in Feb 2025
&lt;/li&gt;
&lt;li&gt;Replaced by Manpreet Ratia (ex-Jungle Ventures)
&lt;/li&gt;
&lt;li&gt;Investigations raised concerns of “potentially bogus” sales and shady resellers&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔧 The Business Model
&lt;/h2&gt;

&lt;p&gt;Builder.ai offered a &lt;strong&gt;no-code/AI app builder&lt;/strong&gt;, letting users spec out apps that were assembled by AI + human engineers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Promised fast, scalable, AI-driven software dev
&lt;/li&gt;
&lt;li&gt;Reality: heavily reliant on human devs, despite AI claims
&lt;/li&gt;
&lt;li&gt;Once had 1,000+ employees and clients across media, retail, and sports&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💸 Funding &amp;amp; Investors
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Round&lt;/th&gt;
&lt;th&gt;Year&lt;/th&gt;
&lt;th&gt;Lead Investors&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Seed–Series C&lt;/td&gt;
&lt;td&gt;2016–2022&lt;/td&gt;
&lt;td&gt;Lakestar, Jungle Ventures, Insight, WndrCo&lt;/td&gt;
&lt;td&gt;~$195M raised&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Series D&lt;/td&gt;
&lt;td&gt;2023&lt;/td&gt;
&lt;td&gt;Qatar Investment Authority, Microsoft&lt;/td&gt;
&lt;td&gt;$250M round, valuation ~$1.3–1.5B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debt Facility&lt;/td&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;td&gt;Viola Credit&lt;/td&gt;
&lt;td&gt;$50M loan (later triggered collapse)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Emergency Raise&lt;/td&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;td&gt;Existing investors&lt;/td&gt;
&lt;td&gt;$75M in Mar 2025 to fix finances&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  📣 Company &amp;amp; Industry Reactions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔹 Builder.ai Statement
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;“Despite the tireless efforts of our team… the business has been unable to recover from historic challenges and past decisions.”&lt;br&gt;&lt;br&gt;
– &lt;em&gt;Company LinkedIn Post&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔹 CEO Manpreet Ratia
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;“Lenders swept $40M from our accounts… shutting down our ability to operate.”&lt;br&gt;&lt;br&gt;
“We’re working with administrators to protect customers, employees, and any remaining value.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔹 Analysts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Phil Brunkard&lt;/em&gt; (Info-Tech): AI startups are hitting a &lt;strong&gt;“realism check”&lt;/strong&gt; post-hype
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Carrie Osman&lt;/em&gt;: A case of &lt;strong&gt;“FOMO investing”&lt;/strong&gt; chasing flashy AI narratives without substance&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Lessons for Startups
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Be Realistic &amp;amp; Transparent&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Don’t overinflate forecasts
&lt;/li&gt;
&lt;li&gt;Unrealistic growth projections undermine trust&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Sustainability Over Speed&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Growth is great, but runway and cash flow are vital
&lt;/li&gt;
&lt;li&gt;Builder.ai burned fast and owed massive cloud bills&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Hype ≠ Product&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;No-code/AI is promising, but needs solid execution
&lt;/li&gt;
&lt;li&gt;Don’t build a story that outpaces your capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;Take Care of People&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Employees faced sudden job losses with little warning
&lt;/li&gt;
&lt;li&gt;Transparency and support during collapse matter&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. &lt;strong&gt;There May Still Be Value&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Some tech and talent may be acquired
&lt;/li&gt;
&lt;li&gt;Duggal may even attempt to buy back parts of the company&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;This is a painful reminder that &lt;strong&gt;even unicorns can fall&lt;/strong&gt; – and quickly.  &lt;/p&gt;

&lt;p&gt;Builder.ai’s story is one of ambition, hype, missteps, and hard lessons. It shows us that &lt;strong&gt;AI buzzwords and big funding don’t replace business fundamentals&lt;/strong&gt;. Let’s learn from this and support the people affected.&lt;/p&gt;

&lt;p&gt;The no-code/AI space still holds promise – but it must be built on trust, transparency, and real value.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Sources: Bloomberg, TechCrunch, WSJ, LinkedIn posts from Builder.ai leadership.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Code CSS Directly Inside the Browser (Not Using Inspect Elements) 🔥 🔥</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Wed, 17 Jul 2024 12:02:56 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/code-css-directly-inside-the-browser-not-using-inspect-elements-cd8</link>
      <guid>https://dev.to/ranaharoon3222/code-css-directly-inside-the-browser-not-using-inspect-elements-cd8</guid>
      <description>&lt;h4&gt;
  
  
  Copy the code and pase it in your HTML and enjoy live coding :)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;style contenteditable="true" style="display:block; white-space: pre"&amp;gt;
body {
background: blue
}
&amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>productivity</category>
      <category>javascript</category>
      <category>browser</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>5 most useful JavaScript Utilities!</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Wed, 17 Jul 2024 11:09:19 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/you-wont-believe-these-5-game-changing-javascript-utilities-347e</link>
      <guid>https://dev.to/ranaharoon3222/you-wont-believe-these-5-game-changing-javascript-utilities-347e</guid>
      <description>&lt;p&gt;Hi, I'm Haroon, a Senior Full Stack Developer. Today, I'll share some incredibly useful JavaScript functions that you can use in almost every project&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Tracks the visibility of an element within the viewport
&lt;/h3&gt;

&lt;p&gt;This utility uses the Intersection Observer API to track the visibility of an element within the viewport. It calls a callback function with a boolean value indicating whether the element is visible or not.&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;onVisibilityChange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;callback&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;observer&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;IntersectionObserver&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;entries&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;entries&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;isIntersecting&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="nx"&gt;observer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;observe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Example usage:&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;targetElement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#target&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nf"&gt;onVisibilityChange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;targetElement&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;isVisible&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;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="s2"&gt;`Element is &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;isVisible&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;visible&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;not visible&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&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;h3&gt;
  
  
  2. Reactive viewport breakpoints
&lt;/h3&gt;

&lt;p&gt;This utility allows you to define breakpoints and get notified when the viewport width crosses these breakpoints. It calls a callback function with the current breakpoint value.&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;onBreakpointChange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;breakpoints&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;callback&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;mediaQueries&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;breakpoints&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bp&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;matchMedia&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`(max-width: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;bp&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;px)`&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

  &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;checkBreakpoints&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;breakpoint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;breakpoints&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;bp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;mediaQueries&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;matches&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;breakpoint&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;default&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="nx"&gt;mediaQueries&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mq&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;mq&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;checkBreakpoints&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="nf"&gt;checkBreakpoints&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Example usage:&lt;/span&gt;
&lt;span class="nf"&gt;onBreakpointChange&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;900&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1200&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;breakpoint&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;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="s2"&gt;`Current breakpoint: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;breakpoint&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&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;h3&gt;
  
  
  3. Reactive Clipboard API
&lt;/h3&gt;

&lt;p&gt;This utility listens to copy events and reads the copied text from the clipboard, calling a callback function with the copied text.&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;onClipboardChange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;copy&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&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="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clipboard&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readText&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nf"&gt;callback&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="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Example usage:&lt;/span&gt;
&lt;span class="nf"&gt;onClipboardChange&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="o"&gt;=&amp;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="s2"&gt;`Copied text: &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="s2"&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;h3&gt;
  
  
  4. Reactive Screen Orientation API
&lt;/h3&gt;

&lt;p&gt;This utility listens to changes in screen orientation and calls a callback function with the current orientation type.&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;onOrientationChange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;orientationchange&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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;screen&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;orientation&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&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="c1"&gt;// Example usage:&lt;/span&gt;
&lt;span class="nf"&gt;onOrientationChange&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;orientation&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;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="s2"&gt;`Current orientation: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;orientation&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&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;h3&gt;
  
  
  5. Reactive state to show whether the mouse leaves the page
&lt;/h3&gt;

&lt;p&gt;This utility tracks when the mouse leaves or enters the page and calls a callback function with a boolean value indicating whether the mouse has left the page.&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;onMouseLeavePage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;mouseleave&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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;callback&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="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;mouseenter&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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;callback&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="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Example usage:&lt;/span&gt;
&lt;span class="nf"&gt;onMouseLeavePage&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;hasLeft&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;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="s2"&gt;`Mouse has &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;hasLeft&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;left&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;entered&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; the page`&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;Each of these utilities leverages event listeners and modern APIs to provide reactive behavior in your JavaScript applications.&lt;/p&gt;

&lt;p&gt;Thank you for taking the time to explore these powerful JavaScript utilities with me. I hope you find them as useful and exciting as I do. Feel free to experiment with these functions in your projects and see how they can enhance your development process. If you have any questions or want to share your own tips, please write down in comments. Happy coding!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>react</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Unraveling the Magic Behind React 18: A Comprehensive Guide🚀</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Mon, 10 Apr 2023 06:26:37 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/unraveling-the-magic-behind-react-18-a-comprehensive-guide-3pp3</link>
      <guid>https://dev.to/ranaharoon3222/unraveling-the-magic-behind-react-18-a-comprehensive-guide-3pp3</guid>
      <description>&lt;p&gt;React 18 is the latest version of the popular JavaScript library for building user interfaces. It comes with several new features and improvements that aim to make the development process faster and more efficient. In this article, we'll take a look at how React 18 works behind the scenes and what makes it different from its predecessors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Suspense
&lt;/h2&gt;

&lt;p&gt;One of the major new features in React 18 is Suspense, which allows you to defer rendering of a component until some data is loaded. This can be particularly useful for components that rely on external data sources or APIs, where it may take some time to retrieve the necessary data.&lt;/p&gt;

&lt;p&gt;With Suspense, you can tell React to wait for the data to arrive before rendering the component. This makes it possible to show a loading indicator or a fallback UI while the data is being loaded. Once the data is available, React will render the component with the updated data.&lt;/p&gt;

&lt;p&gt;Here's an example of how Suspense works:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Suspense } from 'react';
import { fetchData } from './api';

function App() {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;Suspense fallback={&amp;lt;div&amp;gt;Loading...&amp;lt;/div&amp;gt;}&amp;gt;
        &amp;lt;MyComponent data={fetchData()} /&amp;gt;
      &amp;lt;/Suspense&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we use the &lt;code&gt;Suspense&lt;/code&gt; component to defer rendering of &lt;code&gt;MyComponent&lt;/code&gt; until the data is available. If the data takes some time to load, the &lt;code&gt;fallback&lt;/code&gt; prop will be displayed instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Concurrent Rendering
&lt;/h2&gt;

&lt;p&gt;Another major new feature in React 18 is Concurrent Rendering, which aims to improve the performance of React applications by allowing multiple components to be updated simultaneously. In previous versions of React, updates to components were done one at a time, which could lead to slow rendering times for complex applications.&lt;/p&gt;

&lt;p&gt;With Concurrent Rendering, React can work on updating multiple components at the same time, making the process much faster and more efficient. This can be particularly useful for large and complex applications where there are many components that need to be updated frequently.&lt;/p&gt;

&lt;p&gt;Here's an example of how Concurrent Rendering works:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { unstable_createRoot as createRoot } from 'react-dom';

const root = createRoot(document.getElementById('root'));

function App() {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;MyComponent /&amp;gt;
      &amp;lt;MyOtherComponent /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

root.render(&amp;lt;App /&amp;gt;);

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

&lt;/div&gt;



&lt;p&gt;In this example, we use the &lt;code&gt;unstable_createRoot&lt;/code&gt; function to create a root for our React application. This enables Concurrent Rendering, which allows multiple components to be updated simultaneously.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automatic Batching
&lt;/h2&gt;

&lt;p&gt;In previous versions of React, updates to components were batched together manually by the developer. This involved wrapping the updates in a &lt;code&gt;batch&lt;/code&gt; function to ensure that they were processed together, rather than triggering a re-render for each update.&lt;/p&gt;

&lt;p&gt;In React 18, this process is now automatic, which means that updates are automatically batched together by React. This can lead to significant performance improvements, particularly for applications with a large number of updates.&lt;/p&gt;

&lt;p&gt;Here's an example of how Automatic Batching works:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useState } from 'react';

function MyComponent() {
  const [count, setCount] = useState(0);

  function handleClick() {
    setCount(count + 1);
    setCount(count + 1);
    setCount(count + 1);
  }

  return (
    &amp;lt;div&amp;gt;
      &amp;lt;p&amp;gt;Count: {count}&amp;lt;/p&amp;gt;
      &amp;lt;button onClick={handleClick}&amp;gt;Increment&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we use the &lt;code&gt;useState&lt;/code&gt; hook to update the count state. We call &lt;code&gt;setCount&lt;/code&gt; three times in quick succession, but React automatically batches the updates together, so the component is only re-rendered once with the updated count value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Server Components
&lt;/h2&gt;

&lt;p&gt;Another exciting new feature in React 18 is Server Components, which allows for more efficient rendering of components on the server-side. With Server Components, you can render components on the server without having to render the entire application every time.&lt;/p&gt;

&lt;p&gt;This can be particularly useful for applications with a large number of components, where rendering the entire application on the server can be slow and inefficient. With Server Components, you can render only the components that are necessary, which can greatly improve performance.&lt;/p&gt;

&lt;p&gt;Here's an example of how Server Components works:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { ssrComponent } from 'react-ssr';

function MyServerComponent(props) {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;p&amp;gt;Hello, {props.name}!&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default ssrComponent(MyServerComponent);

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

&lt;/div&gt;



&lt;p&gt;In this example, we use the &lt;code&gt;ssrComponent&lt;/code&gt; function to create a Server Component. This component can be rendered on the server without having to render the entire application every time.&lt;/p&gt;

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

&lt;p&gt;React 18 introduces several new features and improvements that make it an even more powerful tool for building user interfaces. With Suspense, Concurrent Rendering, Automatic Batching, and Server Components, you can build applications that are faster and more efficient than ever before.&lt;/p&gt;

&lt;p&gt;By understanding how these features work behind the scenes, you can take advantage of them to build better React applications. Whether you're building a small application or a large, complex one, React 18 has the tools you need to succeed.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>news</category>
      <category>webdev</category>
    </item>
    <item>
      <title>JS Unique Tricks for Intermediators</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Sun, 09 Apr 2023 15:03:26 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/js-unique-tricks-for-intermediators-1d46</link>
      <guid>https://dev.to/ranaharoon3222/js-unique-tricks-for-intermediators-1d46</guid>
      <description>&lt;p&gt;Javascript is a versatile language that allows developers to create powerful and interactive web applications. In this article, we will explore some unique tricks that can be used to enhance the functionality of Javascript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trick 1: Using the Ternary Operator for Conditional Statements
&lt;/h2&gt;

&lt;p&gt;The ternary operator is a shorthand way to write conditional statements in Javascript. It is often used to replace if-else statements and can make your code more concise and easier to read.&lt;/p&gt;

&lt;p&gt;Here's an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Without ternary operator
if (a &amp;gt; b) {
  result = "a is greater than b";
} else {
  result = "b is greater than a";
}

// With ternary operator
result = a &amp;gt; b ? "a is greater than b" : "b is greater than a";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we use the ternary operator to check whether &lt;code&gt;a&lt;/code&gt; is greater than &lt;code&gt;b&lt;/code&gt; and assign the appropriate string to the &lt;code&gt;result&lt;/code&gt; variable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trick 2: Using Object Destructuring to Assign Variables
&lt;/h2&gt;

&lt;p&gt;Object destructuring is a technique that allows you to extract values from objects and assign them to variables. This can be a useful way to simplify your code and make it more readable.&lt;/p&gt;

&lt;p&gt;Here's an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 30
};

// Without object destructuring
const firstName = person.firstName;
const lastName = person.lastName;
const age = person.age;

// With object destructuring
const { firstName, lastName, age } = person;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we use object destructuring to extract the &lt;code&gt;firstName&lt;/code&gt;, &lt;code&gt;lastName&lt;/code&gt;, and &lt;code&gt;age&lt;/code&gt; properties from the &lt;code&gt;person&lt;/code&gt; object and assign them to variables of the same name.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trick 3: Using the Spread Operator to Combine Arrays
&lt;/h2&gt;

&lt;p&gt;The spread operator is a powerful tool in Javascript that allows you to expand arrays and objects. It can be used to combine arrays in a concise and readable way.&lt;/p&gt;

&lt;p&gt;Here's an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];

// Without spread operator
const arr3 = arr1.concat(arr2);

// With spread operator
const arr3 = [...arr1, ...arr2];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we use the spread operator to combine the &lt;code&gt;arr1&lt;/code&gt; and &lt;code&gt;arr2&lt;/code&gt; arrays into a new array &lt;code&gt;arr3&lt;/code&gt;. This is much more concise than using the &lt;code&gt;concat&lt;/code&gt; method.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trick 4: Using Arrow Functions for Concise Functions
&lt;/h2&gt;

&lt;p&gt;Arrow functions are a shorthand way to write functions in Javascript. They can make your code more concise and easier to read.&lt;/p&gt;

&lt;p&gt;Here's an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
// Without arrow function
function add(a, b) {
  return a + b;
}

// With arrow function
const add = (a, b) =&amp;gt; a + b;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we use an arrow function to define the &lt;code&gt;add&lt;/code&gt; function. This is much more concise than using the &lt;code&gt;function&lt;/code&gt; keyword.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trick 5: Using Template Literals for Dynamic Strings
&lt;/h2&gt;

&lt;p&gt;Template literals are a powerful feature in Javascript that allows you to create dynamic strings. They can be used to insert variables and expressions into strings.&lt;/p&gt;

&lt;p&gt;Here's an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const name = "John";
const age = 30;

// Without template literals
const message = "My name is " + name + " and I am " + age + " years old.";

// With template literalz
const message = `My name is ${name} and I am ${age} years old.`;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we use template literals to create a dynamic string that includes&lt;/p&gt;

&lt;p&gt;the &lt;code&gt;name&lt;/code&gt; and &lt;code&gt;age&lt;/code&gt; variables. This is much more concise and easier to read than using string concatenation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trick 6: Using the Nullish Coalescing Operator for Default Values
&lt;/h2&gt;

&lt;p&gt;The nullish coalescing operator is a relatively new feature in Javascript that can be used to provide default values for variables that may be null or undefined.&lt;/p&gt;

&lt;p&gt;Here's an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const foo = null;
const bar = foo ?? "default value";

console.log(bar); // "default value"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we use the nullish coalescing operator to assign the value of &lt;code&gt;foo&lt;/code&gt; to &lt;code&gt;bar&lt;/code&gt;. If &lt;code&gt;foo&lt;/code&gt; is null or undefined, the default value of "default value" is used instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trick 7: Using Promises for Asynchronous Code
&lt;/h2&gt;

&lt;p&gt;Promises are a powerful tool in Javascript that allow you to write asynchronous code in a synchronous style. They can be used to make your code more readable and easier to maintain.&lt;/p&gt;

&lt;p&gt;Here's an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
function fetchData() {
  return new Promise((resolve, reject) =&amp;gt; {
    // Perform asynchronous operation
    const data = getDataFromServer();

    if (data) {
      resolve(data);
    } else {
      reject(new Error("Unable to fetch data"));
    }
  });
}

fetchData()
  .then((data) =&amp;gt; console.log(data))
  .catch((error) =&amp;gt; console.error(error));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we use a promise to fetch data from a server. The &lt;code&gt;fetchData&lt;/code&gt; function returns a promise that resolves with the data if the operation is successful or rejects with an error if it fails.&lt;/p&gt;

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

&lt;p&gt;Javascript is a powerful language with many unique features that can be used to enhance the functionality of your code. By using these tricks, you can make your code more concise, readable, and easier to maintain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let me know in comments if you know any more  :)&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>tutorial</category>
      <category>productivity</category>
      <category>frontend</category>
    </item>
    <item>
      <title>💡 50+ JavaScript Project ideas!</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Thu, 26 May 2022 04:42:16 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/50-javascript-project-ideas-13pp</link>
      <guid>https://dev.to/ranaharoon3222/50-javascript-project-ideas-13pp</guid>
      <description>&lt;p&gt;In this article, I’ve collected 50+ of them, so you can have an easier job choosing your next challenge.&lt;/p&gt;

&lt;p&gt;① Modal open &amp;amp; close &lt;/p&gt;

&lt;p&gt;② Random Hex Color Generator&lt;/p&gt;

&lt;p&gt;③ Random Number Generator&lt;/p&gt;

&lt;p&gt;④ Counter Number App&lt;/p&gt;

&lt;p&gt;⑤ Border Radius Controller&lt;/p&gt;

&lt;p&gt;⑥ Box Shadow Controller&lt;/p&gt;

&lt;p&gt;⑦ Image Filter (when we click on the button)&lt;/p&gt;

&lt;p&gt;⑧ Border Width Slider&lt;/p&gt;

&lt;p&gt;⑨ Background changer using HTML Color Picker&lt;/p&gt;

&lt;p&gt;①⓪ Image Position Slider (X and Y Directions)&lt;/p&gt;

&lt;p&gt;①① Click To Download Something&lt;/p&gt;

&lt;p&gt;①② Background Choosing With Images or Gradients&lt;/p&gt;

&lt;p&gt;①③ Auto Year Update In The Footer Section&lt;/p&gt;

&lt;p&gt;①④ Date CountDown&lt;/p&gt;

&lt;p&gt;①⑤ Time CountDown&lt;/p&gt;

&lt;p&gt;①⑥ Sticky NavBar&lt;/p&gt;

&lt;p&gt;①⑦ Smooth Scrolling &lt;/p&gt;

&lt;p&gt;①⑧ Responsive NavBar(Hamburger Button)&lt;/p&gt;

&lt;p&gt;①⑨ Random Password Generator&lt;/p&gt;

&lt;p&gt;②⓪ Body Mass Index Calculator&lt;/p&gt;

&lt;p&gt;②① Notes App&lt;/p&gt;

&lt;p&gt;②② To-Do App&lt;/p&gt;

&lt;p&gt;②③ Calculator App&lt;/p&gt;

&lt;p&gt;②④ Digital Clock&lt;/p&gt;

&lt;p&gt;②⑤ Form Validation&lt;/p&gt;

&lt;p&gt;②⑥ Password Hide And Show&lt;/p&gt;

&lt;p&gt;②⑦ Password Strength Checker&lt;/p&gt;

&lt;p&gt;②⑧ Currency Converter&lt;/p&gt;

&lt;p&gt;②⑨ Dark &amp;amp; Light Mode Toggle&lt;/p&gt;

&lt;p&gt;③⓪ Alert &amp;amp; Notification&lt;/p&gt;

&lt;p&gt;③① Website Preloader Implementation&lt;/p&gt;

&lt;p&gt;③② Character CountDown&lt;/p&gt;

&lt;p&gt;③③ Temperature Calculator&lt;/p&gt;

&lt;p&gt;③④ Age Calculator(Years/Months/Day)&lt;/p&gt;

&lt;p&gt;③⑤ Music Player App&lt;/p&gt;

&lt;p&gt;③⑥ Number Guessing Game&lt;/p&gt;

&lt;p&gt;③⑦ Length Converter App(KM, M, CM, etc.)&lt;/p&gt;

&lt;p&gt;③⑧ Auto Image Change Of The Background After A Defined Time.&lt;/p&gt;

&lt;p&gt;③⑨ Contact Form&lt;/p&gt;

&lt;p&gt;④⓪ Text To Speech&lt;/p&gt;

&lt;p&gt;④① Search Something&lt;/p&gt;

&lt;p&gt;④② Music Search&lt;/p&gt;

&lt;p&gt;④③ Find The Location Of A User&lt;/p&gt;

&lt;p&gt;④④ Click To Copy&lt;/p&gt;

&lt;p&gt;④⑤ Internet Connection Checker&lt;/p&gt;

&lt;p&gt;④⑥ Quiz App&lt;/p&gt;

&lt;p&gt;④⑦ Weather App&lt;/p&gt;

&lt;p&gt;④⑧ Accordion Open &amp;amp; Close&lt;/p&gt;

&lt;p&gt;④⑨ Slider Or Carousel&lt;/p&gt;

&lt;p&gt;⑤⓪ Scroll Bottom To Top&lt;/p&gt;

&lt;p&gt;⑤① Random Joke Generator&lt;/p&gt;

&lt;p&gt;⑤② Ludo Dice Number Generator&lt;/p&gt;

&lt;p&gt;⑤③ Alarm App&lt;/p&gt;

&lt;p&gt;⑤④ Cards Expand &amp;amp; Collapse&lt;/p&gt;

&lt;p&gt;⑤⑤ Blurry Loading&lt;/p&gt;

&lt;p&gt;⑤⑥ Toast Notification&lt;/p&gt;

&lt;p&gt;⑤⑦ Hidden Search Widget&lt;/p&gt;

&lt;p&gt;⑤⑧ Page Progress&lt;/p&gt;

&lt;p&gt;⑤⑨ Find Keyboard Keys Name&lt;/p&gt;

&lt;h2&gt;
  
  
  That's all for now, we will meet in the next post😍
&lt;/h2&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Basics to Master topics in javascript 🔥🔥everyone must know</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Mon, 23 May 2022 17:03:49 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/basics-to-master-topics-in-javascript-everyone-must-know-3p23</link>
      <guid>https://dev.to/ranaharoon3222/basics-to-master-topics-in-javascript-everyone-must-know-3p23</guid>
      <description>&lt;h3&gt;
  
  
  ⚡ Important Basic Topics ⚡
&lt;/h3&gt;

&lt;p&gt;👉 Syntax&lt;br&gt;
👉 Variables&lt;br&gt;
👉 If else statements &lt;br&gt;
👉 Operators&lt;br&gt;
👉 Loops&lt;br&gt;
👉 Functions &lt;br&gt;
👉 Events &lt;br&gt;
👉 Cookies &lt;br&gt;
👉 Keywords&lt;br&gt;
👉 Dialogue Boxes&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ Javascript Advanced Topics ⚡
&lt;/h3&gt;

&lt;p&gt;👉 Error Handling &lt;br&gt;
👉 Validations &lt;br&gt;
👉 Animations &lt;br&gt;
👉 Multimedia &lt;br&gt;
👉 Debugging &lt;br&gt;
👉 Closure &lt;br&gt;
👉 Scope &lt;br&gt;
👉 IIFEs&lt;br&gt;
👉 Arrow Functions &lt;br&gt;
👉 Async Programming&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ JAVASCRIPT OBJECTS ⚡
&lt;/h3&gt;

&lt;p&gt;👉 Numbers &lt;br&gt;
👉 Boolean &lt;br&gt;
👉 Strings &lt;br&gt;
👉 Arrays&lt;br&gt;
👉 Date &lt;br&gt;
👉 Math &lt;br&gt;
👉 RegExp&lt;br&gt;
👉 HTML Dom&lt;/p&gt;

&lt;p&gt;⭐ Additional ⭐ &lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ Some famous resources from where you can learn javascript  ⚡
&lt;/h3&gt;

&lt;p&gt;👉 freeCodeCamp&lt;br&gt;
👉 Udemy&lt;br&gt;
👉 Scrimba&lt;br&gt;
👉 CodeMentor&lt;br&gt;
👉 Sololearn&lt;br&gt;
👉 W3Schools&lt;br&gt;
👉 Codecademy&lt;br&gt;
👉 GitHub &lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ Some famous youtube Channels to learn web develoopment ⚡
&lt;/h3&gt;

&lt;p&gt;👉 Traversy Media&lt;br&gt;
👉 Kevin Povell&lt;br&gt;
👉 Web Dev Simplified&lt;br&gt;
👉 Coder Coder&lt;br&gt;
👉 DevEd&lt;br&gt;
👉 Programming with Mosh-&lt;br&gt;
👉 Treehouse&lt;br&gt;
👉 DevTips&lt;br&gt;
👉 Fireship&lt;/p&gt;

&lt;h3&gt;
  
  
  Let me know any other resources you know :)
&lt;/h3&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>typescript</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Best 7 Platforms to Level Up Your Frontend Skills 🚀</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Fri, 20 May 2022 06:04:12 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/best-7-platforms-to-level-up-your-frontend-skills-4bjb</link>
      <guid>https://dev.to/ranaharoon3222/best-7-platforms-to-level-up-your-frontend-skills-4bjb</guid>
      <description>&lt;p&gt;In this article, I am sharing best site and apps which are beginner-friendly. This will improve your speed of front-end development to a whole new &lt;strong&gt;Level&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;inspired and images from @Amit_T18 from twitter&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  CSS Battles
&lt;/h3&gt;

&lt;p&gt;CSS Battle is an online CSS Code Golfing game. Here, players from all around the world try to visually replicate "Targets" in smallest possible CSS code and battle it out to get to the top of the leaderboard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cssbattle.dev/" rel="noopener noreferrer"&gt;https://cssbattle.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p_oap0oW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FTGICi8VsAAFqht%3Fformat%3Djpg%26name%3D4096x4096" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p_oap0oW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FTGICi8VsAAFqht%3Fformat%3Djpg%26name%3D4096x4096" alt="CSS Battles" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  JavaScript 30
&lt;/h3&gt;

&lt;p&gt;It's a 30-day vanilla JS coding challenge. During these 30 days (more or less — you can binge the tutorials Netflix style to take it as slow as you like because you'll get an instant and free access to all the videos) you'll build 30 different apps using fun and easy video tutorials&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript30.com/" rel="noopener noreferrer"&gt;https://javascript30.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JqzsmVhK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJyWoUUAAWChK.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JqzsmVhK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJyWoUUAAWChK.jpg" alt="JavaScript 30" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Code Well
&lt;/h3&gt;

&lt;p&gt;Improve your HTML and CSS skills by practicing on real design templates. With Codewell, you can browse high quality Figma templates that you can use to sharpen your HTML and CSS skills.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.codewell.cc/" rel="noopener noreferrer"&gt;https://www.codewell.cc/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mouVUAaA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJzkaVsAEwvlK.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mouVUAaA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJzkaVsAEwvlK.jpg" alt="Code Well" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend Mentor
&lt;/h3&gt;

&lt;p&gt;Frontend Mentor is a platform where you can solve real-world HTML, CSS and JavaScript challenges whilst working to professional designs.&lt;/p&gt;

&lt;p&gt;https:// &lt;a href="http://www.frontendmentor.io/" rel="noopener noreferrer"&gt;www.frontendmentor.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KCGRyI_j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJ0pbVsAEoN8d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KCGRyI_j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJ0pbVsAEoN8d.jpg" alt="Frontend Mentor" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend Practice
&lt;/h3&gt;

&lt;p&gt;With this, you get a list of websites that look nice to clone and increase your experience and ideas. Take your frontend skills to the next level by recreating real websites from real companies.&lt;br&gt;
The perfect type of practice for developers of all skill levels. &lt;/p&gt;

&lt;p&gt;https:// &lt;a href="http://www.frontendpractice.com/" rel="noopener noreferrer"&gt;www.frontendpractice.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pe62zaXo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJ166VgAABxrU.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pe62zaXo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJ166VgAABxrU.jpg" alt="Frontend Practice" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Codewars
&lt;/h3&gt;

&lt;p&gt;Codewars is an educational community for computer programming. On the platform, software developers train on programming challenges known as kata. These discrete programming exercises train a range of skills in a variety of programming languages, and are completed within an online integrated development environment.&lt;/p&gt;

&lt;p&gt;https:// &lt;a href="http://www.codewars.com/" rel="noopener noreferrer"&gt;www.codewars.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cyBiyz8S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJ3GGVsAEoUPV.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cyBiyz8S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJ3GGVsAEoUPV.jpg" alt="Codewars" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Daily UI
&lt;/h3&gt;

&lt;p&gt;Daily UI is a series of daily Design Challenges. Inspiration and Surprise Rewards! Get Started. 100% FREE.&lt;/p&gt;

&lt;p&gt;https:// &lt;a href="http://www.dailyui.co/" rel="noopener noreferrer"&gt;www.dailyui.co/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9odTXfAV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJ4O5VIAAnRO3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9odTXfAV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/FRbJ4O5VIAAnRO3.jpg" alt="Daily UI" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Hope you find these sites and apps helpful for your new design at font-end.&lt;/p&gt;

&lt;p&gt;If you find this article helpful, then let me know via your comments below.&lt;/p&gt;

</description>
      <category>design</category>
      <category>css</category>
      <category>discuss</category>
      <category>javascript</category>
    </item>
    <item>
      <title>The Ultimate List of 7 Perfect Vue 3 UI Libraries for every project</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Sat, 19 Feb 2022 07:23:22 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/the-ultimate-list-of-7-perfect-vue-3-ui-libraries-for-every-project-1l39</link>
      <guid>https://dev.to/ranaharoon3222/the-ultimate-list-of-7-perfect-vue-3-ui-libraries-for-every-project-1l39</guid>
      <description>&lt;p&gt;Vue.js is the JavaScript framework of choice for countless front-end developers because it’s easy to learn and use. Components are at the core of the Vue framework — they help you go from idea to a functioning UI much faster.&lt;/p&gt;

&lt;p&gt;Vue is a lightweight, TypeScript-based UI component framework. It has a large community and is a great choice if you want to achieve Custom Design. Its extensive built-in directives are designed for best-in-class Typography, as well as excellent performance. It also offers extensive support for first-class TypeScript, which means that you can customize and translate the components in any language you want.&lt;/p&gt;

&lt;p&gt;In this collection, you can find the best Vue UI component libraries that provide building blocks for productive user interface development with the Vue.js framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://vant-contrib.gitee.io/vant/#/en-US/button" rel="noopener noreferrer"&gt;7 - Vant UI&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Vant UI offers more than 65 lightweight, reusable components. Vant’s components are known for being adapted for mobile use, and for their ability to be fully customizable. Vant is a strong competitor to the Ionic framework, offering rare components like password inputs, countdowns, pull-to-refresh, notifications, and more.&lt;/p&gt;

&lt;p&gt;After browsing through Vant’s component catalog, it is clear they focus on smaller devices but stay flexible enough to be extended to web apps. It is worth mentioning that these components are all tree-shakable, and as such, they can be imported individually to your application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33yat9n8d8azoltkfv8h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33yat9n8d8azoltkfv8h.png" alt="Vant UI offers more than 65 lightweight"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.naiveui.com/" rel="noopener noreferrer"&gt;6 - Naive UI&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Naive UI was modestly announced to the world on Twitter, then retweeted by Vue’s creator, which brought a lot of traffic to this new component library. Now, Naive UI has a well-deserved 4.7k stars on GitHub within less than three months of existence.&lt;/p&gt;

&lt;p&gt;It ships more than 70 extremely well-crafted components that can seamlessly fit into almost any kind of Vue 3 app. Naive’s components are performant, extremely customizable, and have first-class TypeScript support to offer a great development experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgv7cugpx4pkcpypduvc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgv7cugpx4pkcpypduvc.png" alt="Naive UI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/vueComponent/ant-design-vue/" rel="noopener noreferrer"&gt;5 - Ant Design Vue&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Another popular library which has the same design ethics as Element UI is the Ant Design Vue. It has great administrative templating styles and components. This library was originally created by a group of developers and designers from Alibaba. Therefore, it’s a great library if one wants to target e-commerce platform development in short time. However, just like Element UI, it was mostly targeted for Chinese developers and therefore most of the original documentations are in Chinese. Although there are translated versions available, some fonts and links are still in Chinese which couldn’t be exactly translated to English.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://vuestic.dev/" rel="noopener noreferrer"&gt;4 - Vuestic UI&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Vuestic is known for making one of the most beautiful, open source admin panels for Vue. They excel in writing maintainable Vue code and crafting slick components and interfaces.&lt;/p&gt;

&lt;p&gt;The team has recently announced Vuestic UI, their Vue 3 UI framework, containing all of the components used in the popular Vuestic Admin UI and much more. Vuestic emphasizes its out-of-the-box support for keyboard navigation, a feature prized in the frontend community due to the UX it provides.&lt;/p&gt;

&lt;p&gt;Vuestic provides more than 50 components with unique features and extensive configurability. Responsive by design, these components fit on nearly every screen. Vuestic ships with seamless translation support and keyboard accessibility throughout the framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvuestic.dev%2Fimg%2Fadmin.300ccf87.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvuestic.dev%2Fimg%2Fadmin.300ccf87.png" alt="vuestic ui"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://vuetifyjs.com/en/" rel="noopener noreferrer"&gt;3 - Vuetify&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;An unofficial library that works with Vue’s server-side rendering is Vuetify. It helps in creating clean, semantic, reusable UI components and makes the process of developing an interesting event.&lt;/p&gt;

&lt;p&gt;One thing that differentiates Vuetify from others is the availability of ready-made scaffolding for code in the form of pre-made Vue CLI.&lt;/p&gt;

&lt;p&gt;Although vuetify 3 is in alpha stage but coming soon.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://quasar.dev/" rel="noopener noreferrer"&gt;2 - Quasar&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Quasar is a power-packed framework that has over 81 components. If you are planning to develop a highly robust and responsive web and mobile application using Vue.js then, you should use quasar.&lt;/p&gt;

&lt;p&gt;It is an extensive library on the list that does not have less than 19K downloads weekly. If a developer plans to integrate this, things will move more swiftly in the development process.&lt;/p&gt;

&lt;p&gt;You can build all in one application using one framewrok.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.primefaces.org/primevue/" rel="noopener noreferrer"&gt;1 - PrimeVue&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;PrimeVue is a great example of a framework that allows you to build complex, modern, and highly dynamic Vue applications. It has a wide range of components, from tables and paginators to well-designed graph-based organization charts, that you can use to create interactive Vue applications.&lt;/p&gt;

&lt;p&gt;You can build user interfaces for enterprise software with this framework, too, as its components have been made for designing complex software applications. This also explains why the PrimeVue component library is trusted by Fortune 500 companies, such as Airbus, Ford, Intel, and others.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp39x3f4sj5w4vc45h06z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp39x3f4sj5w4vc45h06z.png" alt="PrimeVue is a great example of a framework"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Bonus
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.agnosticui.com/" rel="noopener noreferrer"&gt;AgnosticUI&lt;/a&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;One stylesheet…all the frameworks! UI components that work in React, Vue 3, and Svelte! &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As you see this is the tagline from author and I really impressed that we can even use this library not only vue 3 but for other js frameworks and with pure js too. Super Cool! if you are starting a project go a head and try this lib.&lt;/p&gt;

&lt;h3&gt;
  
  
  Here are some highlights
&lt;/h3&gt;

&lt;p&gt;💥 Easily build design systems that works in React, Vue 3, Angular, and Svelte!&lt;/p&gt;

&lt;p&gt;🙌 Semantic and accessible HTML&lt;/p&gt;

&lt;p&gt;💪 Unprocessed decoupled CSS&lt;/p&gt;

&lt;p&gt;⚡ One stylesheet per component propagates to all framework&lt;br&gt;
implementations&lt;/p&gt;

&lt;p&gt;🖌️ Synchronized theming via CSS custom properties&lt;/p&gt;

&lt;p&gt;Built with 💛 by Rob Levin&lt;/p&gt;

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

&lt;p&gt;I would Personally prefer Quasar if you have plans for mobile apps and web app both and also server side rendering and PWA. Quasar can do all of this with same app with just very small configuiration changes. &lt;/p&gt;

&lt;p&gt;But if you want a web app then go for PrimeVue it's more robust and maintained actively and has huge components library. Although if your app is small or medium then use Vuetify or vuestic UI because bundle size will me much smaller.&lt;/p&gt;

&lt;p&gt;Sorry i forget to mention Tailwind so if you wanna design yourself then without any doubt go for Tailwind But be consistent in design :)&lt;/p&gt;

&lt;p&gt;Let me know in comments if you know any other awesome UI library!&lt;/p&gt;

</description>
      <category>vue</category>
      <category>javascript</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>5 Free Perfect Headless CMS for JS Developers</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Wed, 16 Feb 2022 05:02:13 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/5-free-perfect-headless-cms-for-js-developers-1hd3</link>
      <guid>https://dev.to/ranaharoon3222/5-free-perfect-headless-cms-for-js-developers-1hd3</guid>
      <description>&lt;h3&gt;
  
  
  Why headless CMS?
&lt;/h3&gt;

&lt;p&gt;Let us look at some of the benefits of headless CMS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility:&lt;/strong&gt; transitional CMS is very limiting and can be frustrating. Using a headless CMS will allow you to design your front end. Moreover, it comes with a well-defined API, thus, allocating more time to creating content rather than managing it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compatible&lt;/strong&gt;: You will able to publish the content to any smart device while the backend can be controlled from one device.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secured&lt;/strong&gt;: As the Content publishing environment isn’t accessible from the database, using this will prevent malware attacks.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalable&lt;/strong&gt;: since the front end and back end are separated, there is no separate time needed for maintenance. This allows you to customize your website anytime without having to compromise the performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Control&lt;/strong&gt;: It does not have any rules and gives the developer complete control. The developer will be able to integrate with any codebase and use any preferred language of their choice.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is small explanation by:  Kontent by Kentico.&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/U5_H9cD17gA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Now that we know what a headless CMS is, let us look at some of the headless CMS available in the market.&lt;/p&gt;

&lt;h3&gt;
  
  
  5- &lt;a href="https://github.com/TryGhost/Ghost" rel="noopener noreferrer"&gt;Ghost CMS&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Ghost is a powerful app for new-media creators to publish, share, and grow a business around their content. It comes with modern tools to build a website, publish content, send newsletters &amp;amp; offer paid subscriptions to members.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fghost.org%2Fimages%2Fhome%2Fpost-list%2Fpost-list-1600.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fghost.org%2Fimages%2Fhome%2Fpost-list%2Fpost-list-1600.png" alt="Ghost CMS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4- &lt;a href="https://keystonejs.com/" rel="noopener noreferrer"&gt;Keystone Js&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;KeystoneJS is a generic content management framework, meaning that it can be used for developing a variety of web applications using Javascript. It is especially suitable for developing large-scale applications such as portals, forums, content management systems (CMS), e-commerce projects and RESTful Web services because of its modular architecture and clean separation of various functionality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsjvcrs2b5gdxif1no6nh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsjvcrs2b5gdxif1no6nh.png" alt="IKeystoneJS is a generic content management framework"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3- &lt;a href="https://www.netlifycms.org/" rel="noopener noreferrer"&gt;Netlify CMS&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Netlify CMS is an open source content management system for your Git workflow that enables you to provide editors with a friendly UI and intuitive workflows. You can use it with any static site generator to create faster, more flexible web projects. Content is stored in your Git repository alongside your code for easier versioning, multi-channel publishing, and the option to handle content updates directly in Git.&lt;/p&gt;

&lt;p&gt;At its core, Netlify CMS is an open-source React app that acts as a wrapper for the Git workflow, using the GitHub, GitLab, or Bitbucket API. This provides many advantages, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fast&lt;/strong&gt;, web-based UI: With rich-text editing, real-time preview, and drag-and-drop media uploads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Platform agnostic:&lt;/strong&gt; Works with most static site generators.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy installation:&lt;/strong&gt; Add two files to your site and hook up the backend by including those files in your build process or linking to our Content Delivery Network (CDN).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modern authentication&lt;/strong&gt;: Using GitHub, GitLab, or Bitbucket and JSON web tokens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexible content types:&lt;/strong&gt; Specify an unlimited number of content types with custom fields.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fully extensible:&lt;/strong&gt; Create custom-styled previews, UI widgets, and editor plugins.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/p6h-rYSVX90"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  2- &lt;a href="https://strapi.io/" rel="noopener noreferrer"&gt;Strapi Js&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Strapi is an opensource CMS intended to be transparent and striving to be a perfect balance between a CMS, framework, and an automation tool to speed-up back-end development and management.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-databases support&lt;/strong&gt;, SQLite, MySQL, Postgres are supported, you just have to pick one of your choice&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GraphQL or RESTful:&lt;/strong&gt; Consume the API from any client (React,
Vue, Angular), mobile apps or even IoT, using REST or GraphQL.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;100% Javascript&lt;/strong&gt; One language fits all. Use JavaScript from
front to back.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internationalization&lt;/strong&gt;: Create multilingual websites or apps. Localize content by translating the text and adapting the messaging &amp;amp; structure of the page to each version.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexible content management:&lt;/strong&gt; Build any type of category,
section, format or flow to adapt to your needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SEO optimized:&lt;/strong&gt; Easily manage your SEO metadata with a 
repeatable field and use our Media Library to add captions, notes, and custom filenames to optimize the SEO of media assets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fstrapi%2Fstrapi%2F0bcebf77b37182fe021cb59cc19be8f5db4a18ac%2Fpublic%2Fassets%2Fadministration_panel.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fstrapi%2Fstrapi%2F0bcebf77b37182fe021cb59cc19be8f5db4a18ac%2Fpublic%2Fassets%2Fadministration_panel.png" alt="Strapi Js"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1- &lt;a href="https://directus.io/" rel="noopener noreferrer"&gt;Directus Js&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Directus is an open-source CMS, that is excellent for projects that require customized databases.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/xDsn4ChMmD4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extremely simple to manage your content with an interface that requires no training.&lt;/li&gt;
&lt;li&gt;It stays up-to-date by pulling whatever is required from the database. It is as comfortable as entering credentials.&lt;/li&gt;
&lt;li&gt;It is fully decomposed and extensible.
Directus adds the feature of uploading and managing files; &lt;/li&gt;
&lt;li&gt;databases do not typically handle files.&lt;/li&gt;
&lt;li&gt;Writing comments or a note at certain times is useful. Directus comment features prove to be very functional.&lt;/li&gt;
&lt;li&gt;All activity within directus is tracked, and rollbacks are possible. Hence, you never lose data.&lt;/li&gt;
&lt;li&gt;Strong Accountability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdirectus.io%2Fassets%2Fimg%2Fhomepage-hero.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdirectus.io%2Fassets%2Fimg%2Fhomepage-hero.svg" alt="Directus is an open-source CMS"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I personally Prefer Directus although i used all of them personally. Directus is much simpler to extend and has lots of features that other free cms's missing like Accountability and reverting to prev stage. But we can do that with other cms too though will take more time to build these. &lt;/p&gt;

&lt;p&gt;However since strapi v4 and Keystone 6 arrives recently that are great too and now much more stable and efficient. So it's really hard to suggest only one solution it's really upto you to test them out personally and choose based on your experience :)&lt;/p&gt;

&lt;p&gt;P.S: if you know any other great CMS that is free please mention in comment&lt;/p&gt;

</description>
      <category>cms</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>node</category>
    </item>
    <item>
      <title>7 VS Code Extensions that JS dev Should Use</title>
      <dc:creator>Haroon Ahmad</dc:creator>
      <pubDate>Tue, 15 Feb 2022 12:46:20 +0000</pubDate>
      <link>https://dev.to/ranaharoon3222/7-vs-code-extensions-that-js-dev-should-use-h46</link>
      <guid>https://dev.to/ranaharoon3222/7-vs-code-extensions-that-js-dev-should-use-h46</guid>
      <description>&lt;p&gt;Hi, Folks I know we do not want to read long blog posts like me. So I plan to make this post short. &lt;/p&gt;

&lt;h3&gt;
  
  
  In this I share 7 most useful Extensions while Coding with JS
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=rangav.vscode-thunder-client" rel="noopener noreferrer"&gt;Thunder Client&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Thunder Client is a lightweight Rest API Client Extension for Visual Studio Code, hand-crafted by Ranga Vadhineni with simple and clean design.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnu8pg8p5acpsgo2fao17.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnu8pg8p5acpsgo2fao17.gif" alt="Thunder Client is a lightweight Rest API Client" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=JeffersonLicet.snipped&amp;amp;ssr=false#overview" rel="noopener noreferrer"&gt;Snipped&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Create fancy screenshots of your code without leaving the editor.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--h2Ch6AdJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/NSCltwI.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h2Ch6AdJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/NSCltwI.png" alt="Create fancy screenshots of your code without leaving the editor." width="800" height="771"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=ChakrounAnas.turbo-console-log" rel="noopener noreferrer"&gt;Turbo Console Log&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This extension make debugging much easier by automating the operation of writing meaningful log message.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wvhOJ0go--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://image.ibb.co/dysw7p/insert_log_message.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wvhOJ0go--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://image.ibb.co/dysw7p/insert_log_message.gif" alt="This extension make debugging much easier by automating the operation of writing meaningful log message." width="600" height="522"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RF8yhbf3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://i.ibb.co/Jk2pmRG/tcl-multiple-selections.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RF8yhbf3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://i.ibb.co/Jk2pmRG/tcl-multiple-selections.gif" alt="This extension make debugging much easier by automating the operation of writing meaningful log message." width="600" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=chrmarti.regex" rel="noopener noreferrer"&gt;Regex Previewer&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Regex matches previewer for JavaScript, TypeScript, PHP and Haxe in Visual Studio Code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dt0_BfW6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://github.com/chrmarti/vscode-regex/raw/main/images/in_action.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dt0_BfW6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://github.com/chrmarti/vscode-regex/raw/main/images/in_action.gif" alt="Regex matches previewer for JavaScript, TypeScript, PHP and Haxe in Visual Studio Code." width="718" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=wix.vscode-import-cost" rel="noopener noreferrer"&gt;Import Cost&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Display import/require package size in the editor&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YRxJvnXi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://file-wkbcnlcvbn.now.sh/import-cost.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YRxJvnXi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://file-wkbcnlcvbn.now.sh/import-cost.gif" alt="Display import/require package size in the editor" width="800" height="139"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=WallabyJs.quokka-vscode" rel="noopener noreferrer"&gt;Quokka.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Quokka.js is a developer productivity tool for rapid JavaScript / TypeScript prototyping. Runtime values are updated and displayed in your IDE next to your code, as you type.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P50dZQdF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://quokkajs.com/assets/img/main-video.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P50dZQdF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://quokkajs.com/assets/img/main-video.gif" alt="Quokka.js is a developer productivity tool for rapid JavaScript / TypeScript prototyping. Runtime values are updated and displayed in your IDE next to your code, as you type." width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets" rel="noopener noreferrer"&gt;ES7+ React/Redux/React-Native snippets&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;JavaScript is everywhere, and ES7, React, Redux &amp;amp; GraphQL Snippets cover almost everything you need to get started with modern app development efficiently. This plugin extension makes a great alternative to any other JavaScript-based code snippets that you might already be using.&lt;/p&gt;

&lt;h3&gt;
  
  
  Let me know if you  know some more awesome extensions in comments :)
&lt;/h3&gt;

</description>
      <category>vscode</category>
      <category>javascript</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
