<?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: Yasser Soliman</title>
    <description>The latest articles on DEV Community by Yasser Soliman (yassersoliman).</description>
    <link>https://dev.to/yassersoliman</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F15125%2Fcfa6ca58-5684-4f76-a99e-04bae2379054.webp</url>
      <title>DEV Community: Yasser Soliman</title>
      <link>https://dev.to/yassersoliman</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yassersoliman"/>
    <language>en</language>
    <item>
      <title>Your Marketing Site Has 40 Scripts. Which Ones Are Actually Worth Keeping?</title>
      <dc:creator>Hadil Ben Abdallah</dc:creator>
      <pubDate>Tue, 13 Oct 2026 09:09:59 +0000</pubDate>
      <link>https://dev.to/yassersoliman/your-marketing-site-has-40-scripts-which-ones-are-actually-worth-keeping-1kp</link>
      <guid>https://dev.to/yassersoliman/your-marketing-site-has-40-scripts-which-ones-are-actually-worth-keeping-1kp</guid>
      <description>&lt;p&gt;Third-party scripts are easy to accumulate on a marketing website. A site might start with GA4 for analytics, a cookie banner, and a chat widget.&lt;/p&gt;

&lt;p&gt;A year or two later, the list can look very different.&lt;/p&gt;

&lt;p&gt;There’s a tag manager, heatmaps, session recordings, A/B testing, ad pixels, a CRM integration, a chatbot, a scheduling tool, a consent platform, embedded videos, social widgets, product analytics, and other tools.&lt;/p&gt;

&lt;p&gt;Each one had a reason to exist.&lt;/p&gt;

&lt;p&gt;The problem is that the browser doesn't care why you added it.&lt;/p&gt;

&lt;p&gt;It has to download, parse, and execute that code on a real visitor's device. Some third-party scripts consume CPU, compete for network resources, delay other work, or add work to the main thread. Chrome's performance guidance specifically calls out third-party code as a significant source of page-load and JavaScript costs.&lt;/p&gt;

&lt;p&gt;And that creates a problem that has very little to do with whether your marketing team &lt;em&gt;likes&lt;/em&gt; a particular tool.&lt;/p&gt;

&lt;p&gt;The question is whether the tool still earns its place on the website.&lt;/p&gt;




&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Keep a third-party script when it has a clear business purpose, an identifiable owner, useful data or functionality, and a cost that makes sense for the pages where it runs.&lt;/p&gt;

&lt;p&gt;Remove it when nobody can explain why it exists, nobody uses the data it collects, another tool already does the same job, or its performance and maintenance cost are greater than its value.&lt;/p&gt;

&lt;p&gt;A practical way to evaluate every script is to ask:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What does this script do?&lt;/li&gt;
&lt;li&gt;Who actually uses what it provides?&lt;/li&gt;
&lt;li&gt;Does it affect leads, conversions, analytics, customer experience, or another measurable business outcome?&lt;/li&gt;
&lt;li&gt;Does another tool already cover the same job?&lt;/li&gt;
&lt;li&gt;Does it need to load on every page?&lt;/li&gt;
&lt;li&gt;What does it cost in performance, privacy, maintenance, and reliability?&lt;/li&gt;
&lt;li&gt;Who owns it?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you cannot answer those questions, the script deserves an audit.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Too Many Third-Party Scripts Become a Problem
&lt;/h2&gt;

&lt;p&gt;Third-party code is common on modern marketing websites. Analytics platforms, advertising tools, chat systems, consent management, testing platforms, embedded content, and other services often depend on JavaScript loaded from an external domain.&lt;/p&gt;

&lt;p&gt;That doesn't automatically make them bad.&lt;/p&gt;

&lt;p&gt;A script that sends important conversion data to your analytics platform can be worth its cost. A consent-management platform may be essential for how your site handles tracking. A scheduling widget may directly support your sales process.&lt;/p&gt;

&lt;p&gt;The problem starts when the list grows without anyone reviewing it.&lt;/p&gt;

&lt;p&gt;A marketer adds a new tool for a campaign. A developer installs its snippet. Another team adds a heatmap tool six months later. A redesign introduces a second analytics implementation. An agency adds its own tracking script. The campaign ends, but the script stays.&lt;/p&gt;

&lt;p&gt;Nothing looks broken.&lt;/p&gt;

&lt;p&gt;The website still loads. The forms still work. The analytics dashboard still has numbers in it.&lt;/p&gt;

