<?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: Muhammad Furqan</title>
    <description>The latest articles on DEV Community by Muhammad Furqan (@furqanramzan).</description>
    <link>https://dev.to/furqanramzan</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%2F551731%2Fdc3f786f-6165-47c2-91be-5988366125e2.jpg</url>
      <title>DEV Community: Muhammad Furqan</title>
      <link>https://dev.to/furqanramzan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/furqanramzan"/>
    <language>en</language>
    <item>
      <title>Unleashing Iconify: Your Ultimate Solution for Icons</title>
      <dc:creator>Muhammad Furqan</dc:creator>
      <pubDate>Mon, 16 Oct 2023 14:40:00 +0000</pubDate>
      <link>https://dev.to/furqanramzan/unleashing-iconify-your-ultimate-solution-for-icons-3dlc</link>
      <guid>https://dev.to/furqanramzan/unleashing-iconify-your-ultimate-solution-for-icons-3dlc</guid>
      <description>&lt;p&gt;Icons play a vital role in the web development. They guide us, convey messages, and enhance user experiences on numerous websites and applications. Whether you are an experienced developer or a beginner in web development, having a reliable source of high-quality icons is essential. This is where &lt;a href="https://iconify.design/" rel="noopener noreferrer"&gt;Iconify&lt;/a&gt; comes in, providing an extensive selection of icons that will breathe life into your projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Understanding Iconify
&lt;/h3&gt;

&lt;p&gt;Iconify is a comprehensive icon library featuring over 150,000 icons and access to over 115 icon sets. It simplifies the process of integrating icons into web development projects, offering a seamless way to choose, customize, and use icons effectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Iconify Features
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Diverse Icon Collection
&lt;/h4&gt;

&lt;p&gt;Iconify showcases an extensive collection of icons that span various categories and styles. Whether you're in need of simplistic and minimalistic icons or intricate and detailed ones, Iconify has got you covered.&lt;/p&gt;

&lt;h4&gt;
  
  
  Seamless Integration
&lt;/h4&gt;

&lt;p&gt;With Iconify, integrating icons becomes effortless. Developers can effortlessly incorporate icons into their projects through straightforward API calls or by utilizing specific libraries that are compatible with popular frameworks and platforms.&lt;/p&gt;

&lt;h4&gt;
  
  
  Customization Flexibility
&lt;/h4&gt;

&lt;p&gt;Iconify offers effortless customization options for icons, allowing you to tailor them to suit your project's aesthetic. You have the ability to adjust attributes such as size, color, and more, ensuring that the icons seamlessly blend with your design.&lt;/p&gt;

&lt;h4&gt;
  
  
  Optimal Performance
&lt;/h4&gt;

&lt;p&gt;The lightweight nature of Iconify icons ensures swift loading times, without compromising page speed or overall performance.&lt;/p&gt;

&lt;h4&gt;
  
  
  Compatibility Across Frameworks
&lt;/h4&gt;

&lt;p&gt;Iconify seamlessly integrates with a wide range of frameworks, libraries, and platforms. Whether you're utilizing Svelte, Vue.js, Qwik, React, Tailwind, or UnoCSS, the process of integrating icons remains straightforward.&lt;/p&gt;

&lt;h4&gt;
  
  
  VSCode Extension
&lt;/h4&gt;

&lt;p&gt;Enhance your development workflow with Iconify's VSCode extension, which provides a convenient icon preview directly within the VSCode interface.&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%2Fbfx22w99qt27n8jf6ygx.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%2Fbfx22w99qt27n8jf6ygx.png" alt="VSCode Iconify Preview" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Search Utility
&lt;/h4&gt;

&lt;p&gt;Effortlessly locate the icons you require by utilizing Iconify's user-friendly &lt;a href="https://icones.js.org/" rel="noopener noreferrer"&gt;search feature&lt;/a&gt;. Simplify your workflow and save the time spent on selecting icons.&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%2Fvqzhh1zfgkogtt8ytf4m.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%2Fvqzhh1zfgkogtt8ytf4m.png" alt="Iconify Search Utility" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Elevate Your Projects with Iconify
&lt;/h3&gt;

&lt;p&gt;Incorporating icons into your web projects has never been easier, thanks to Iconify. With its vast collection and seamless integration, you can effortlessly enhance your project's visual appeal and user experience.&lt;/p&gt;

