<?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: Somtochukwu Okafor</title>
    <description>The latest articles on DEV Community by Somtochukwu Okafor (@somtookaforr).</description>
    <link>https://dev.to/somtookaforr</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%2F507548%2Ff6871f4b-30bb-4f57-91b6-70e402d78152.png</url>
      <title>DEV Community: Somtochukwu Okafor</title>
      <link>https://dev.to/somtookaforr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/somtookaforr"/>
    <language>en</language>
    <item>
      <title>Are website templates right for your business? They offer a quick, affordable start but come with trade-offs in scalability, customization, and long-term value. In my latest article, I explore their pros and cons to help you make an informed decision.</title>
      <dc:creator>Somtochukwu Okafor</dc:creator>
      <pubDate>Thu, 09 Jan 2025 13:33:20 +0000</pubDate>
      <link>https://dev.to/somtookaforr/are-website-templates-right-for-your-business-they-offer-a-quick-affordable-start-but-come-with-5c80</link>
      <guid>https://dev.to/somtookaforr/are-website-templates-right-for-your-business-they-offer-a-quick-affordable-start-but-come-with-5c80</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/somtookaforr" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F507548%2Ff6871f4b-30bb-4f57-91b6-70e402d78152.png" alt="somtookaforr"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/somtookaforr/template-or-no-template-weighing-the-pros-and-cons-58lb" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Template or No Template: Weighing the Pros and Cons&lt;/h2&gt;
      &lt;h3&gt;Somtochukwu Okafor ・ Jan 8&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Template or No Template: Weighing the Pros and Cons</title>
      <dc:creator>Somtochukwu Okafor</dc:creator>
      <pubDate>Wed, 08 Jan 2025 11:30:25 +0000</pubDate>
      <link>https://dev.to/somtookaforr/template-or-no-template-weighing-the-pros-and-cons-58lb</link>
      <guid>https://dev.to/somtookaforr/template-or-no-template-weighing-the-pros-and-cons-58lb</guid>
      <description>&lt;p&gt;Have you ever started a new project or business idea, only to feel overwhelmed by the time and cost of building a website? Personalised templates might seem like the perfect solution—they promise a quick, affordable start. But are they always the right choice? Let’s explore their pros and cons from both the business owner's and developer's perspectives, so you can make an informed decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  PRO
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Quick Start&lt;/strong&gt;&lt;br&gt;
With just a few clicks —view, add to cart, checkout, boom! You’ve got yourself a template. You can quickly run it on your local device and start personalising from there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Preview your Website&lt;/strong&gt;&lt;br&gt;
Imagine it's 3a.m., and you're scrolling through Facebook marketplace, scouting the price of a used Corvette you're never going to buy, and then eventually settling on a Corolla instead. It's a similar feeling here. You get the ability to window shop for the exact template that aligns with your business offerings and includes the features you need.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Development Speed&lt;/strong&gt;&lt;br&gt;
Let's say you find a template that matches 90% (e.g., design, layout, or some basic features) of your needs, now all you have to worry about is the remaining 10%. Ordinarily, the project could take several months or even years to reach 90% but you've just sped up the process with the click of a button.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Cost&lt;/strong&gt;&lt;br&gt;
Using a template is more cost-effective. It will always be the cheaper option. But remember, cheaper doesn’t always mean better. I’ll discuss this further down the article.&lt;/p&gt;

&lt;h2&gt;
  
  
  CONS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Poor Scalability&lt;/strong&gt;&lt;br&gt;