&lt;p&gt;Meanwhile, the browser is doing more work every time someone visits the site.&lt;/p&gt;

&lt;p&gt;Chrome's Lighthouse documentation notes that third-party scripts can significantly affect page performance, including the amount of work performed on the browser's main thread.&lt;/p&gt;

&lt;p&gt;That matters even more on marketing websites because the third-party script list often grows through small, reasonable decisions rather than one obviously bad technical choice.&lt;/p&gt;

&lt;p&gt;The result is &lt;strong&gt;script bloat&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And script bloat is difficult to spot when you look at each tool separately.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Find Every Third-Party Script on Your Website
&lt;/h2&gt;

&lt;p&gt;Before deciding what stays and what goes, you need a complete inventory.&lt;/p&gt;

&lt;p&gt;This sounds simple until you actually do it.&lt;/p&gt;

&lt;p&gt;A script can be added directly to a page, injected through Google Tag Manager, loaded by a WordPress plugin, included by a Webflow integration, or introduced by another third-party tool. Looking at the page source alone may give you an incomplete picture.&lt;/p&gt;

&lt;p&gt;For a proper audit, I would check the website from several angles.&lt;/p&gt;

&lt;h3&gt;
  
  
  Start with the browser
&lt;/h3&gt;

&lt;p&gt;Open Chrome DevTools and go to &lt;strong&gt;Network&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Reload the page with the Network panel open, then filter by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;JS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Fetch/XHR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Img&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Doc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The JavaScript filter is the obvious starting point, but don't stop there. A third-party tool may load JavaScript and then make additional requests through XHR or fetch.&lt;/p&gt;

&lt;p&gt;Look at the domains making those requests.&lt;/p&gt;

&lt;p&gt;You might find something you recognize immediately:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;www.googletagmanager.com
www.google-analytics.com
connect.facebook.net
snap.licdn.com
static.hotjar.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You may also find domains that mean nothing to you.&lt;/p&gt;

&lt;p&gt;Those deserve investigation.&lt;/p&gt;

&lt;p&gt;The goal at this stage isn't to decide whether a script is good or bad. You're building the inventory first.&lt;/p&gt;
&lt;h3&gt;
  
  
  Check your tag manager
&lt;/h3&gt;

&lt;p&gt;If the site uses Google Tag Manager, open the container and review every tag.&lt;/p&gt;

&lt;p&gt;Pay attention to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tags that are still active&lt;/li&gt;
&lt;li&gt;tags with unclear names&lt;/li&gt;
&lt;li&gt;old campaign tags&lt;/li&gt;
&lt;li&gt;duplicate analytics tags&lt;/li&gt;
&lt;li&gt;tags firing on every page&lt;/li&gt;
&lt;li&gt;tags that were created for a temporary campaign&lt;/li&gt;
&lt;li&gt;tags owned by former employees or agencies&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Check your CMS and plugins
&lt;/h3&gt;

&lt;p&gt;If the website runs on WordPress or another CMS with integrations and plugins, check those too.&lt;/p&gt;

&lt;p&gt;A plugin may inject tracking code without anyone adding a script manually.&lt;/p&gt;

&lt;p&gt;This is one reason script audits should include the systems responsible for &lt;strong&gt;adding&lt;/strong&gt; code, not just the code itself.&lt;/p&gt;

&lt;p&gt;You may discover that the same service is being loaded through two different paths.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GA4 is configured directly in the CMS&lt;/li&gt;
&lt;li&gt;another GA4 implementation exists in GTM&lt;/li&gt;
&lt;li&gt;a plugin adds another tracking library&lt;/li&gt;
&lt;li&gt;a custom script sends additional events&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result can be duplicate data and unnecessary browser work at the same time.&lt;/p&gt;


&lt;h2&gt;
  
  
  Measure the Cost of Third-Party Scripts
&lt;/h2&gt;

&lt;p&gt;Once you have the inventory, measure the actual impact.&lt;/p&gt;

&lt;p&gt;This is where Chrome DevTools and Lighthouse become useful. Core Web Vitals can also help you understand how performance issues affect the actual experience of visitors.&lt;/p&gt;

&lt;p&gt;Lighthouse has a dedicated third-party summary that helps identify third-party resources and the amount of main-thread work associated with them.&lt;/p&gt;

&lt;p&gt;You can also use Chrome DevTools to inspect individual requests and understand what happens when the page loads.&lt;/p&gt;