&lt;p&gt;Embrace the power of icons and unlock a world of creative possibilities with Iconify. Streamline your development process and leave a lasting impression on your audience.&lt;/p&gt;

&lt;p&gt;These features are just the tip of the iceberg. To explore the complete set of features, you can start by visiting the &lt;a href="https://iconify.design/getting-started/" rel="noopener noreferrer"&gt;Iconify documentation site&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;Stay updated with the latest tech insights by following me!&lt;/p&gt;

&lt;p&gt;Are you in need of a highly skilled freelancer specializing in full-stack development to tackle your development challenges? Get in touch with me on &lt;a href="https://www.upwork.com/freelancers/furqanramzan" rel="noopener noreferrer"&gt;Upwork&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Curious about my current projects? Take a look at my &lt;a href="//furqanramzan.com"&gt;Personal Website&lt;/a&gt; and &lt;a href="https://github.com/furqanramzan" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Interested in connecting? Feel free to reach out to me on &lt;a href="https://www.linkedin.com/in/furqanramzan/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. You can also find me on &lt;a href="https://twitter.com/furqanramzan96" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>ui</category>
      <category>css</category>
    </item>
    <item>
      <title>Nx: Elevate monorepo to the next level</title>
      <dc:creator>Muhammad Furqan</dc:creator>
      <pubDate>Tue, 10 Oct 2023 22:49:55 +0000</pubDate>
      <link>https://dev.to/furqanramzan/nx-elevate-monorepo-to-the-next-level-84b</link>
      <guid>https://dev.to/furqanramzan/nx-elevate-monorepo-to-the-next-level-84b</guid>
      <description>&lt;p&gt;In my most recent article, I explored the concept of monorepo and suggested pnpm, yarn, and npm as good options for managing them. However, these tools might not be the perfect fit for everyone's needs. That's where &lt;a href="https://nx.dev/" rel="noopener noreferrer"&gt;Nx&lt;/a&gt; comes in. Nx is a powerful tool specifically designed to streamline monorepo management. From reducing development and CI/CD time to promoting scalability and reusability, Nx is a game-changer. In this blog post, we will take a closer look at Nx, highlighting its key features and demonstrating how it can greatly improve your projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Understanding Nx: An Overview
&lt;/h3&gt;

&lt;p&gt;Nx is a toolkit that is open-source and has been created to assist developers in constructing monorepos that have the ability to scale. It leverages modern development tools and practices to provide an efficient workflow for large-scale applications. Nx offers capabilities for developing multiple applications, libraries, and APIs within a single monorepo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features of Nx
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Monorepo Approach
&lt;/h4&gt;

&lt;p&gt;Nx follows the monorepo architecture, allowing developers to manage multiple projects within a single repository. This approach enhances code sharing, simplifies dependency management, and facilitates efficient collaboration across teams.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Code Generation
&lt;/h4&gt;

&lt;p&gt;Nx offers a remarkable feature - its efficient code generation capabilities using plugin. This functionality enables developers to easily create essential elements such as components, services, modules, and more. It ensures adherence to best practices and project-specific guidelines, simplifying and speeding up the development process. As a result, codebases have a consistent and organized architecture right from the beginning. The strength of Nx lies in its automation and optimization of code creation, allowing teams to concentrate on building applications instead of getting caught up in repetitive and time-consuming setup tasks.&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%2F9uwbhiyuhsahj2utsrwi.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%2F9uwbhiyuhsahj2utsrwi.jpg" alt="Nx Code Generation" width="800" height="809"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Dependency Graph
&lt;/h4&gt;

&lt;p&gt;Nx provides a user-friendly and thorough display of the project's dependency graph, showcasing a visual portrayal of the complex links and interconnections among different elements within the codebase. This functionality improves comprehension and examination of the code structure, assisting developers in effectively handling dependencies and optimizing the development procedure.&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%2Flo7luri0ddu8ap2ali3e.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%2Flo7luri0ddu8ap2ali3e.png" alt="Nx Dependency Graph" width="800" height="605"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Parallel Task Execution
&lt;/h4&gt;

&lt;p&gt;Nx utilizes parallel task execution to enhance the efficiency of workflows. It cleverly arranges and performs tasks simultaneously, taking into account their interdependencies. This method significantly accelerates the development pace, guaranteeing smooth task management, and ultimately saving considerable time for both developers and the CI/CD process.&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%2Fzwwy1y65f0ezyk42y2ww.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%2Fzwwy1y65f0ezyk42y2ww.png" alt="Nx Parallel Task Execution" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Never rerun tasks twice
&lt;/h4&gt;