You’ve gotten your template and have applied your customisations. As the years go by, you now want to scale the project due to the growth of the business to account for the increased workload. This is where you begin to see the limitations of such templates. Templates often lack the flexibility to add advanced features like custom dashboards or robust user management systems, making scalability difficult as your business grows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Legacy and Dead Code&lt;/strong&gt;&lt;br&gt;
Imagine dealing with a template where the entire styling is compiled into a single stylesheet. An edit on line 3,000 could inadvertently affect styles on lines 17,500 and 24,200. Yes I know, just thinking about it feels like a chore. Cleaning up and determining what’s useful becomes another major task.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Redundant Packages and File Bloat&lt;/strong&gt;&lt;br&gt;
Some templates use multiple frameworks unnecessarily—for example, a dashboard styled with Bootstrap while the authentication pages use Ant Design. This mix of frameworks can lead to unnecessary complications. Additionally, many templates include styling packages as local files, overcrowding the template folder and increasing the overall application size. These redundancies can bloat your project and make maintenance more difficult by increasing performance lag or slower build time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Limited Customisation&lt;/strong&gt;&lt;br&gt;
You can customise and fine tune a Honda Civic to be a hell of a car but you know deep down there are some structural limitations that would prevent you from going all out. And if you decide to bypass them, the time and resources used would far exceed that of if you just bought the current model. This applies here when you're hiring a developer later to fix issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Time&lt;/strong&gt;&lt;br&gt;
The initial idea was to get the project online and running by the end of winter. But currently you're stuck on fixing and adjusting to accomodate new features you want. You thought a template would save time, but here you are, three months in, with only about 10% progress beyond the initial 90% the template provided. Now you’re wondering whether hiring a developer, who might have delivered a custom solution in a couple of months would have been the better choice. Well we'd know if we made the right choice sooner rather than later. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Complexity&lt;/strong&gt;&lt;br&gt;
Is there ever good complexity? When you’re working on a navbar component and encounter countless hooks and functions just to make it run, you start questioning the purpose of it all. Most codebases in templates are an intricate web of interconnected strings, where cutting one creates ripple effects far beyond what you can see.&lt;/p&gt;

&lt;h2&gt;
  
  
  Major Considerations
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cost:&lt;/strong&gt; Cheaper doesn't always mean better. While the initial price of a custom-built site might seem high, understandably, think about the long-term implications. Upfront costs for custom builds might translate into long-term savings in maintenance and scalability. Carefully consider your needs and prioritise accordingly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scale of the business:&lt;/strong&gt; How big does your business want to grow? Ask yourself this, If I'm aiming to be the next Facebook or Airbnb, would I want to start out with a template? Customising a template down the line could be more time-consuming than building a site from scratch. On the other hand, local services or small e-commerce stores might not face these challenges and could benefit from a template.&lt;/p&gt;

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

&lt;p&gt;Templates can be powerful tools for businesses that need a fast and affordable start, but they come with trade-offs that might not suit long-term goals. By carefully weighing your needs and resources, you can set your business up for success.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>discuss</category>
      <category>beginners</category>
    </item>
    <item>
      <title>React Architectural Design: A focus on cohesion and coupling.</title>
      <dc:creator>Somtochukwu Okafor</dc:creator>
      <pubDate>Mon, 20 Mar 2023 09:42:13 +0000</pubDate>
      <link>https://dev.to/somtookaforr/react-architectural-design-a-focus-on-cohesion-and-coupling-2ehg</link>
      <guid>https://dev.to/somtookaforr/react-architectural-design-a-focus-on-cohesion-and-coupling-2ehg</guid>
      <description>&lt;p&gt;One of the major design principles of Software Architectural design is to &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;increase cohesion and reduce coupling anywhere possible.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You might've stumbled upon this rule somewhere but in this article, I hope to explain it in the context of developing a react application.&lt;/p&gt;

&lt;p&gt;Let us start by first defining what cohesion and coupling both mean in an engineering context.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22ilt4sbzx57ew8j8zwq.jpg" 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%2F22ilt4sbzx57ew8j8zwq.jpg" alt="Image of several modular connections" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Photo by &lt;a href="https://unsplash.com/@guerrillabuzz?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;GuerrillaBuzz&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/RIvSJTiGwLc?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  Cohesion
&lt;/h2&gt;

&lt;p&gt;It is defined as the degree of relationship between elements of the same module. It focuses on how a single class is designed. The higher the cohesiveness of the class, the better the design. Some of the benefits of higher cohesion is that highly cohesive classes are much easier to maintain and less frequently changed.&lt;/p&gt;
&lt;h2&gt;
  
  
  Coupling
&lt;/h2&gt;

