<?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: Talha Ali</title>
    <description>The latest articles on DEV Community by Talha Ali (@growwwithtalha).</description>
    <link>https://dev.to/growwwithtalha</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%2F1502743%2F07ecc8ef-77fc-4ce7-baaa-c8339b62274b.png</url>
      <title>DEV Community: Talha Ali</title>
      <link>https://dev.to/growwwithtalha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/growwwithtalha"/>
    <language>en</language>
    <item>
      <title>Getting started with Bun: A beginners guide</title>
      <dc:creator>Talha Ali</dc:creator>
      <pubDate>Sun, 19 May 2024 11:41:14 +0000</pubDate>
      <link>https://dev.to/growwwithtalha/getting-started-with-bun-a-beginners-guide-m3d</link>
      <guid>https://dev.to/growwwithtalha/getting-started-with-bun-a-beginners-guide-m3d</guid>
      <description>&lt;h2&gt;
  
  
  What is Bun?
&lt;/h2&gt;

&lt;p&gt;Bun is a new JavaScript runtime and package manager that focuses on speed and efficiency. It leverages the JavaScriptCore engine (the same engine used by Safari) to deliver high performance. Here are some standout features of Bun:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Performance: Bun is designed to be one of the fastest JavaScript runtimes available, with various optimizations that speed up development tasks.&lt;/li&gt;
&lt;li&gt;Compatibility: Bun is highly compatible with Node.js and npm packages, making it easy to migrate existing projects or start new ones.&lt;/li&gt;
&lt;li&gt;Built-in Tools: Bun includes a built-in bundler, transpiler, and task runner, reducing the need for multiple development tools.&lt;/li&gt;
&lt;li&gt;TypeScript Support: Bun offers first-class support for TypeScript, simplifying the development process for TypeScript developers.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why Choose Bun?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Speed&lt;/strong&gt;: Bun's primary selling point is its speed. By leveraging the JavaScriptCore engine, Bun can execute JavaScript code more quickly than many other runtimes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developer Experience:&lt;/strong&gt; Bun aims to streamline the development process with built-in tools that reduce setup time and complexity. This means less time configuring and more time coding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compatibility:&lt;/strong&gt; Bun's compatibility with Node.js and npm packages ensures that developers can easily transition to using Bun without abandoning their existing workflows and libraries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up Bun
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;p&gt;Before you can start using Bun, you'll need to install it on your system. Here’s how to do it using &lt;strong&gt;npm&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;npm install -g bun
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and thats it. Bun is now successfully installed in your system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Your First Project with Bun
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Initializing first Bun project:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;bun init
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will initialize a simple bun project. A basic bun project looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-bun-project/
├── node_modules
├── index.ts
├── .gitignore
├── README.md
├── bun.lockb
└── package.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Running Bun project:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;bun run index.ts
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can run your project using bun run command. Additionally you can append scripts object with this command in package.json.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
    "dev": "bun run index.ts"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now if you run this command in terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bun dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then you should see this in your terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello via Bun!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Voila you just created and executed your first bun project. Now lets see how we can install packages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing packages using Bun
&lt;/h2&gt;

&lt;p&gt;In order to install packages using bun you can run this command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bun add &amp;lt;package-name&amp;gt; # alternative of npm i 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to run npx scripts using Bun you can run this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bun x &amp;lt;script-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to install all dependencies that are present in package.json like &lt;code&gt;npm install&lt;/code&gt;, you can use this command to do this in Bun.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bun install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to update all dependencies that are present in package.json like &lt;code&gt;npm update&lt;/code&gt;, you can use this command to do this in Bun.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bun update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Using installed Packages
&lt;/h2&gt;

&lt;p&gt;You can easily use installed packages by importing them in your file and use them as usual:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import express from "express";
const app = express();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are all the essential things for a begginer to start using &lt;code&gt;Bun&lt;/code&gt;&lt;/p&gt;

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

&lt;p&gt;Bun is a powerful and efficient JavaScript runtime and package manager, known for its speed and developer-friendly features. It offers high compatibility with Node.js and npm packages, built-in tools like a bundler, transpiler, and task runner, and out-of-the-box TypeScript support. With simple installation and intuitive commands, Bun streamlines the development process, allowing developers to focus on coding rather than setup. Whether starting a new project or migrating an existing one, Bun provides a robust environment that enhances productivity and performance. keep growing and Happy coding!.&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Official Documentation: Bun &lt;a href="https://bun.sh/docs"&gt;Documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub Repository: Bun &lt;a href="https://github.com/oven-sh/bun"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Community Links: Bun &lt;a href="https://discord.com/invite/bun-876711213126520882"&gt;Community&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Further Reading: Explore more articles and tutorials on Bun and related technologies.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>bunjs</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Master Web Components: Create and Host Your Own</title>
      <dc:creator>Talha Ali</dc:creator>
      <pubDate>Fri, 17 May 2024 11:24:47 +0000</pubDate>
      <link>https://dev.to/growwwithtalha/master-web-components-create-and-host-your-own-4p7h</link>
      <guid>https://dev.to/growwwithtalha/master-web-components-create-and-host-your-own-4p7h</guid>
      <description>&lt;p&gt;In modern web development, creating reusable and embeddable web components is crucial for maintaining scalable and maintainable codebases. In this blog post, we'll walk you through the process of creating a reusable CreditsComponent using HTML, CSS, and JavaScript. By the end of this tutorial, you'll know how to build, customize, and host your own web components for free.&lt;/p&gt;