&lt;p&gt;Nx incorporates a smart system that strategically employs caching to prevent unnecessary repetition of tasks. Processes like building and conducting linting checks are never never rerun twice. Nx identifies that there have been no changes in the project's files. As a result, it retrieves files and terminal outputs from its cache. Moreover, it extends caching to remote repositories, facilitating distribution across multiple machines. This methodology leads to substantial time savings for developers and the CI/CD pipeline.&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%2Fq3vye7lf9b8xxtvxg4q8.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%2Fq3vye7lf9b8xxtvxg4q8.png" alt="Nx Cache Output" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  6. Fine-Tuning Task Execution
&lt;/h4&gt;

&lt;p&gt;Nx enables you to specify the circumstances under which the cache for that task should be invalidated and the task should be executed again. For instance, you can instruct the nx to be rebuilt the project only if there are modifications in files with the extensions js, ts, or json. Alternatively, you can define the project to be rebuilt whenever any file changes, except for files with the extensions md, test.ts, or test.js.&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%2Fzqrhbxckrkywzv58fmhu.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%2Fzqrhbxckrkywzv58fmhu.png" alt="Nx Fine-Tuning Task Execution" width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to integrate Nx into current project
&lt;/h3&gt;

&lt;p&gt;Regardless of whether your project is a monorepo or not, you can utilize features 4, 5, and 6. Simply install the nx package from the npm registry and run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx nx init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is precisely what I implemented in my portfolio project. Feel free to check it out &lt;a href="https://github.com/furqanramzan/portfolio" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;Nx emerges as a transformative toolkit for developers navigating the complexities of monorepo management. By significantly reducing development and CI/CD time, promoting scalability, and enhancing reusability, Nx proves to be a vital asset for modern development workflows. Ready to explore the capabilities of Nx? Head over to the &lt;a href="https://nx.dev/getting-started/intro" rel="noopener noreferrer"&gt;Nx documentation&lt;/a&gt; and get started on revolutionizing your projects.&lt;/p&gt;




&lt;p&gt;Stay updated with the latest tech insights by following me!&lt;/p&gt;

&lt;p&gt;Are you in need of a highly skilled freelancer specializing in full-stack development to tackle your development challenges? Get in touch with me on &lt;a href="https://www.upwork.com/freelancers/furqanramzan" rel="noopener noreferrer"&gt;Upwork&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Curious about my current projects? Take a look at my &lt;a href="//furqanramzan.com"&gt;Personal Website&lt;/a&gt; and &lt;a href="https://github.com/furqanramzan" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Interested in connecting? Feel free to reach out to me on &lt;a href="https://www.linkedin.com/in/furqanramzan/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. You can also find me on &lt;a href="https://twitter.com/furqanramzan96" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>coding</category>
      <category>devops</category>
    </item>
    <item>
      <title>Monorepos: Making Development Easier and Smoother</title>
      <dc:creator>Muhammad Furqan</dc:creator>
      <pubDate>Fri, 06 Oct 2023 11:41:28 +0000</pubDate>
      <link>https://dev.to/furqanramzan/monorepos-making-development-easier-and-smoother-3kl8</link>
      <guid>https://dev.to/furqanramzan/monorepos-making-development-easier-and-smoother-3kl8</guid>
      <description>&lt;p&gt;Efficient management of codebases is key to success in the realm of software development. Code is at the heart of every application and system, driving the technology that shapes our digital world. Monorepos, short for monolithic repositories, have emerged as a robust solution for handling codebases of varying sizes and complexities. In this blog post, we will explore what monorepos are, their advantages, and how they streamline the software development process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Understanding Monorepos: A Closer Look
&lt;/h3&gt;