&lt;p&gt;It is defined as the degree of interdependence between the modules. It is about how much one module depends on or interacts with other modules.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Okay, now that we have a basic understanding of what cohesion and coupling both mean, let's move on to their effects and how best to approach reducing coupling and increasing cohesion to get a truly efficient react application.&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Structure is key.
&lt;/h2&gt;

&lt;p&gt;It is critical to programming to always create a good structure for your files in order to write higher level readable codes. When we talk about software architecture, in this context we are basically talking about its structure. When designing the structure of your react application it is preferable to either group modules by features/routes or by file type. You can also break down modules and group them in folders based on their category or function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; src
├── components
│   ├── navbar.js
│   ├── component.js
│   └── footer.js
├── utils
│   ├── test-utils
│   │   ├── test-utils.js
│   │   └── index.js
│   |       
├── layout
│   ├── about.js
│   ├── contact.js
│   |
├── index.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the example above you can see that we're grouping our modules by file type. Take note of how we arrange the folder and file structure. &lt;/p&gt;

&lt;h2&gt;
  
  
  2. Make your modules self-reliant.
&lt;/h2&gt;

&lt;p&gt;You do not want your modules to heavily rely on each other, it is counter-intuitive and defeats the purpose we are trying to achieve. If elements are loosely coupled, changing one element does not affect or stir on changes in other elements hence driving up the levels of cohesiveness.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(Bad example)

import Button from "../button";