&lt;p&gt;Look at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;request count&lt;/li&gt;
&lt;li&gt;transferred size&lt;/li&gt;
&lt;li&gt;resource size&lt;/li&gt;
&lt;li&gt;loading time&lt;/li&gt;
&lt;li&gt;JavaScript execution&lt;/li&gt;
&lt;li&gt;main-thread activity&lt;/li&gt;
&lt;li&gt;additional network requests&lt;/li&gt;
&lt;li&gt;when the resource starts loading&lt;/li&gt;
&lt;li&gt;whether it blocks or delays important work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't obsess over one number.&lt;/p&gt;

&lt;p&gt;A 200 KB script isn't automatically worse than a 50 KB script. The smaller script could trigger several additional requests or perform expensive JavaScript work after it loads.&lt;/p&gt;

&lt;p&gt;Likewise, a script that takes a little time to load may still provide significant business value.&lt;/p&gt;

&lt;p&gt;The broader impact of website speed also matters when evaluating third-party code, especially on marketing sites where performance directly affects the user experience.&lt;/p&gt;

&lt;p&gt;You're looking for the &lt;strong&gt;cost-to-value ratio&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  Look for Duplicate Functionality
&lt;/h2&gt;

&lt;p&gt;One of the easiest wins in a script audit is finding tools that overlap.&lt;/p&gt;

&lt;p&gt;A growing marketing stack can accumulate several tools that solve almost the same problem.&lt;/p&gt;

&lt;p&gt;For example, you might have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GA4 for analytics&lt;/li&gt;
&lt;li&gt;another product analytics platform&lt;/li&gt;
&lt;li&gt;a heatmap tool&lt;/li&gt;
&lt;li&gt;a session-recording tool&lt;/li&gt;
&lt;li&gt;a CRO platform&lt;/li&gt;
&lt;li&gt;a separate event-tracking solution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They aren't identical, but there may be significant overlap.&lt;/p&gt;

&lt;p&gt;The same thing can happen with tracking.&lt;/p&gt;

&lt;p&gt;You might find multiple systems tracking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;page views&lt;/li&gt;
&lt;li&gt;form submissions&lt;/li&gt;
&lt;li&gt;CTA clicks&lt;/li&gt;
&lt;li&gt;video plays&lt;/li&gt;
&lt;li&gt;conversions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That creates two problems.&lt;/p&gt;

&lt;p&gt;First, you're paying for tools that may not all be necessary.&lt;/p&gt;

&lt;p&gt;Second, your team can end up with several versions of the same event and different numbers in different dashboards.&lt;/p&gt;

&lt;p&gt;That kind of inconsistency can make analytics harder to trust, especially when multiple tracking systems are collecting similar data.&lt;/p&gt;

&lt;p&gt;The technical cleanup can be easy.&lt;/p&gt;

&lt;p&gt;The organizational cleanup is usually harder.&lt;/p&gt;

&lt;p&gt;Someone needs to decide which system is the source of truth for each type of data.&lt;/p&gt;


&lt;h2&gt;
  
  
  Do Third-Party Scripts Need to Load on Every Page?
&lt;/h2&gt;

&lt;p&gt;This is one of the highest-value questions in the entire audit.&lt;/p&gt;

&lt;p&gt;A tool can be useful without needing site-wide access.&lt;/p&gt;

&lt;p&gt;Consider a scheduling widget.&lt;/p&gt;

&lt;p&gt;If its only purpose is to let visitors book a call, loading it on every blog article may not make sense.&lt;/p&gt;

&lt;p&gt;The same applies to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;calculators&lt;/li&gt;
&lt;li&gt;interactive demos&lt;/li&gt;
&lt;li&gt;chat tools&lt;/li&gt;
&lt;li&gt;review widgets&lt;/li&gt;
&lt;li&gt;embedded videos&lt;/li&gt;
&lt;li&gt;campaign-specific tracking&lt;/li&gt;
&lt;li&gt;product-specific functionality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A simple rule is useful here:&lt;/p&gt;

&lt;p&gt;If a script only supports one type of page, try to load it only where that functionality is needed.&lt;/p&gt;

&lt;p&gt;This can reduce unnecessary requests and JavaScript execution on pages that don't benefit from the tool.&lt;/p&gt;

&lt;p&gt;It also makes the website easier to reason about.&lt;/p&gt;

&lt;p&gt;When someone investigates a slow blog post six months from now, they won't have to wonder why it is loading a collection of sales and product widgets that have nothing to do with the article.&lt;/p&gt;


&lt;h2&gt;
  
  
  A Script Audit Should End With a Decision