&lt;p&gt;A monorepo is a single, centralized version control repository that holds multiple projects, libraries, and applications. Traditionally, organizations would employ multiple repositories to manage their projects. However, as projects grow in scale and complexity, managing them individually becomes challenging. Monorepos aim to address this issue by consolidating multiple projects under a single repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advantages of Monorepos:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-Project Consistency&lt;/strong&gt;:&lt;br&gt;
Maintaining a consistent coding style, shared configurations, and conventions across projects is simpler within a monorepo. This leads to a more cohesive and standardized codebase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unified Versioning&lt;/strong&gt;:&lt;br&gt;
In a monorepo, all projects share a unified version. This simplifies version management and ensures consistency across the entire codebase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simplified Build and Test Processes&lt;/strong&gt;:&lt;br&gt;
With all projects under a single repository, build and test processes are streamlined. Changes across multiple projects can be tested and validated simultaneously, ensuring compatibility and reducing integration challenges.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Efficient Code Sharing&lt;/strong&gt;:&lt;br&gt;
Monorepos allow for seamless sharing of code between projects. Shared components, libraries, and utilities can be centralized within the repository, promoting reusability and minimizing redundancy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Atomic Changes&lt;/strong&gt;:&lt;br&gt;
Monorepos facilitate atomic commits and changes across projects. Developers can work on changes collectively, ensuring consistent and synchronized updates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simplified Dependency Management&lt;/strong&gt;:&lt;br&gt;
All projects within a monorepo share the same dependency graph. This simplifies dependency management and mitigates potential conflicts, enhancing stability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Easier Refactoring&lt;/strong&gt;:&lt;br&gt;
Refactoring, or improving the structure of the code without changing its external behavior, becomes easier in a monorepo. Developers can make widespread updates confidently, knowing that they're not inadvertently breaking other parts of the system.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Use Cases of Monorepos:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Large-scale Projects&lt;/strong&gt;:&lt;br&gt;
Monorepos are ideal for managing large-scale projects with numerous interdependent modules or services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Product Suites&lt;/strong&gt;:&lt;br&gt;
Companies with multiple related products can benefit from a monorepo, keeping all projects under one roof for streamlined management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Component Libraries&lt;/strong&gt;:&lt;br&gt;
Monorepos are valuable for organizations developing and maintaining shared component libraries used across multiple projects.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Implementing Monorepos with Workspaces:
&lt;/h3&gt;

&lt;p&gt;Modern package managers like &lt;a href="https://docs.npmjs.com/cli/v7/using-npm/workspaces" rel="noopener noreferrer"&gt;npm&lt;/a&gt;, &lt;a href="https://yarnpkg.com/features/workspaces" rel="noopener noreferrer"&gt;Yarn&lt;/a&gt;, and &lt;a href="https://pnpm.io/workspaces" rel="noopener noreferrer"&gt;pnpm&lt;/a&gt; provide a feature called workspaces, which allows developers to manage multiple packages in a single repository. With these tools and practices, you can effectively organize a monorepo, manage dependencies, and enhance collaboration within your development team.&lt;/p&gt;

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

&lt;p&gt;Monorepos are a powerful tool for modern software development, streamlining version control, build processes, and code sharing. As projects continue to evolve in scale and complexity, adopting a monorepo approach can significantly enhance productivity and collaboration within development teams.&lt;/p&gt;

&lt;p&gt;Embrace the advantages of monorepos and elevate your software development process to new heights of efficiency and organization.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;




&lt;p&gt;Stay updated with the latest tech insights by following me!&lt;/p&gt;

&lt;p&gt;Are you in need of a highly skilled freelancer specializing in full-stack development to tackle your development challenges? Get in touch with me on &lt;a href="https://www.upwork.com/freelancers/furqanramzan" rel="noopener noreferrer"&gt;Upwork&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Curious about my current projects? Take a look at my &lt;a href="//furqanramzan.com"&gt;Personal Website&lt;/a&gt; and &lt;a href="https://github.com/furqanramzan" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Interested in connecting? Feel free to reach out to me on &lt;a href="https://www.linkedin.com/in/furqanramzan/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. You can also find me on &lt;a href="https://twitter.com/furqanramzan96" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>coding</category>
      <category>javascript</category>
      <category>git</category>
    </item>
    <item>
      <title>Pushing Code to cPanel with Git</title>
      <dc:creator>Muhammad Furqan</dc:creator>
      <pubDate>Sun, 01 Oct 2023 20:14:21 +0000</pubDate>
      <link>https://dev.to/furqanramzan/pushing-code-to-cpanel-with-git-35gi</link>
      <guid>https://dev.to/furqanramzan/pushing-code-to-cpanel-with-git-35gi</guid>
      <description>&lt;p&gt;In the fast-paced realm of web development, effectively and efficiently deploying code is a common hurdle. Traditional methods of deployment, particularly with vanilla HTML, CSS, and JS, often involve manual processes, FTP transfers, and the potential for human errors. This can consume time, be prone to mistakes, and disrupt a smooth development workflow.&lt;/p&gt;