const App = () =&amp;gt; {
  return (
    &amp;lt;div&amp;gt;
     &amp;lt;form action=""&amp;gt;
       &amp;lt;input type="text" /&amp;gt;
       &amp;lt;Button /&amp;gt;
     &amp;lt;/form&amp;gt;     
    &amp;lt;/div&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Any changes made to the &lt;code&gt;button&lt;/code&gt; component will affect all modules that make use of it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(Good example)

const App = () =&amp;gt; {
  return (
    &amp;lt;div&amp;gt;
     &amp;lt;form action=""&amp;gt;
       &amp;lt;input type="text" /&amp;gt;
       &amp;lt;button type="submit"&amp;gt;Get Started&amp;lt;button/&amp;gt;
     &amp;lt;/form&amp;gt;     
    &amp;lt;/div&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the example above, the button can be changed and styled as you please without causing ripples in the fabric of your application.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Be careful when passing down data between components.
&lt;/h2&gt;

&lt;p&gt;We already know by now that in a highly cohesive application, a change in one module will not affect other modules adjacent to it but we need to make sure of this by being careful when passing down data.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Header.js (good)

const Header = () =&amp;gt; {
  return (
    &amp;lt;div className=''&amp;gt;
        &amp;lt;div className=''&amp;gt;
          &amp;lt;Link to="" className='self-center'&amp;gt;
            &amp;lt;p className=''&amp;gt;{"Title"}&amp;lt;/p&amp;gt;
          &amp;lt;/Link&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;hr className=''/&amp;gt;
    &amp;lt;/div&amp;gt;
  )
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the code block above we have a component that is static and has no outside data constraints to it at all. This is always good as you can change contents of &lt;code&gt;p&lt;/code&gt; tag as much as you want without causing a chain of changes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(good and bad)

const Header = (props) =&amp;gt; {
  return (
    &amp;lt;div className='font-poppins mb-12'&amp;gt;
        &amp;lt;div className=''&amp;gt;
          &amp;lt;Link to="" className='self-center'&amp;gt;
            &amp;lt;p className=''&amp;gt;{props.title}&amp;lt;/p&amp;gt;
          &amp;lt;/Link&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;hr className=''/&amp;gt;
    &amp;lt;/div&amp;gt;
  )
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the example above you can see that we are passing a &lt;code&gt;prop&lt;/code&gt; into our &lt;code&gt;Header&lt;/code&gt; component and this component will be reused (coupled) through our application. This is a good practice because it makes the component more reusable. You can make changes to the title of the header without having to manually alter the Header.js file. But on the negative side if there are too many props in one component, a simple change will have a widespread effect that may not be easily manageable.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Elements in a module must have distinct and coordinated roles.
&lt;/h2&gt;

&lt;p&gt;What roles do your intended function/component play in a page. Is it needed, will changing it affect another component in the module, have you structured them semantically to fit the flow of the page, is it independent, and with a single, well-defined purpose? These are some questions you must ask yourself during your developmental process.&lt;/p&gt;

&lt;p&gt;Looking at the example below we can see that&lt;br&gt;
roles is an external json file which has been imported containing hard-coded information about user roles.&lt;/p&gt;

&lt;p&gt;Any changes made to the values inside roles.json will have no breaking effect on your file.&lt;br&gt;
&lt;/p&gt;

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

import React from "react";
import { roles } from "../data";

const Dropmenu = () =&amp;gt; {
  return (
    &amp;lt;&amp;gt;
      {roles.map((role, key) =&amp;gt; (
        &amp;lt;div key={key} &amp;gt;
            {role.title}
        &amp;lt;/key&amp;gt;
      ))}
    &amp;lt;/&amp;gt;
  );
};

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  NB: Using CSS frameworks
&lt;/h2&gt;

&lt;p&gt;You need to be conscious in a situation you're using a CSS framework like Tailwind where your styles will advertently have to be inline. Tailwind follows a cohesive approach because most, if not all, your style pertaining to a particular module will be written in that module so changing its styles will not have a widespread consequence on the application.&lt;br&gt;
Take for an example the code block below;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const Header = (props) =&amp;gt; {
  return (
    &amp;lt;div className='font-poppins mb-12'&amp;gt;
        &amp;lt;div className='text-lg lg:text-2xl my-4'&amp;gt;
          &amp;lt;Link to="" className='self-center flex'&amp;gt;
            &amp;lt;p className='text-[#4E4A5A] text-[28px] leading-9 
             px-20'&amp;gt;{props.title}&amp;lt;/p&amp;gt;
          &amp;lt;/Link&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;hr className='h-0.5 border-none bg-neutral-200 
         shadow-sm'/&amp;gt;
    &amp;lt;/div&amp;gt;
  )
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can see the styles have been written inline, if this component is reused in your application, no further changes to the CSS will be needed because it hardcoded.&lt;/p&gt;

&lt;h2&gt;
  
  
  Outro
&lt;/h2&gt;

&lt;p&gt;So far, we have gone over some of the steps to effectively reduce cohesion and increase coupling. It is worth noting that they are not independent terms and as so they cannot exist without each other. A system can't be 100% totally cohesive because there will always be a degree of coupling at play. &lt;br&gt;
It is worthy to also note the context in which the application is being built; the levels of cohesion might depend on the level of the project or it's requirements.&lt;/p&gt;

&lt;p&gt;I hope by now you've understood a little bit better how to write highly scalable code. Thank you for reading and please if you have any questions, feedback or more useful information to add, please leave a comment down below.&lt;/p&gt;

</description>
      <category>career</category>
      <category>productivity</category>
      <category>developers</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Tailwind CSS: My experience in 2022</title>
      <dc:creator>Somtochukwu Okafor</dc:creator>
      <pubDate>Thu, 28 Jul 2022 14:02:00 +0000</pubDate>
      <link>https://dev.to/somtookaforr/tailwind-css-my-experience-in-2022-17ki</link>
      <guid>https://dev.to/somtookaforr/tailwind-css-my-experience-in-2022-17ki</guid>
      <description>&lt;p&gt;It's 2022, and it's officially been 5 years since Tailwinds launch. Now some might ask what exactly is Tailwind CSS, well according to their &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;website&lt;/a&gt;: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tailwind CSS is basically a utility-first CSS framework for rapidly building custom user interfaces.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I have always been a Bootstrap guy (mainly for its grid column system and many prebuilt components) but after I joined my current organization, I’ve been required to work with Tailwind and it has truly been an experience. In this little article I'll go over the highs and lows I have encountered while working with Tailwind CSS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lows
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. No prebuilt components&lt;/strong&gt;&lt;br&gt;
When I started using Tailwind, I was blown away when I wanted a quick navigation bar and I couldn't see any which was of much use. This was a major shock for me because I was used to using Bootstraps prebuilt components, where I could easily tweak them to suit my needs. With Tailwind, I had to build all my components from scratch, make it responsive and add all the required JavaScript code to further improve on them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. HTML code looked jumbled&lt;/strong&gt;&lt;br&gt;
My HTML files are constantly in disarray, like a lot's going on in them. Normally, a separate CSS file would be required to house the styling and make the HTML file contain strictly markup but with Tailwind you'd have to code the Tailwind tags inline with your HTML code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/*Vanilla CSS*/&lt;/span&gt;
&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nl"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;700&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;/*Tailwind CSS*/&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="nt"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;"font-bold text-base rounded text-white"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It really just feels like a lot's going on, and indeed it is.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Repetition of Tailwind styles&lt;/strong&gt;&lt;br&gt;
I constantly see myself repeating Tailwind styles over and over again. Multiple &lt;code&gt;div&lt;/code&gt; tags with the same class attributes over multiple files eventually becomes awfully repetitive and tiresome.   &lt;/p&gt;

&lt;h2&gt;
  
  
  Highs
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Reduced CSS code&lt;/strong&gt;&lt;br&gt;
I noticed I was writing less CSS. Sometimes having the ability to change the background color of a div tag &lt;code&gt;&amp;lt;div class="bg-gray-100"&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt; or increasing the font size of a text by simply doing &lt;code&gt;&amp;lt;p class="text-lg"&amp;gt;Hello World&amp;lt;/p&amp;gt;&lt;/code&gt; felt more intuitive than switching over to my external stylesheet to write it. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Improved my understanding of CSS&lt;/strong&gt;&lt;br&gt;
Whenever I stumble on some properties in Tailwind that I have little or no knowledge of, I quickly consult my editor to find and test out the CSS equivalent of that property, and how it fully works and operates thus improving my all round knowledge of the language.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Responsiveness has never been truly easier&lt;/strong&gt;&lt;br&gt;
With tags like &lt;code&gt;xs&lt;/code&gt;, &lt;code&gt;sm&lt;/code&gt;, &lt;code&gt;lg&lt;/code&gt; etc... that could be applied to every aspect of my HTML file, manipulating CSS breakpoints has been a breeze. I almost never have to write media queries because Tailwind does a fine job of handling the aspect of responsiveness.   &lt;/p&gt;

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

&lt;p&gt;It's currently an interesting experience for me, using Tailwind. The question is, will I continue with Tailwind CSS after leaving my organization or when working on a personal project? Well for now, it's not certain, but what I do know is that it's a thrilling new experience and I'm here for every bit of it.🥳🥳&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>css</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Understanding layout positioning with CSS</title>
      <dc:creator>Somtochukwu Okafor</dc:creator>
      <pubDate>Mon, 21 Feb 2022 08:57:17 +0000</pubDate>
      <link>https://dev.to/somtookaforr/understanding-layout-positioning-with-css-526n</link>
      <guid>https://dev.to/somtookaforr/understanding-layout-positioning-with-css-526n</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;When working with CSS you will eventually run into designs that require you to rearrange the layout of your document to reach your design goals. When faced with such a task CSS provides us with various ways of doing this. In this article, we will cover some of those ways. &lt;br&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmqat6v19wigpssrdo09n.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%2Fmqat6v19wigpssrdo09n.png" alt="man pushing box" width="298" height="90"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.  Positions:&lt;/strong&gt;&lt;br&gt;
        The position property sets how an element is placed or positioned in our document. The top, bottom, left, and right properties are used with position to set the placement of an element. They only have an effect on positioned elements. The position property also specifies the type of positioning method used for an element. It could either be static, relative, fixed, absolute or sticky. &lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div.ball{
    border-radius: 50%;
    background-color: red;
    width: 100px;
    height: 100px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let us use the absolute position and give the top, left and right some values&lt;br&gt;
&lt;strong&gt;CSS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    position: absolute;
    top: 100px;
    left: 100px;
    right: 100px;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2jxnopmtvpo6f26nokdg.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%2F2jxnopmtvpo6f26nokdg.png" alt="position property" width="800" height="323"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt; &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6htqr7hvffz13sqrpka.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%2Fu6htqr7hvffz13sqrpka.png" alt="css box" width="800" height="570"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.  Margin:&lt;/strong&gt;&lt;br&gt;
        Margins can simply be said to be the space outside of the elements border. It affects the surrounding space based on what values we set the margin property to.&lt;br&gt;
Let us use the margin:&lt;br&gt;
&lt;strong&gt;CSS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    margin-top: 100px;
    margin-right: 100px;
    margin-bottom: 100px;
    margin-left: 100px;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We could also write it as:&lt;br&gt;
&lt;strong&gt;CSS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    margin: 100px;

    /* where top, right, bottom and left = 100px */
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F391jfvv3v5ej97b1lr6u.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%2F391jfvv3v5ej97b1lr6u.png" alt="margin property" width="800" height="318"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.  Padding:&lt;/strong&gt; &lt;br&gt;
          Paddings are the space inside or within an element. It controls the space within an element based on what values we set the padding property to. &lt;br&gt;
Let us now try using the padding property:&lt;br&gt;
&lt;strong&gt;CSS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    padding-top: 100px;
    padding-right: 100px;
    padding-bottom: 100px;
    padding-left: 100px;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We could also write it as:&lt;br&gt;
&lt;strong&gt;CSS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    padding: 100px;

    /* where top, right, bottom and left = 100px */
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmx3gdigujbc27khce7vm.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%2Fmx3gdigujbc27khce7vm.png" alt="padding property" width="800" height="349"&gt;&lt;/a&gt; &lt;br&gt; We should take note not to forget that the padding property is fundamentally different from the margin property so as to not mix them up.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.  Float:&lt;/strong&gt;&lt;br&gt;
        The float property does what it says, it floats an element based on the value assigned to it.&lt;br&gt;
Let us add the float property to the ball class and assign a value to it.&lt;br&gt;
&lt;strong&gt;CSS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    float: right;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5s6l7nsw87fc7mo4b8qi.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%2F5s6l7nsw87fc7mo4b8qi.png" alt="float property" width="800" height="326"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Notable Mention&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Center&lt;/strong&gt;:&lt;br&gt;
       This is a &lt;strong&gt;depreciated&lt;/strong&gt; and &lt;strong&gt;obsolete&lt;/strong&gt; html tag. It centers all elements enclosed within its tags. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;HTML&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; &amp;lt;center&amp;gt;
    &amp;lt;div class="ball"&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;/center&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9mw7pta1f0a6qz3lqnez.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%2F9mw7pta1f0a6qz3lqnez.png" alt="center tag" width="800" height="329"&gt;&lt;/a&gt; &lt;br&gt; &lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;There are many other useful properties such as display, flex, grid etc..., but I will cover them in another article. For now, with this guide, I hope that I was able to further breakdown some of these concepts to your better understanding. Stay happy coding and see you in future posts.&lt;br&gt;
You can find me on &lt;a href="https://twitter.com/somtookafor_" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/somtochukwu-okafor-3b04561a6/" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>html</category>
    </item>
    <item>
      <title>Optimizing your Visual Studio Code in 2022</title>
      <dc:creator>Somtochukwu Okafor</dc:creator>
      <pubDate>Wed, 26 Jan 2022 12:18:50 +0000</pubDate>
      <link>https://dev.to/somtookaforr/optimizing-your-visual-studio-code-in-2022-12i1</link>
      <guid>https://dev.to/somtookaforr/optimizing-your-visual-studio-code-in-2022-12i1</guid>
      <description>&lt;p&gt;In this article we’ll be covering useful extensions, plugins and settings needed in order to ease and speed up development and production in Visual Studio Code.&lt;/p&gt;

&lt;p&gt;Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux.&lt;/p&gt;

&lt;p&gt;I’ll be assuming you already have VS Code installed and running but If you don't, head to &lt;a href="http://code.visualstudio.com" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt;  to download it. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi9eupicbqodcud38p1sx.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%2Fi9eupicbqodcud38p1sx.png" alt="home" width="800" height="555"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  LET’S GET STARTED
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Settings and Tips&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bracket Pair Colorization&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bracket pair Colorization is now native on VS Code so there is no longer use for the the old reliable Bracket Pair Colorization extension.&lt;br&gt;
Follow the steps below to try it out:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Make sure to remove the Bracket Pair Colorizer extension.&lt;/li&gt;
&lt;li&gt; Update VS Code&lt;/li&gt;
&lt;li&gt; Open your user settings via &lt;code&gt;CMD&lt;/code&gt; (&lt;code&gt;CTRL&lt;/code&gt; for non-Mac users) + 
&lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;P&lt;/code&gt; and type settings. 
&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%2Fgomoxpnfrqqncot43jxp.png" alt="vscode settings" width="800" height="401"&gt;
The settings JSON file will open. Add the following:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": true,
"editor.guides.bracketPairsHorizontal": true,
"editor.guides.highlightActiveBracketPair": true,
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Emmet&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;With Emmet, we can write shortcuts and then expand them into a piece of code. An example is&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt; ul&amp;gt;li.num$*3 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
  Here we are trying to create an unordered list element with 3 items with a class name of &lt;strong&gt;"num"&lt;/strong&gt; inside. Notice that the class name also comes numbered below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"num1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"num2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"num3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;NB&lt;/em&gt;&lt;/strong&gt;: Checkout the Interactive Editor Playground page in VS Code, it highlights a number of editor features. In this section you can also find a link to the Emmet Cheat Sheet, which is super useful.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Linked Editing&lt;/strong&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%2Fb3pjzdvrd8dsj8ra536m.png" alt="linked editing setting" width="800" height="117"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is a built-in feature of VS Code, separate from the Auto Rename Tag extension. Depending on the language, related symbols, e.g HTML tags, are updated while editing. &lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Extensions and Plugins&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Live Server&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg4oyhroerj04vjgwqilx.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%2Fg4oyhroerj04vjgwqilx.png" alt="Live Server" width="800" height="192"&gt;&lt;/a&gt;&lt;br&gt;
It gives you the ability to Launch a local development server with live reload feature for static &amp;amp; dynamic pages.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VS Code Icons&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajmwo7z0mrv8915icqb1.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%2Fajmwo7z0mrv8915icqb1.png" alt="VS Code Icons" width="800" height="217"&gt;&lt;/a&gt;&lt;br&gt;
Introduce beautiful icons to your VSCode. Give your IDE a new and easy feel.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code Time&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs2cl7wr1ctjv8jv3bylf.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%2Fs2cl7wr1ctjv8jv3bylf.png" alt="Code Time" width="800" height="164"&gt;&lt;/a&gt;&lt;br&gt;
Code Time is an open source plugin for automatic programming metrics and time tracking in Visual Studio Code. Join our community of over 200,000 developers who use Code Time to reclaim time for focused, uninterrupted coding. Protect valuable code time and stay in flow.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VS Code Intellicode&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyjv238775u5vnwvawvh.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%2Ftyjv238775u5vnwvawvh.png" alt="VS Code intellicode" width="800" height="229"&gt;&lt;/a&gt;&lt;br&gt;
This extension provides AI-assisted IntelliSense by showing recommended completion items for your code context at the top of the completions list. It really helps speed things up.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ESlint &amp;amp; Prettier&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Forxty4d9oam7atawrfrl.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%2Forxty4d9oam7atawrfrl.png" alt="ESlint and Prettier" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
If you are working in an organization or a team that enforces a format or standard for code then you can adopt either of the above mentioned tools. &lt;br&gt;
ESlint is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code whereas Prettier is an opinionated specialized code formatting tool. They are both used to help developers maintain a consistent style. They can also work hand-in-hand. &lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;There are many other useful extensions and settings specific to the language you choose to work with, but I will cover them in another article or video. For now, with this guide, I hope that I was able to introduce you to some easier ways of doing things. Stay happy coding and see you in future posts.&lt;/p&gt;

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