&lt;p&gt;The other day, I was developing a project. After completing that project, I had to add credits manually. At that time, I thought about how we can make a reusable component in HTML, CSS, and JS. After some research, I came to know that we can achieve this by leveraging the power of class extension in JS and CDNs. So lets learn how we can create reusable web components and host them with ease.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. What are Web Components?
&lt;/h2&gt;

&lt;p&gt;Web components are a set of web platform APIs that allow you to create new, reusable, and encapsulated HTML tags to use in web pages and web apps. They consist of three main technologies:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Custom Elements:&lt;/strong&gt; Define new HTML elements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shadow DOM:&lt;/strong&gt; Encapsulate styles and markup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTML Templates:&lt;/strong&gt; Define reusable HTML fragments.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  2. Setting Up the Environment.
&lt;/h2&gt;

&lt;p&gt;Before we begin, ensure you have a text editor (like VSCode) and a basic understanding of HTML, CSS, and JavaScript. Additionally, use a modern browser that supports web components. (Most of popular browsers supports this feature).&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%2Fcikedpudpmdojbxusbz9.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%2Fcikedpudpmdojbxusbz9.PNG" alt="Master Web Components: Create and Host Your Own"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Creating the &lt;code&gt;CreditsComponent&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;We'll start by defining a class for our custom element and setting up its Shadow DOM.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Define the class and constructor
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# credit-component.js
class CreditsComponent extends HTMLElement {
  constructor() {
    super();
    this.attachShadow({ mode: "open" });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Create a new credit-component.js file. Here, we extend HTMLElement to create a custom element and use the constructor to initialize the component. (You don't need to fully understand this code. Just copy and paste).&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Attaching the Shadow DOM
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;this.attachShadow({ mode: "open" });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The Shadow DOM provides encapsulation, ensuring styles and markup within the component don’t affect the rest of the page.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Adding Styles
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const style = document.createElement("style");
style.textContent = `
  .Credits {
    min-height: 10vh;
    box-shadow: 10px 10px 30px black;
    background-color: white;
    border-radius: 50px;
    display: flex;
    align-items: center;
    padding: 0 20px;
    justify-content: space-between;
    margin: 2rem 4rem;
  }
  .links {
    display: flex;
  }
  .links &amp;gt; a {
    text-decoration: none;
    color: black;
    font-size: 20px;
    margin: 0 4.5px;
  }
`;
this.shadowRoot.append(style);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This CSS styles the component, ensuring it looks consistent regardless of where it’s used, and appends it to shadow DOM.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Creating the HTML Template
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const container = document.createElement("div");
container.classList.add("Credits");
container.innerHTML = `
  &amp;lt;h1&amp;gt;Made by GrowWithTalha 💜&amp;lt;/h1&amp;gt;
  &amp;lt;div class="links"&amp;gt;
    &amp;lt;a href="https://growwithtalha.vercel.app/"&amp;gt;Portfolio&amp;lt;/a&amp;gt;
    &amp;lt;a href="https://github.com/GrowWidTalha"&amp;gt;Github&amp;lt;/a&amp;gt;
    &amp;lt;a href="https://www.linkedin.com/in/growwithtalha-webdeveloper"&amp;gt;Linkedin&amp;lt;/a&amp;gt;
    &amp;lt;a href="https://twitter.com/GrowWithTalha"&amp;gt;Twitter&amp;lt;/a&amp;gt;
    &amp;lt;a href="mailto:growwithtalha@outlook.com"&amp;gt;Contact&amp;lt;/a&amp;gt;
  &amp;lt;/div&amp;gt;
`;
this.shadowRoot.append(container);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This creates a simple HTML structure within the component. You can always change the styles and HTML structure according to your needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Adding Dynamic Content with Attributes
&lt;/h3&gt;

&lt;p&gt;To make our component more flexible, we'll use the connectedCallback method to handle dynamic content.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;connectedCallback() {
  const credits = this.getAttribute("credits") || "";
  const creditsArray = credits.split(",");
  const creditsList = this.shadowRoot.querySelector(".Credits .links");

  creditsArray.forEach((credit) =&amp;gt; {
    const listItem = document.createElement("a");
    listItem.href = "#";
    listItem.textContent = credit.trim();
    creditsList.appendChild(listItem);
  });
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This method allows the component to accept a credits attribute and dynamically add links based on its value.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Registering the Custom Element
&lt;/h3&gt;

&lt;p&gt;Finally, we need to register our custom element.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;customElements.define("credits-component", CreditsComponent);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This makes our component available for use in any HTML document.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Using the CreditsComponent in Your Project
&lt;/h3&gt;

&lt;p&gt;To use the CreditsComponent, simply link the credit-component.js file in your HTML document and include this in your HTML:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;credits-component credits="Blog, Tutorials, Contact"&amp;gt;&amp;lt;/credits-component&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This will render the component with additional dynamic links.&lt;br&gt;
NOTE: The credits attribute is totally optional and you don't have to add them.&lt;/p&gt;

&lt;h4&gt;
  
  
  Full code for &lt;code&gt;credits-component.js&lt;/code&gt;
&lt;/h4&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class CreditsComponent extends HTMLElement {
  constructor() {
    super();
    this.attachShadow({ mode: "open" });

    // Styles
    const style = document.createElement("style");
    style.textContent = `
      .Credits {
        min-height: 10vh;
        box-shadow: 10px 10px 30px black;
        background-color: white;
        border-radius: 50px;
        display: flex;
        align-items: center;
        padding: 0 20px;
        justify-content: space-between;
        margin: 2rem 4rem;
      }
      .links {
        display: flex;
      }
      .links &amp;gt; a {
        text-decoration: none;
        color: black;
        font-size: 20px;
        margin: 0 4.5px;
      }
    `;

    // HTML Template
    const container = document.createElement("div");
    container.classList.add("Credits");
    container.innerHTML = `
      &amp;lt;h1&amp;gt;Made by GrowWithTalha 💜&amp;lt;/h1&amp;gt;
      &amp;lt;div class="links"&amp;gt;
        &amp;lt;a href="https://growwithtalha.vercel.app/"&amp;gt;Portfolio&amp;lt;/a&amp;gt;
        &amp;lt;a href="https://github.com/GrowWidTalha"&amp;gt;Github&amp;lt;/a&amp;gt;
        &amp;lt;a href="https://www.linkedin.com/in/growwithtalha-webdeveloper"&amp;gt;Linkedin&amp;lt;/a&amp;gt;
        &amp;lt;a href="https://twitter.com/GrowWithTalha"&amp;gt;Twitter&amp;lt;/a&amp;gt;
        &amp;lt;a href="mailto:growwithtalha@outlook.com"&amp;gt;Contact&amp;lt;/a&amp;gt;
      &amp;lt;/div&amp;gt;
    `;

    // Append styles and container to the shadow DOM
    this.shadowRoot.append(style, container);
  }

  connectedCallback() {
    const credits = this.getAttribute("credits") || "";
    const creditsArray = credits.split(",");
    const creditsList = this.shadowRoot.querySelector(".Credits .links");

    creditsArray.forEach((credit) =&amp;gt; {
      const listItem = document.createElement("a");
      listItem.href = "#";
      listItem.textContent = credit.trim();
      creditsList.appendChild(listItem);
    });
  }
}

customElements.define("credits-component", CreditsComponent);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now we have our component setup locally. But thats not a convenient option. Now we have to host this &lt;code&gt;credit-component.js&lt;/code&gt; file as a CDN so we can easily link it in our HTML page and use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Hosting Your Web Component
&lt;/h2&gt;

&lt;p&gt;In order to host our web component we have to push our code to github and create a jsdelivr link to access it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1. Push &lt;code&gt;credits-component.js&lt;/code&gt; to Github.
&lt;/h3&gt;

&lt;p&gt;First step is to push your code on github. If you don't know how to do it then just go and learn. It will only take you couple of minutes to learn.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2. Create a JSDelivr link:
&lt;/h3&gt;

&lt;p&gt;The next step is to create a cdn link. Don't its free and you don't even have to create any account.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://cdn.jsdelivr.net/gh/&amp;lt;YourUserName&amp;gt;/&amp;lt;repo-name&amp;gt;@master/&amp;lt;File-Name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;YourUserName&lt;/strong&gt;: Replace this part with your Github user name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;repo-name&lt;/strong&gt;: Replace this with your repo name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;file-name&lt;/strong&gt;: Replace this part with your file name with .js extension.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After completing the above steps your URL should look like this.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://cdn.jsdelivr.net/gh/GrowWidTalha/credit-component-cdn@master/credit-component.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;If you paste this URL in a browser you will get the contents of your credit-components.js file. Congrats you just created your first CDN.&lt;/p&gt;

&lt;p&gt;Now use this link in your HTML documents to use your custom component.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;-- Your Other HTML code.....--!&amp;gt;
&amp;lt;credit-component&amp;gt;&amp;lt;/credit-component&amp;gt;

&amp;lt;script src="Your CDN link"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;-- Your Other HTML code.....--!&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;And voila you made a custom web component and hosted it on a CDN.&lt;/p&gt;

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

&lt;p&gt;Building reusable web components streamlines development and improves code maintainability. You've learned to create a custom CreditsComponent using HTML, CSS, and JavaScript, enhancing modularity and flexibility in your projects. You also learned to HOST these components on the web. Experiment with customization to suit your needs and enjoy the benefits of simplified coding. Till then Keep Growing.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