&lt;p&gt;The traditional process of pushing code to cPanel using Git can be laborious. One challenge frequently encountered is integrating cPanel with online Git repositories like GitHub or GitLab. This requires additional SSH logins, managing credentials, and manually pulling changes. These obstacles often impede the seamless progress of projects.&lt;/p&gt;

&lt;p&gt;In this article, we will explore a simple method to overcome these challenges and improve your development experience. I will guide you through the process of pushing your code directly to cPanel using Git, streamlining your workflow and optimizing your development journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;To proceed, make sure you have SSH access to your cPanel account.&lt;/p&gt;

&lt;p&gt;You should also have Git installed on your local machine.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Creating a Repository on cPanel
&lt;/h3&gt;

&lt;p&gt;The first step is to create a Git repository on your cPanel account.&lt;/p&gt;

&lt;p&gt;Log in to your cPanel account via SSH.&lt;/p&gt;

&lt;p&gt;Create and navigate to the directory where you want to push your code. For example, let's say you want to push code to the &lt;code&gt;app&lt;/code&gt; directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir ~/app
cd ~/app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Initialize a new git repository using the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git init --initial-branch=main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By default, pushing a branch to a non-bare Git repository in which the branch is currently checked out is not allowed. However, you can enable such a push by setting the &lt;code&gt;receive.denyCurrentBranch&lt;/code&gt; option. For more detail &lt;a href="https://gist.github.com/mendeza/eaeafb1c0e018ffd472bc8fae2a8462c" rel="noopener noreferrer"&gt;click here&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git config receive.denyCurrentBranch updateInstead
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: Including cPanel Repository as a Remote
&lt;/h2&gt;

&lt;p&gt;Next, you should include the cPanel Git repository as a remote in your local Git repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git remote add cpanel ssh://username@domain_name_or_ip:port/~/app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure to replace &lt;code&gt;username&lt;/code&gt;, &lt;code&gt;domain_name_or_ip&lt;/code&gt;, and &lt;code&gt;port&lt;/code&gt; with your own SSH credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Pushing Code to cPanel
&lt;/h2&gt;

&lt;p&gt;Now, you are ready to push your code to the cPanel repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push cpanel main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will push the &lt;code&gt;main&lt;/code&gt; branch of your local repository to the &lt;code&gt;main&lt;/code&gt; branch of the cPanel repository. If you wish to push your local &lt;code&gt;master&lt;/code&gt; branch instead, you can use the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push cpanel master:main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Utilizing Git for code deployment can greatly improve your workflow, making the process more efficient and manageable. By following these instructions, you can effortlessly push your code to cPanel and ensure a seamless deployment process for your web projects. Happy deployment!&lt;/p&gt;




&lt;p&gt;Stay updated with the latest tech insights by following me!&lt;/p&gt;