&lt;/h2&gt;

&lt;p&gt;Once you've collected the data, every script should have a clear status.&lt;/p&gt;

&lt;p&gt;I like using five:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Keep&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The script provides meaningful business value, and its cost is justified.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Optimize&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The tool is valuable, but its loading behavior, implementation, or scope can be improved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Restrict&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The tool is useful only on certain pages, for certain users, or after a specific interaction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Replace&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The business needs the functionality, but another implementation may provide a better balance of functionality, reliability, and performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Remove&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nobody needs it, nobody owns it, or its value doesn't justify keeping 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjzixo7acabnvokz7bhvy.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjzixo7acabnvokz7bhvy.png" alt="Each script should have a clear status, a reason, an owner, and an appropriate place in your user journey" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That final category is often smaller than people expect.&lt;/p&gt;

&lt;p&gt;The goal of a good audit isn't to delete half the website.&lt;/p&gt;

&lt;p&gt;It's to make sure every piece of third-party code has a reason, an owner, and an appropriate place in the user journey.&lt;/p&gt;


&lt;h2&gt;
  
  
  Consent Changes the Loading Strategy
&lt;/h2&gt;

&lt;p&gt;Privacy and consent requirements add another layer to script management.&lt;/p&gt;

&lt;p&gt;Not every tracking or marketing script should necessarily load in the same way for every visitor.&lt;/p&gt;

&lt;p&gt;Depending on the jurisdiction, consent configuration, and purpose of the technology, some third-party scripts may need to wait until the appropriate consent has been given. Google's &lt;a href="https://developers.google.com/analytics/devguides/collection/ga4" rel="noopener noreferrer"&gt;Consent Mode documentation&lt;/a&gt; explains how Google tags can adjust their behavior based on a user's consent choices.&lt;/p&gt;

&lt;p&gt;That means your audit should document:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which scripts are strictly necessary&lt;/li&gt;
&lt;li&gt;which require consent&lt;/li&gt;
&lt;li&gt;what happens when consent is denied&lt;/li&gt;
&lt;li&gt;whether the consent platform actually controls the scripts&lt;/li&gt;
&lt;li&gt;whether tags can fire before the expected consent state&lt;/li&gt;
&lt;li&gt;whether the implementation matches your organization's privacy requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is another reason you shouldn't simply copy a list of scripts from one website to another.&lt;/p&gt;

&lt;p&gt;The technical implementation and the privacy requirements need to be considered together.&lt;/p&gt;

&lt;p&gt;A consent banner that exists visually while tracking scripts continue firing before the appropriate consent state isn't solving the underlying problem.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Goal Isn't Fewer Scripts. It's a Website You Can Explain.
&lt;/h2&gt;

&lt;p&gt;A marketing website can have dozens of integrations and still be well managed.&lt;/p&gt;

&lt;p&gt;The problem isn't the number sitting in your inventory.&lt;/p&gt;

&lt;p&gt;The problem is when nobody can explain what those scripts do, why they load, who owns them, or what would happen if they disappeared.&lt;/p&gt;

&lt;p&gt;That's when your marketing stack starts becoming technical debt.&lt;/p&gt;

&lt;p&gt;A good WebOps process gives every integration a purpose and a place.&lt;/p&gt;

&lt;p&gt;It also gives the team a way to challenge old decisions.&lt;/p&gt;

&lt;p&gt;A tool that made perfect sense two years ago may not make sense today. A campaign may have ended. A new platform may have replaced an old one. A feature may have moved into another part of the stack.&lt;/p&gt;

&lt;p&gt;The website should evolve with those changes.&lt;/p&gt;

&lt;p&gt;And that brings us to the simplest rule I use for third-party scripts:&lt;/p&gt;

&lt;p&gt;If you can't explain the value, the owner, the scope, and the cost, it's time to investigate why the script is still there.&lt;/p&gt;


&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;
&lt;h3&gt;
  
  
  How many third-party scripts should a marketing website have?
&lt;/h3&gt;

&lt;p&gt;→ There is no universal number that defines a healthy website.&lt;/p&gt;

&lt;p&gt;A site with 10 scripts can have serious performance or tracking problems, while another site with 30 or 40 can be well managed.&lt;/p&gt;

&lt;p&gt;What matters is whether each script has a clear purpose, an owner, an appropriate loading scope, and a reasonable technical cost.&lt;/p&gt;

&lt;p&gt;Focus on understanding and controlling the script stack instead of chasing a specific number.&lt;/p&gt;
&lt;h3&gt;
  
  
  Do third-party scripts slow down a website?