&lt;p&gt;Are you in need of a highly skilled freelancer specializing in full-stack development to tackle your development challenges? Get in touch with me on &lt;a href="https://www.upwork.com/freelancers/furqanramzan" rel="noopener noreferrer"&gt;Upwork&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Curious about my current projects? Take a look at my &lt;a href="//furqanramzan.com"&gt;Personal Website&lt;/a&gt; and &lt;a href="https://github.com/furqanramzan" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Interested in connecting? Feel free to reach out to me on &lt;a href="https://www.linkedin.com/in/furqanramzan/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. You can also find me on &lt;a href="https://twitter.com/furqanramzan96" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>git</category>
      <category>devops</category>
    </item>
    <item>
      <title>JavaScript-Independent Web Apps: A Step Toward Inclusive Digital Experiences</title>
      <dc:creator>Muhammad Furqan</dc:creator>
      <pubDate>Fri, 22 Sep 2023 21:09:48 +0000</pubDate>
      <link>https://dev.to/furqanramzan/javascript-independent-web-apps-a-step-toward-inclusive-digital-experiences-3a9j</link>
      <guid>https://dev.to/furqanramzan/javascript-independent-web-apps-a-step-toward-inclusive-digital-experiences-3a9j</guid>
      <description>&lt;p&gt;In today’s digital era, where advanced web applications reign supreme, it is crucial to prioritize accessibility and usability for users in different scenarios. A key factor in achieving this is ensuring that the fundamental functionalities of a web application work seamlessly, even when JavaScript is turned off. In this article, we will explore the significance of this aspect and discover how SvelteKit can effortlessly help you achieve it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Web Apps Should Function Without JavaScript?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Enhancing Accessibility and Inclusivity&lt;/strong&gt;: A considerable proportion of individuals who use the internet rely on assistive technologies that may not fully support JavaScript. By developing web applications that can function without JavaScript, we can create a more inclusive online experience, catering to a wider range of users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Optimizing SEO and Search Engine Indexing&lt;/strong&gt;: Search engines often face challenges in indexing content within web applications that heavily rely on JavaScript. Ensuring that essential features can work without JavaScript enhances search engine visibility and overall performance in terms of search engine optimization (SEO), ultimately leading to improved discoverability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Boosting Performance on Low-End Devices&lt;/strong&gt;: Certain devices or browsers may lack the necessary processing power to smoothly handle complex JavaScript operations. By allowing core functionalities to operate without relying on JavaScript, we effectively optimize performance for these devices, resulting in an enhanced user experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ensuring Compatibility with Older Browsers and Devices&lt;/strong&gt;: Older browsers or devices might not support the latest functionalities offered by JavaScript technology. By enabling core features to function independently from JavaScript, we ensure compatibility and enable users utilizing older technology to still access and utilize the application efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  How SvelteKit Enables JavaScript-Independent Functionality?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://kit.svelte.dev" rel="noopener noreferrer"&gt;SvelteKit&lt;/a&gt; is a modern web application framework that allows you to build highly interactive and dynamic single-page applications (SPAs). However, it provides the capability to build web apps that can perform essential tasks such as rendering data and submitting data even without JavaScript. &lt;a href="https://twitter.com/Rich_Harris" rel="noopener noreferrer"&gt;Rich Harris&lt;/a&gt;, the developer and caretaker of Svelte and SvelteKit, adheres to this fundamental principle in all his creations. It serves as his guiding philosophy.&lt;/p&gt;

&lt;p&gt;Here’s how SvelteKit ensures the above concept:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hybrid Approach&lt;/strong&gt;: SvelteKit adopts a unique strategy that combines server-side rendering (SSR) for the first page loads and effortlessly switches to a client-side application for subsequent interactions. Making web apps work just like modern single-page applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ensuring Server-rendered Content as Backup&lt;/strong&gt;: To ensure that important content is still accessible when JavaScript is disabled, SvelteKit renders essential content on the server initially and handles data post-processing in a manner reminiscent of PHP. This guarantees that crucial features remain fully functional regardless of the user’s JS settings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Experience It Yourself
&lt;/h2&gt;

&lt;p&gt;Witness firsthand the practical application of this idea through a live demonstration: &lt;a href="https://sveltekit-ecommerce-furqanramzan.vercel.app" rel="noopener noreferrer"&gt;SvelteKit E-commerce&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can disable JavaScript in Google Chrome using &lt;a href="https://developer.chrome.com/docs/devtools/javascript/disable" rel="noopener noreferrer"&gt;this link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To delve into the code for the above project, visit the &lt;a href="https://github.com/furqanramzan/sveltekit-ecommerce" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;Prioritizing the functionality of core features without JavaScript is a testament to a web app’s resilience and commitment to inclusivity. With SvelteKit, achieving this goal becomes effortless, enhancing accessibility, SEO, and user experience. Embrace the hybrid approach, ensure essential functionality always works, and build a web app that truly caters to all users.&lt;/p&gt;




&lt;p&gt;Stay updated with the latest tech insights by following me!&lt;/p&gt;

&lt;p&gt;Are you in need of a highly skilled freelancer specializing in full-stack development to tackle your development challenges? Get in touch with me on &lt;a href="https://www.upwork.com/freelancers/furqanramzan" rel="noopener noreferrer"&gt;Upwork&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Curious about my current projects? Take a look at my &lt;a href="//furqanramzan.com"&gt;Personal Website&lt;/a&gt; and &lt;a href="https://github.com/furqanramzan" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Interested in connecting? Feel free to reach out to me on &lt;a href="https://www.linkedin.com/in/furqanramzan/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. You can also find me on &lt;a href="https://twitter.com/furqanramzan96" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>sveltekit</category>
      <category>javascript</category>
      <category>a11y</category>
    </item>
    <item>
      <title>Working with Git has never been this easy!!!</title>
      <dc:creator>Muhammad Furqan</dc:creator>
      <pubDate>Wed, 07 Jun 2023 14:54:56 +0000</pubDate>
      <link>https://dev.to/furqanramzan/working-with-git-has-never-been-this-easy-can</link>
      <guid>https://dev.to/furqanramzan/working-with-git-has-never-been-this-easy-can</guid>
      <description>&lt;p&gt;🚀 Excited to Share: Meet LazyGit, Your Ultimate Time-Saver for Git Management! 🎉&lt;/p&gt;

&lt;p&gt;📢 Hey there, I wanted to introduce you to a fantastic tool that has been an absolute game-changer in my Git workflow: LazyGit! If you're a developer like me, you know the importance of efficient version control and collaboration. That's why I can't help but share the awesomeness of LazyGit.&lt;/p&gt;

&lt;p&gt;🌟 So, what exactly is LazyGit? It's a powerful command-line interface (CLI) tool that simplifies and streamlines your Git management tasks.&lt;/p&gt;

&lt;p&gt;🎯 Here are some of the standout features that make LazyGit a must-have tool:&lt;/p&gt;

&lt;p&gt;1️⃣ Intuitive Interface: LazyGit provides a clean and user-friendly interface that makes it a breeze to navigate through your Git repositories. Say goodbye to confusing and cluttered terminal screens!&lt;/p&gt;

&lt;p&gt;2️⃣ Time-Saver: With LazyGit, you can perform complex Git operations with just a few keystrokes. It automates repetitive tasks, saving you precious time.&lt;/p&gt;

&lt;p&gt;3️⃣ Efficient Workflow: Managing branches, committing changes, and resolving conflicts has never been easier. LazyGit offers a seamless workflow, enabling you to focus on what matters most—writing amazing code!&lt;/p&gt;

&lt;p&gt;💪 Ready to take your Git game to the next level? Getting started with LazyGit is a breeze! Simply head over to the official LazyGit repository on GitHub and follow the easy installation instructions. It supports multiple operating systems, so you can get up and running in no time.&lt;/p&gt;

&lt;p&gt;⭐️ Trust me when I say that LazyGit has revolutionized the way I manage my Git repositories. It's a time-saving gem that boosts productivity and simplifies collaboration. Don't miss out on this incredible tool—give it a try today!&lt;/p&gt;

&lt;p&gt;🔗 Here's the link to the LazyGit repository: &lt;a href="https://github.com/jesseduffield/lazygit" rel="noopener noreferrer"&gt;https://github.com/jesseduffield/lazygit&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>competativeprogramming</category>
      <category>webdev</category>
      <category>lazygi</category>
    </item>
    <item>
      <title>Working with Modal has never been this easy!!!</title>
      <dc:creator>Muhammad Furqan</dc:creator>
      <pubDate>Tue, 06 Jun 2023 18:34:15 +0000</pubDate>
      <link>https://dev.to/furqanramzan/working-with-modal-has-never-been-this-easy-4gcl</link>
      <guid>https://dev.to/furqanramzan/working-with-modal-has-never-been-this-easy-4gcl</guid>
      <description>&lt;p&gt;Create a modal with just HTML using a dialog tag. Here is the complete code:&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;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;style&amp;gt;
      #dialog {
        width: 400px;
        padding: 20px;
        background-color: #f1f1f1;
        border: 1px solid #ccc;
        border-radius: 4px;
      }

      #dialog h2 {
        color: #333;
        font-size: 18px;
        margin-bottom: 10px;
      }

      #dialog p {
        color: #555;
        font-size: 16px;
        margin-bottom: 20px;
      }

      #close {
        background-color: #ddd;
        border: none;
        padding: 10px 20px;
        color: #333;
        font-size: 14px;
        border-radius: 4px;
        cursor: pointer;
      }

      #close:hover {
        background-color: #bbb;
      }
    &amp;lt;/style&amp;gt;
  &amp;lt;/head&amp;gt;

  &amp;lt;body&amp;gt;
    &amp;lt;button onclick="openDialog()"&amp;gt;Open Dialog&amp;lt;/button&amp;gt;
    &amp;lt;dialog id="dialog"&amp;gt;
      &amp;lt;h2&amp;gt;Dialog Title&amp;lt;/h2&amp;gt;
      &amp;lt;p&amp;gt;This is the content of the dialog box.&amp;lt;/p&amp;gt;
      &amp;lt;button onclick="closeDialog()"&amp;gt;Close Dialog&amp;lt;/button&amp;gt;
    &amp;lt;/dialog&amp;gt;

    &amp;lt;script&amp;gt;
      function openDialog() {
        document.getElementById("dialog").showModal();
      }
      function closeDialog() {
        document.getElementById("dialog").close();
      }
    &amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Phind: The AI search engine for developers.</title>
      <dc:creator>Muhammad Furqan</dc:creator>
      <pubDate>Tue, 18 Apr 2023 18:39:26 +0000</pubDate>
      <link>https://dev.to/furqanramzan/phind-the-ai-search-engine-for-developers-1ba3</link>
      <guid>https://dev.to/furqanramzan/phind-the-ai-search-engine-for-developers-1ba3</guid>
      <description>&lt;p&gt;Great news for developers! There is a new AI-powered search engine made specifically for developers called Phind. &lt;/p&gt;