&lt;/h3&gt;

&lt;p&gt;→ They can. Third-party scripts can add network requests, download JavaScript, consume CPU, execute code on the main thread, and trigger additional resources.&lt;/p&gt;

&lt;p&gt;The actual impact depends on the service, how it is implemented, when it loads, and what it does after loading.&lt;/p&gt;

&lt;p&gt;Tools such as Chrome DevTools and Lighthouse can help you identify which third-party resources are contributing to the work performed by the browser.&lt;/p&gt;
&lt;h3&gt;
  
  
  Should I remove Google Tag Manager to improve website performance?
&lt;/h3&gt;

&lt;p&gt;→ Not automatically. Google Tag Manager is a container that can load many different tags, so the performance impact depends heavily on what you put inside it.&lt;/p&gt;

&lt;p&gt;Removing GTM while leaving the underlying tracking requirements unresolved may simply move the problem somewhere else.&lt;/p&gt;

&lt;p&gt;Audit the tags inside the container first. Remove unused tags, eliminate duplicate tracking, restrict tags to relevant pages, and review how non-critical tags are loaded.&lt;/p&gt;
&lt;h3&gt;
  
  
  Should every marketing script load on every page?
&lt;/h3&gt;

&lt;p&gt;→ No. A script should generally load wherever its functionality or measurement is actually needed.&lt;/p&gt;

&lt;p&gt;A scheduling tool may only be necessary on pages where visitors can book a meeting. A product demo widget may only belong on product pages. A campaign-specific tracking script may only be relevant during a particular campaign.&lt;/p&gt;

&lt;p&gt;Reducing unnecessary site-wide loading can improve performance while keeping the functionality your marketing team actually needs.&lt;/p&gt;
&lt;h3&gt;
  
  
  How often should I audit third-party scripts?
&lt;/h3&gt;

&lt;p&gt;→ For many B2B SaaS websites, a quarterly review is a sensible starting point.&lt;/p&gt;

&lt;p&gt;You should also review the script inventory after major website changes, migrations, new marketing tools, tracking architecture changes, or campaigns that introduce temporary integrations.&lt;/p&gt;

&lt;p&gt;The exact frequency depends on how quickly the website and marketing stack change.&lt;/p&gt;


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

&lt;p&gt;Having less scripts in your marketing site shouldn’t be just a goal in itself. Your site must utilize a technology stack that your marketing team is familiar with and can justify. &lt;/p&gt;

&lt;p&gt;Each and every third-party script must justify its right to exist through efficiency of its business function, prevail scope, and the known owner. &lt;/p&gt;

&lt;p&gt;Next time you find dozens of third-party requests present in DevTools, don’t ask yourself how to get rid of them. Instead, try to find out which requests actually has the right to exist.&lt;/p&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Thanks for reading! 🙏🏻 &lt;br&gt; I hope you found this useful ✅ &lt;br&gt; Please react and follow for more 😍 &lt;br&gt; Made with 💙 by &lt;a href="https://dev.to/hadil"&gt;Hadil Ben Abdallah&lt;/a&gt;
&lt;/th&gt;
&lt;th&gt;
&lt;a href="https://www.linkedin.com/in/hadil-ben-abdallah/" rel="noopener noreferrer"&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%2Fu48q29oef3l4a6eow30h.png" alt="LinkedIn" width="40" height="40"&gt;&lt;/a&gt; &lt;a href="https://github.com/Hadil-Ben-Abdallah" rel="noopener noreferrer"&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%2Fhuvszgj6eun7xfvnwv51.png" alt="GitHub" width="50" height="50"&gt;&lt;/a&gt; &lt;a href="https://x.com/hadilbnabdallah" rel="noopener noreferrer"&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%2F53x550t83v5ner74xkxo.jpg" alt="Twitter" width="40" height="40"&gt;&lt;/a&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;div class="ltag__user ltag__user__id__1209000"&gt;
    &lt;a href="/hadil" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=150,height=150,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1209000%2Fb29d37d8-2efe-4391-9796-a6f8a483f1bd.png" alt="hadil image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/hadil"&gt;Hadil Ben Abdallah&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/hadil"&gt;Software Engineer • Technical Writer (300K+ readers &amp;amp; 25K+ followers) • Trusted by 20+ startups and tech companies worldwide
I turn brands into websites people 💙 to use&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>performance</category>
    </item>
  </channel>
</rss>