&lt;p&gt;One of the significant benefits of using Phind is its capability to provide the latest updates on APIs, libraries, and frameworks. Since it regularly extracts the most recent information from the internet, you can be assured that you are receiving the most up-to-date information that is available. Unlike other language models, such as ChatGPT, which has a limited knowledge capacity, Phind is consistently learning and enhancing. Therefore, as new information emerges, Phind will continue to provide precise and relevant information to your questions.&lt;/p&gt;

&lt;p&gt;Give Phind a try. &lt;a href="https://www.phind.com/" rel="noopener noreferrer"&gt;https://www.phind.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>searchengine</category>
      <category>developer</category>
      <category>ai</category>
      <category>learning</category>
    </item>
    <item>
      <title>AWS CodeWhisperer: The Free AI-based Coding Assistant for Developers</title>
      <dc:creator>Muhammad Furqan</dc:creator>
      <pubDate>Fri, 14 Apr 2023 20:01:37 +0000</pubDate>
      <link>https://dev.to/furqanramzan/aws-codewhisperer-the-free-ai-based-coding-assistant-for-developers-1pkn</link>
      <guid>https://dev.to/furqanramzan/aws-codewhisperer-the-free-ai-based-coding-assistant-for-developers-1pkn</guid>
      <description>&lt;p&gt;Exciting news! AWS has recently introduced an AI-based coding assistant called CodeWhisperer, which serves as an alternative to GitHub Copilot.&lt;/p&gt;

&lt;p&gt;The best part is that CodeWhisperer is currently free for individual users.&lt;/p&gt;

&lt;p&gt;CodeWhisperer offers intelligent code completion suggestions to developers, enabling them to write better code in a shorter time.&lt;/p&gt;

&lt;p&gt;If you're seeking a new AI-based coding assistant, you should definitely give AWS CodeWhisperer a try.&lt;/p&gt;

&lt;p&gt;For more detail &lt;a href="https://aws.amazon.com/codewhisperer/" rel="noopener noreferrer"&gt;click here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>ai</category>
      <category>coding</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Better "cat" Linux Utility Alternative</title>
      <dc:creator>Muhammad Furqan</dc:creator>
      <pubDate>Fri, 07 Apr 2023 19:54:46 +0000</pubDate>
      <link>https://dev.to/furqanramzan/better-cat-linux-utility-alternative-1ch7</link>
      <guid>https://dev.to/furqanramzan/better-cat-linux-utility-alternative-1ch7</guid>
      <description>&lt;p&gt;If you're a Linux user, you might be looking for an alternative to the "cat" command that you use to view file contents in your terminal.&lt;/p&gt;

&lt;p&gt;In that case, you might want to check out the "bat" utility instead. Unlike "cat," "bat" not only shows you the contents of a file but also highlights syntax and adds line numbers for better readability. Additionally, "bat" offers a range of customization options to help you personalize your output.&lt;/p&gt;

&lt;p&gt;Give it a try, and you'll see how it can elevate your command line experience. You might find that once you switch to "bat," you won't want to go back to plain old "cat" again!&lt;/p&gt;

</description>
      <category>linux</category>
      <category>syntax</category>
      <category>terminal</category>
      <category>linuxutility</category>
    </item>
  </channel>
</rss>
