<?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>Forem: ElectronDome</title>
    <description>The latest articles on Forem by ElectronDome (@electrondome).</description>
    <link>https://forem.com/electrondome</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%2F2896481%2Fbef5a3e5-c611-4870-b0e4-eb4612e1fc50.png</url>
      <title>Forem: ElectronDome</title>
      <link>https://forem.com/electrondome</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/electrondome"/>
    <language>en</language>
    <item>
      <title>WordPress: Old Tech or Unstoppable Force?</title>
      <dc:creator>ElectronDome</dc:creator>
      <pubDate>Wed, 27 Aug 2025 15:54:13 +0000</pubDate>
      <link>https://forem.com/electrondome/wordpress-old-tech-or-unstoppable-force-54ip</link>
      <guid>https://forem.com/electrondome/wordpress-old-tech-or-unstoppable-force-54ip</guid>
      <description>&lt;p&gt;Do you think WordPress is old and irrelevant in 2025? &lt;/p&gt;

&lt;p&gt;Think again,&lt;/p&gt;

&lt;p&gt;While flashy frameworks like &lt;strong&gt;React and Next.js&lt;/strong&gt; grab all the hype, &lt;strong&gt;WordPress&lt;/strong&gt; quietly continues to power over 40% of the internet. From &lt;strong&gt;small businesses&lt;/strong&gt; launching their &lt;strong&gt;first website&lt;/strong&gt; to &lt;strong&gt;big brands&lt;/strong&gt; handling millions of visitors, &lt;strong&gt;WordPress&lt;/strong&gt; remains the go-to choice. The reason? It solves problems that &lt;strong&gt;modern tools often overcomplicate&lt;/strong&gt; — speed, cost, and accessibility. In a world obsessed with &lt;strong&gt;‘new’&lt;/strong&gt; WordPress proves that sometimes the &lt;strong&gt;‘classic’&lt;/strong&gt; still wins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“The web keeps evolving, but one name refuses to step down: WordPress.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First Let's checkout what are the real-world use-cases of WordPress,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 1: Building a Website Costs Too Much&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Many website builders and frameworks require subscriptions, licenses, or custom development.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Small businesses, bloggers, or NGOs can’t always afford that.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; WordPress is Free &amp;amp; Open Source&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;No upfront cost to get started.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Thousands of free themes and plugins.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Huge global community keeps it evolving.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For beginners, it’s the easiest way to launch a site without touching code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 2: Adding Features Usually Requires Developers&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In modern frameworks, adding even simple features (forms, analytics, SEO) often needs coding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This slows down non-technical users.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; WordPress Plugins means Endless Possibilities&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Over 60,000 plugins for e-commerce, SEO, analytics, security, and more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install in one click, no developer required.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Example: Want an online store? Just add WooCommerce.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s like an app store for websites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 3: Non-Developers Struggle to Manage Websites&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;React, Next.js, or Webflow still demand technical knowledge for advanced customizations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Non-coders often get stuck.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; WordPress is Made for Non-Developers&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Drag-and-drop builders (Elementor, Divi, Gutenberg).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simple dashboard for content and media.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Perfect for bloggers, shop owners, and small businesses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Even your grandma can publish a blog on WordPress.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Problem 4: Ranking on Google is Complicated&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;SEO optimization in custom setups is tricky and often requires experts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Many modern builders lack strong SEO tools.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; WordPress means SEO Superpowers&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;SEO-friendly structure by default.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Plugins like Yoast SEO and Rank Math make optimization easy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Helps websites rank faster without needing deep SEO expertise.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Problem 5: Growing Websites Need Scalability&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Some platforms work for small sites but fail under heavy traffic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Businesses need reliability when scaling up.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; WordPress Scales from Small Blogs to Big Brands&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Runs everything from portfolios to enterprise sites.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used by TechCrunch, Sony Music, Microsoft News.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;With caching and CDNs, WordPress can handle millions of visitors.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Problem 6: Lack of Support in Other Platforms&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Smaller platforms may disappear or stop updating.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developers and resources may be limited.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; WordPress Has a Massive Community&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Millions of developers, designers, and freelancers available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tons of tutorials, forums, and resources online.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Future-proof — WordPress isn’t going anywhere.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So Basically, &lt;strong&gt;WordPress&lt;/strong&gt; continues to dominate because it is simple, affordable, and powerful for &lt;strong&gt;content-driven websites blogs, company sites,&lt;/strong&gt; &lt;strong&gt;portfolios, and e-commerce stores&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;But it’s not the answer to everything &lt;/p&gt;

&lt;p&gt;When it comes to &lt;strong&gt;highly dynamic applications&lt;/strong&gt; like social media platforms, real-time dashboards, streaming services, or enterprise-scale systems, frameworks like &lt;strong&gt;React and Next.js&lt;/strong&gt; clearly outshine WordPress&lt;br&gt;
They deliver lightning-fast performance, seamless interactivity, and developer-friendly scalability&lt;/p&gt;

&lt;p&gt;In short: &lt;strong&gt;If you need a website, WordPress&lt;/strong&gt; is still king but &lt;strong&gt;if you&lt;/strong&gt; &lt;strong&gt;need a web application, React and Next.js&lt;/strong&gt; are the modern champions and together they represent the two sides of the web we use every day.&lt;/p&gt;

&lt;p&gt;At the end, it’s &lt;strong&gt;not about&lt;/strong&gt; which one is &lt;strong&gt;better but which one is right&lt;/strong&gt; &lt;strong&gt;for your project&lt;/strong&gt;. And that’s exactly why WordPress continues to thrive while modern frameworks rise alongside it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>wordpress</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Decluttering Code: Because Fewer Bugs Live in Cleaner Rooms</title>
      <dc:creator>ElectronDome</dc:creator>
      <pubDate>Wed, 20 Aug 2025 08:23:15 +0000</pubDate>
      <link>https://forem.com/electrondome/decluttering-code-because-fewer-bugs-live-in-cleaner-rooms-lhe</link>
      <guid>https://forem.com/electrondome/decluttering-code-because-fewer-bugs-live-in-cleaner-rooms-lhe</guid>
      <description>&lt;p&gt;&lt;strong&gt;"Clean Code Starts with a Clean Room"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hey Web Developers,&lt;/p&gt;

&lt;p&gt;Do you keep your room clean and organized on your own?&lt;/p&gt;

&lt;p&gt;If yes — great job! The discipline you maintain in your daily life often reflects in your professional work, especially in how you write and manage your code.&lt;/p&gt;

&lt;p&gt;If not, maybe it’s time to start. Just like decluttering your room makes your mind feel fresh, decluttering your code can make your projects cleaner, faster, and easier to maintain.&lt;/p&gt;

&lt;p&gt;In this post, we’ll see how frontend, backend, and database clutter happens — and the smartest ways to clean it up so your projects stay fast, maintainable, and easy to work with.&lt;/p&gt;

&lt;p&gt;For a better understanding, we will go with a problem-solution based flow.&lt;/p&gt;

&lt;p&gt;Let's start with the FrontEnd part,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Messy UI means Messy Mind&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When your frontend gets cluttered, it’s like having a desk piled high with papers, cables, and random gadgets — even simple changes take forever because you can’t see the surface anymore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 1: CSS Bloat&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stylesheets full of unused classes from old designs.&lt;/li&gt;
&lt;li&gt;Conflicting styles for the same element across files.&lt;/li&gt;
&lt;li&gt;New styles created instead of reusing existing ones.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run a CSS Cleanup Tool – PurgeCSS or UnCSS can automatically strip unused styles.&lt;/li&gt;
&lt;li&gt;Use Design Tokens – Centralize colors, spacing, and typography for consistency.&lt;/li&gt;
&lt;li&gt;Adopt a Naming Convention – e.g., BEM keeps styles predictable and reusable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, CSS is like your wardrobe — donate what you don’t wear, and organize the rest by category.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 2: Repeated Components&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Same button, card, or modal coded multiple times.&lt;/li&gt;
&lt;li&gt;Slight variations leading to duplicated effort.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extract Reusable Components – If HTML/CSS repeats 2–3 times, make it a single component.&lt;/li&gt;
&lt;li&gt;Use Props for Variations – One  instead of two separate buttons.&lt;/li&gt;
&lt;li&gt;Keep Components Small – Break down complex ones into smaller, testable parts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, One versatile tool is better than carrying 10 similar ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 3: State Management Chaos&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Global state used unnecessarily.&lt;/li&gt;
&lt;li&gt;Related state split across multiple hooks and files.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep State Local When Possible – Only use global stores like Redux or Zustand for shared state.&lt;/li&gt;
&lt;li&gt;Group Related State – Combine related values into one state object.&lt;/li&gt;
&lt;li&gt;Prevent Over-Renders – Memoize heavy components with React.memo or Preact’s memo().&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, State is like a to-do list — keep the main one in one place, don’t scatter sticky notes everywhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 4: Heavy Assets &amp;amp; Slow Loads&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Large images or scripts loaded upfront unnecessarily.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lazy Load – Use loading="lazy" for images and dynamic imports for components.&lt;/li&gt;
&lt;li&gt;Compress Assets – Tools like ImageOptim, TinyPNG, and SVGO can help.&lt;/li&gt;
&lt;li&gt;Use a CDN – Distribute assets for faster load times.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, Don’t carry your entire library when you only need one book.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend Clutter:The Danger of Feature Hoarding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A cluttered backend is like a workshop full of rusty tools — you don’t know which ones still work, and you waste time searching for the right one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 1: “God” Functions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single functions handling multiple responsibilities.&lt;/li&gt;
&lt;li&gt;Difficult to test and debug because everything is tangled.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Follow Single Responsibility Principle – Each function does one job.&lt;/li&gt;
&lt;li&gt;Refactor Large Functions – Split them into smaller, reusable helpers.&lt;/li&gt;
&lt;li&gt;Write Unit Tests – Tests encourage simpler, more modular code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, One sharp knife for each job is better than one dull knife for everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 2: Unused Endpoints&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Old APIs left in the codebase “just in case.”&lt;/li&gt;
&lt;li&gt;Extra endpoints increasing attack surface.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Deprecate Before Removing – Mark unused APIs and remove after a grace period.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API Documentation – Keep Swagger/OpenAPI docs updated to track usage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Version Your APIs – Helps phase out older ones cleanly.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, Unused endpoints are like expired food — throw them out before they cause trouble.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 3: Over-Engineered Logic&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Excessive layers of abstraction for simple tasks.&lt;/li&gt;
&lt;li&gt;Business logic scattered across multiple files unnecessarily.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep Logic Flat Where Possible – Avoid too many indirections.&lt;/li&gt;
&lt;li&gt;Centralize Business Logic – Store related logic in one well-named service/module.&lt;/li&gt;
&lt;li&gt;Review for Simplification – During code review, ask “Can this be simpler?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, Too many layers = too many hoops to jump through.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Database: Clutter in Tables = Slower Queries&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A messy database is like a storage room with piles of random boxes — it might have what you need, but good luck finding it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 1: Unused Tables or Columns&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Legacy tables from old features.&lt;/li&gt;
&lt;li&gt;Columns no longer used by the application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Schema Audits – Regularly check for unused tables/columns.&lt;/li&gt;
&lt;li&gt;Remove or Archive – If not used, drop them or store them separately.&lt;/li&gt;
&lt;li&gt;Track Changes – Use migrations for controlled schema updates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, Extra tables are like junk drawers — they seem harmless but hide the mess.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 2: Poor Indexing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No indexes on frequently queried columns.&lt;/li&gt;
&lt;li&gt;Too many indexes slowing down writes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add Indexes Where Needed – Especially on WHERE and JOIN columns.&lt;/li&gt;
&lt;li&gt;Monitor Query Performance – Use EXPLAIN in SQL to analyze execution.&lt;/li&gt;
&lt;li&gt;Avoid Over-Indexing – Too many indexes can hurt write-heavy operations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, Good indexing is like labelling storage boxes — you find things faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem 3: Duplicate &amp;amp; Stale Data&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Old, irrelevant rows bloating the database.&lt;/li&gt;
&lt;li&gt;Duplicate records causing inconsistent results.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set Data Retention Policies – Archive old data based on business needs.&lt;/li&gt;
&lt;li&gt;Deduplicate Regularly – Use unique constraints or cleanup scripts.&lt;/li&gt;
&lt;li&gt;Normalize Where Needed – Avoid repeating the same data across multiple tables.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, Stale data is like keeping old bills from 10 years ago — unnecessary and space-consuming.&lt;/p&gt;

&lt;p&gt;Ok so not going much into more details, &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's conclude&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Decluttering code isn’t a one-off project — it’s a maintenance habit.&lt;br&gt;
When your frontend is lean, your backend is tidy, and your database is clean, you ship features faster, fix bugs quicker, and enjoy coding a whole lot more.&lt;/p&gt;

&lt;p&gt;Because in both life and code, the less clutter you keep, the more room you have to build something amazing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Till then Happy Coding.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>coding</category>
      <category>frontend</category>
      <category>backend</category>
    </item>
    <item>
      <title>Exploring Css units beyond px</title>
      <dc:creator>ElectronDome</dc:creator>
      <pubDate>Sat, 26 Jul 2025 11:10:19 +0000</pubDate>
      <link>https://forem.com/electrondome/exploring-css-units-beyond-px-46g6</link>
      <guid>https://forem.com/electrondome/exploring-css-units-beyond-px-46g6</guid>
      <description>&lt;p&gt;Ever found yourself stuck choosing &lt;strong&gt;css units&lt;/strong&gt; between px, rem, em, %, vh, or vw while styling your webpage? &lt;/p&gt;

&lt;p&gt;Whether you're just starting with CSS or have been writing stylesheets for a while, understanding CSS units is essential for creating clean, consistent, and responsive designs. &lt;br&gt;
With so many options available, it’s easy to get confused — but each unit has a purpose and knowing when to use which one can make your work faster and your layouts smarter. &lt;/p&gt;

&lt;p&gt;In this blog, we’ll break down the &lt;strong&gt;most commonly used CSS units&lt;/strong&gt; with beginner-friendly explanations, real-world use cases, and some deeper insights for those looking to level up their styling game.&lt;/p&gt;

&lt;p&gt;When you're just starting with CSS, &lt;strong&gt;it's common to size everything using&lt;/strong&gt; &lt;strong&gt;px (pixels)&lt;/strong&gt;. But as you dive deeper into responsive design and accessibility, you'll discover that there are better, more flexible units like rem, em, vh, %, and more.&lt;/p&gt;

&lt;p&gt;In this guide, &lt;strong&gt;we’ll explore these CSS units beyond px,&lt;/strong&gt; understand their use cases, and learn how to choose the right one depending on your layout needs. Whether you're a beginner or brushing up your CSS skills, this post will help you write cleaner, more scalable CSS.&lt;/p&gt;

&lt;p&gt;The Css units can be basically classified into two different types:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Absolute units&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;As the name suggests, the absolute css units are fixed and does not depend on the size of the parent element or the viewport.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Absolute units include px, pt, pc, in, cm, mm, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Relative units&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relative css units as the name implies are flexible and are relative to the parent element's size , the viewport's size or the root element's font size.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Relative units include rem, em, %, vh, vw, ex, etc.&lt;/p&gt;

&lt;p&gt;Now let's talk about the most widely used css units one by one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Pixels (px)&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is the most widely used unit of measurement.&lt;/li&gt;
&lt;li&gt;px stands for pixel, the smallest unit of a digital display.&lt;/li&gt;
&lt;li&gt;It's an absolute unit that represents a fixed size on screen, typically mapped to 1 physical device pixel (or scaled on high-DPI screens).&lt;/li&gt;
&lt;li&gt;Best for precise elements like borders, icons, and 1px lines.&lt;/li&gt;
&lt;li&gt;Does not scale with user settings (like browser zoom or font-size changes), making it less flexible for responsive or accessible designs. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let us understand this with the help of an example:&lt;/p&gt;

&lt;p&gt;Case-1: When the parent width is 80%&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%2Fyvv8y7lkuqeq6ww5qhib.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%2Fyvv8y7lkuqeq6ww5qhib.png" alt="code-snippet"&gt;&lt;/a&gt;&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%2F17oefrtncoum81wcs6cd.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%2F17oefrtncoum81wcs6cd.png" alt="Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Case-2: When the parent width is 10%&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%2F1e0wevelqbwymjp97zd7.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%2F1e0wevelqbwymjp97zd7.png" alt=" "&gt;&lt;/a&gt;&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%2Fjb8ylgrw6tlln84t4ono.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%2Fjb8ylgrw6tlln84t4ono.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So we see from the above examples that even if we are changing the dimensions of the parent element the child element dimensions are fixed and are not changing as they are in px.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Root em(rem) :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;rem stands for root em, a relative unit in CSS.&lt;/li&gt;
&lt;li&gt;It is relative to the root element's () font size.&lt;/li&gt;
&lt;li&gt;If html { font-size: 16px; }, then 1rem = 16px.&lt;/li&gt;
&lt;li&gt;Ideal for font sizes, padding, margin, and responsive design — ensures consistency across the entire layout.&lt;/li&gt;
&lt;li&gt;Scales globally with just one change to the root font size — great for accessibility and theming.&lt;/li&gt;
&lt;li&gt;Not ideal for components that need to scale based on their own font size   use em instead in such cases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/ElectronDome/embed/empdYqP?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Element em(em):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;em is a typographic unit that represents the current element's font size.&lt;/li&gt;
&lt;li&gt;It’s relative to the font size of the parent (or current element if overridden).&lt;/li&gt;
&lt;li&gt;E.g., if font-size: 20px, then 1em = 20px.&lt;/li&gt;
&lt;li&gt;Perfect for component-level spacing, such as padding/margin that should scale with text.&lt;/li&gt;
&lt;li&gt;Flexible for self-contained components like buttons or cards.&lt;/li&gt;
&lt;li&gt;Can compound in nested elements, making sizes unpredictable if not managed carefully.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/ElectronDome/embed/PwPGwpK?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Percentage(%):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;% is a relative unit based on the size of the parent element.&lt;/li&gt;
&lt;li&gt;Used for width, height, padding, margins, etc.&lt;/li&gt;
&lt;li&gt;E.g., width: 50% means 50% of the parent’s width.&lt;/li&gt;
&lt;li&gt;Great for fluid layouts and responsive containers.&lt;/li&gt;
&lt;li&gt;Keeps layouts flexible across different screen sizes.&lt;/li&gt;
&lt;li&gt;Behavior can be inconsistent, especially with vertical spacing or when parent size is not explicitly set.&lt;/li&gt;
&lt;/ul&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%2Fe2hn85q3ygh8f6yx3umx.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%2Fe2hn85q3ygh8f6yx3umx.png" alt="Percentage unit in css demo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Viewport Units: &lt;code&gt;vh&lt;/code&gt; and &lt;code&gt;vw&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you want elements to scale based on the actual size of the user’s screen, vh and vw are the go-to CSS units.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;vh stands for viewport height&lt;/li&gt;
&lt;li&gt;vw stands for viewport width&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both are relative to the dimensions of the browser window:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1vh = 1% of the viewport's height&lt;/li&gt;
&lt;li&gt;1vw = 1% of the viewport's width&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;100vh fills the full height of the screen&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;100vw stretches across the full width of the screen&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Best use-cases&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fullscreen hero sections&lt;/li&gt;
&lt;li&gt;Modals and overlays&lt;/li&gt;
&lt;li&gt;Carousels and responsive banners&lt;/li&gt;
&lt;li&gt;Fluid typography (especially with clamp())&lt;/li&gt;
&lt;li&gt;Designing layouts that should always fill the screen, regardless of content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They enable truly responsive layouts where the size of elements is tied directly to the screen itself, not the parent element or font size.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; While vh and vw work seamlessly on desktops, they can behave unexpectedly on &lt;strong&gt;mobile devices&lt;/strong&gt;. &lt;br&gt;
Browsers may shrink the viewport height when toolbars (like the address bar) appear or disappear as users scroll&lt;br&gt;
This causes elements sized with vh to jump or resize unexpectedly&lt;br&gt;
To handle this, modern CSS introduces &lt;strong&gt;svh&lt;/strong&gt;, &lt;strong&gt;lvh&lt;/strong&gt;, and &lt;strong&gt;dvh&lt;/strong&gt;, but support is still evolving, so always test on real devices.&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%2Fm5jm2bg2diuugi4veinq.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%2Fm5jm2bg2diuugi4veinq.png" alt="Demo of Vh and Vw"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Viewport Minimum(vmin):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;vmin is 1% of the smaller side of the screen (width or height).&lt;/li&gt;
&lt;li&gt;So lets say if the viewport is 1200x800, then 1vmin = 8px.&lt;/li&gt;
&lt;li&gt;vmin is ideal when you want UI elements to scale based on the smallest constraint — useful for responsive typography, square boxes, or maintaining aspect ratios on both portrait and landscape orientations.&lt;/li&gt;
&lt;li&gt;It is commonly used in viewport typography systems, like:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;h1 {
  font-size: calc(1rem + 2vmin);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Can behave unpredictably on devices with dynamic toolbars or in split-screen views.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;7. Viewport Maximum(vmax):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;vmax is a viewport-relative unit equal to 1% of the larger dimension of the screen.&lt;/li&gt;
&lt;li&gt;If viewport is 1200x800, then 1vmax = 12px.&lt;/li&gt;
&lt;li&gt;Full-screen layouts or scaling elements that should follow the wider side of the screen&lt;/li&gt;
&lt;li&gt;Maintains visual impact on large screens.&lt;/li&gt;
&lt;li&gt;May overflow or break on narrow devices (like mobiles in portrait).&lt;/li&gt;
&lt;li&gt;Use vmin and vmax when your layout needs to be adaptive, especially between mobile, tablet, and desktop in both orientations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;8. Fractional Unit(fr):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fr stands for fraction, used only inside CSS Grid layouts.&lt;/li&gt;
&lt;li&gt;1fr means “1 part of the available space”.&lt;/li&gt;
&lt;li&gt;Flexible and responsive grid column/row layouts.
-Automatically distributes space without needing fixed widths.
Cannot be used outside of display: grid.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lets see three cases of grid usage in different forms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grid using fr units&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;grid-template-columns: 1fr 2fr 1fr&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%2Fgw0h53mk0bmkkcp8m56e.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%2Fgw0h53mk0bmkkcp8m56e.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-Proportional layout that grows/shrinks with the container.&lt;br&gt;
-Best for dynamic responsive layouts.&lt;br&gt;
-Can misbehave if used with fixed-size grid containers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grid using px units&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;grid-template-columns: 100px 200px 100px&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%2Fn7i6yzi3aakyun1vbjgg.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%2Fn7i6yzi3aakyun1vbjgg.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-Perfect when you need precise sizes (e.g., buttons/icons).&lt;br&gt;
-Not responsive. Will overflow on small screens or shrink too much.&lt;br&gt;
-Poor accessibility on zoomed or mobile views.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grid using % units&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;grid-template-columns: 25% 50% 25%&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%2Fajjc7t1w1yiirr692i7s.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%2Fajjc7t1w1yiirr692i7s.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-Useful for layouts relative to the container’s width.&lt;br&gt;
-Parent must have a defined width for % to work predictably.&lt;br&gt;
-Less flexible than fr when mixing fixed and flexible items.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Character Width(ch):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ch is relative to the width of the character "0" in the current font.&lt;/li&gt;
&lt;li&gt;Typically used to size elements based on expected character count.&lt;/li&gt;
&lt;li&gt;Perfect for input fields, code blocks, or text containers with fixed character widths.&lt;/li&gt;
&lt;li&gt;Content-aware sizing for monospaced or text-heavy UIs.&lt;/li&gt;
&lt;li&gt;In proportional fonts, width of "0" may not represent average character width accurately.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example usage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;input {
  width: 30ch;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means: the input will be wide enough to fit 30 characters of text (based on font).&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%2Fswitt69kvl1tdoz4cwgm.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%2Fswitt69kvl1tdoz4cwgm.png" alt=" "&gt;&lt;/a&gt;&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%2Fcwor3e79lyz0goql1fa3.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%2Fcwor3e79lyz0goql1fa3.png" alt=" "&gt;&lt;/a&gt;&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%2Fkaqvsq628w2s1eq308ul.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%2Fkaqvsq628w2s1eq308ul.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. x-height(ex):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ex is relative to the height of the lowercase letter “x” in the current font.&lt;/li&gt;
&lt;li&gt;Useful for vertical alignment in typography-heavy layouts.&lt;/li&gt;
&lt;li&gt;Specialized typography adjustments and vertical alignment.
Font-sensitive vertical sizing.&lt;/li&gt;
&lt;li&gt;Inconsistent across fonts; rarely used due to limited browser support and predictability.&lt;/li&gt;
&lt;/ul&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%2F651ns9gcidtwnrd1f8tg.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%2F651ns9gcidtwnrd1f8tg.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes — there’s a lot of units in CSS, and more are still arriving. Don’t sweat it. The CSS units you just explored (px, rem, em, %, the key viewport units, and fr) will already cover 99 % of what real projects demand: precise control where you need it, fluid scaling where you don’t, and rock‑solid support in every modern browser.&lt;/p&gt;

&lt;p&gt;Think of the newer upcoming units as future helpers rather than extra homework. When they mature, they’ll solve niche problems (mobile toolbars, ultra‑fine typography) and make your codebase simpler, not harder. Master today’s proven units first; they’re more than enough to craft beautiful, responsive interfaces right now. Tomorrow’s additions will only make that job even easier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So dive in with confidence — the tools you have are powerful, and the best is still yet to come. Happy coding!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>frontend</category>
      <category>webdev</category>
      <category>learning</category>
    </item>
    <item>
      <title>Are Meta Tags still relevant in 2025?</title>
      <dc:creator>ElectronDome</dc:creator>
      <pubDate>Fri, 18 Jul 2025 13:49:37 +0000</pubDate>
      <link>https://forem.com/electrondome/are-meta-tags-still-relevant-in-2025-3l70</link>
      <guid>https://forem.com/electrondome/are-meta-tags-still-relevant-in-2025-3l70</guid>
      <description>&lt;p&gt;Hey Folks - Let's talk about the lesser known meta tag,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a meta tag?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In HTML, a meta tag provides metadata, which is data about the HTML document, that isn't displayed on the page itself. It is used by browsers, search engines, and other web services to understand the page's content and how to handle it. &lt;/p&gt;

&lt;p&gt;So as the title asks &lt;strong&gt;Are Meta Tags still relevant in 2025?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The answer is "Yes". When it comes to writing clean, accessible, and SEO-friendly HTML, the unsung hero often hiding in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; of your webpage is the &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; tag. Whether you're a beginner or a seasoned developer fine-tuning for performance and discoverability — meta tags matter!&lt;/p&gt;

&lt;p&gt;But here is a key point to note down and that is not all meta tags are relevant in 2025 and you should include only those meta tags that is most important for your project(s) or application(s). Do not try to overuse meta tags.&lt;/p&gt;

&lt;p&gt;Let's see a list of relevant and irrelevant meta tags:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RELEVANT META TAGS (2025)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. General / SEO&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta charset="UTF-8"&amp;gt;&lt;/code&gt; &lt;br&gt;
Specifies the character encoding so your webpage can correctly display all letters, symbols, numbers, and emojis from all languages (like English, Hindi, Chinese, Arabic, emojis, etc.).&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="viewport" content="width=device-width, initial-scale=1"&amp;gt;&lt;/code&gt;&lt;br&gt;
Tells the browser to fit your website to the screen size of the device (like mobile, tablet, or desktop).&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="description" content="..."&amp;gt;&lt;/code&gt;&lt;br&gt;
Provides a short summary of the page used by search engines in search results.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="robots" content="index, follow"&amp;gt;&lt;/code&gt;&lt;br&gt;
Tells all search engines to index the page and follow its links.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="googlebot" content="noindex"&amp;gt;&lt;/code&gt; &lt;br&gt;
Specifically Instructs Google crawler not to index this page.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="google-site-verification" content="..."&amp;gt;&lt;/code&gt;&lt;br&gt;
Proves site ownership to Google Search Console for verification.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="google" content="notranslate"&amp;gt;&lt;/code&gt;&lt;br&gt;
Prevents Google from offering automatic translation for the page.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="rating" content="adult"&amp;gt;&lt;/code&gt;&lt;br&gt;
Labels the page as adult content for SafeSearch and filtering systems.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Social Media (Open Graph / Twitter Cards)&lt;/strong&gt;&lt;br&gt;
Meta tags that control how your web page link appears when shared on social media platforms like Facebook, LinkedIn, Twitter and others&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta property="og:title" content="..."&amp;gt;&lt;/code&gt;&lt;br&gt;
This tag sets the title text that appears when someone shares your webpage on social media.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta property="og:description" content="..."&amp;gt;&lt;/code&gt;&lt;br&gt;
Adds a short summary below the shared title.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta property="og:image" content="..."&amp;gt;&lt;/code&gt;&lt;br&gt;
Displays a preview image or thumbnail with the link.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta property="og:url" content="..."&amp;gt;&lt;/code&gt;&lt;br&gt;
Ensures the shared link points to the correct page.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta property="og:type" content="article"&amp;gt;&lt;/code&gt;&lt;br&gt;
Tells platforms the content type (like article, website, video).&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="twitter:card" content="summary_large_image"&amp;gt;&lt;/code&gt;&lt;br&gt;
Enables a large image preview in Twitter/X posts.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="twitter:title" content="..."&amp;gt;&lt;/code&gt;&lt;br&gt;
Specifies the tweet’s title or heading.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="twitter:description" content="..."&amp;gt;&lt;/code&gt;&lt;br&gt;
Adds a short description below the title in the tweet card.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="twitter:image" content="..."&amp;gt;&lt;/code&gt;&lt;br&gt;
Displays an image in the tweet preview.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="twitter:creator" content="@yourhandle"&amp;gt;&lt;/code&gt;&lt;br&gt;
Credits the author’s Twitter handle in the card.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; As shown in the social meta tags list above, most platforms like Facebook, LinkedIn, WhatsApp, and others rely on Open Graph (og:) tags to generate link previews — so you don’t need separate tags for each platform. Twitter, however, uses its own twitter: tags, known as Twitter Cards.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Mobile &amp;amp; Responsive Design&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="format-detection" content="telephone=no"&amp;gt;&lt;/code&gt;&lt;br&gt;
Prevents mobile browsers (especially iOS) from auto-linking phone numbers.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="theme-color" content="#0072FF"&amp;gt;&lt;/code&gt;&lt;br&gt;
Sets the browser’s UI color (like the address bar) to match your site’s branding.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="color-scheme" content="light dark"&amp;gt;&lt;/code&gt;&lt;br&gt;
Tells the browser your site supports both light and dark modes.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Progressive Web Apps (PWA)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="apple-mobile-web-app-capable" content="yes"&amp;gt;&lt;/code&gt;&lt;br&gt;
Enables full-screen app mode when saved to iOS home screen.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"&amp;gt;&lt;/code&gt;&lt;br&gt;
Customizes the iOS status bar appearance in standalone app mode.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="apple-mobile-web-app-title" content="MyApp"&amp;gt;&lt;/code&gt;&lt;br&gt;
Sets a custom short name for the web app on iOS home screen.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="application-name" content="MyApp"&amp;gt;&lt;/code&gt;&lt;br&gt;
Defines the application name used by some browsers (like Windows or Android).&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="msapplication-TileImage" content="icon.png"&amp;gt;&lt;/code&gt;&lt;br&gt;
Specifies the icon shown when the site is pinned to the Windows Start menu.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="msapplication-TileColor" content="#ffffff"&amp;gt;&lt;/code&gt;&lt;br&gt;
Sets the background color of the Windows Start tile.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Security &amp;amp; Privacy&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta http-equiv="Content-Security-Policy" content="..."&amp;gt;&lt;/code&gt;&lt;br&gt;
Adds a layer of security by restricting what resources can load (if headers aren't set).&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="referrer" content="no-referrer"&amp;gt;&lt;/code&gt;&lt;br&gt;
Stops the browser from sharing your page URL when someone clicks a link on your website.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Optional Metadata&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="author" content="Your Name"&amp;gt;&lt;/code&gt;&lt;br&gt;
Defines the name of the page’s author for metadata purposes.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="publisher" content="Your Company"&amp;gt;&lt;/code&gt;&lt;br&gt;
Indicates the organization that published the content.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="generator" content="WordPress 6.0"&amp;gt;&lt;/code&gt;&lt;br&gt;
Specifies the software or platform used to create the webpage.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;IRRELEVANT / OBSOLETE META TAGS (2025)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. SEO / General&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="keywords" content="..."&amp;gt;&lt;/code&gt; (ignored by all modern search engines)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="revisit-after" content="7 days"&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="distribution" content="global"&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="coverage" content="worldwide"&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="abstract" content="..."&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Deprecated or Redundant&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta http-equiv="refresh" content="5; url=..."&amp;gt;&lt;/code&gt; (bad for SEO and accessibility)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta http-equiv="expires" content="0"&amp;gt;&lt;/code&gt; (ineffective in modern browsers)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta http-equiv="pragma" content="no-cache"&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta http-equiv="cache-control" content="no-cache"&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta http-equiv="Set-Cookie" content="..."&amp;gt;&lt;/code&gt; (does not work anymore)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Legacy Browser / Mobile&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&amp;gt;&lt;/code&gt; (for IE only, retired)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="HandheldFriendly" content="true"&amp;gt;&lt;/code&gt; (used by ancient browsers)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="MobileOptimized" content="width"&amp;gt;&lt;/code&gt; (used in old Windows Phone)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta name="mobile-web-app-capable" content="yes"&amp;gt;&lt;/code&gt; (replaced by manifest)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Accessibility / Language (Use HTML attributes instead)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;meta http-equiv="Content-Language" content="en"&amp;gt;&lt;/code&gt;
Instead use: &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Security Headers That Do Not Work via Meta&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta http-equiv="X-Content-Type-Options" content="nosniff"&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;meta http-equiv="Permissions-Policy" content="..."&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meta tags are the quiet conductors of the modern web: they don’t change what users see on-screen, yet they determine how your pages are rendered, discovered, previewed, and secured across browsers, search engines, and social platforms.&lt;/p&gt;

&lt;p&gt;Feel Free to share your thoughts in the comment section. &lt;br&gt;
&lt;strong&gt;Until then Happy Coding and Stay Tuned!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>10 HTML Concepts That Every Web Developer Should Know</title>
      <dc:creator>ElectronDome</dc:creator>
      <pubDate>Fri, 11 Jul 2025 14:23:09 +0000</pubDate>
      <link>https://forem.com/electrondome/10-html-concepts-that-every-web-developer-should-know-7b0</link>
      <guid>https://forem.com/electrondome/10-html-concepts-that-every-web-developer-should-know-7b0</guid>
      <description>&lt;p&gt;Hey folks! Let’s talk HTML (but not the boring way)&lt;/p&gt;

&lt;p&gt;Sure, we all know HTML is the backbone of the web. It’s been around since the dawn of the internet.&lt;/p&gt;

&lt;p&gt;But let’s be real: &lt;strong&gt;HTML is more than just a bunch of tags wrapped in angle brackets.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When used right, it can shape powerful, accessible, and search-friendly websites that stand out from the crowd.&lt;/p&gt;

&lt;p&gt;In this blog, we’ll explore &lt;strong&gt;10 essential HTML concepts&lt;/strong&gt; every web dev should know — with easy examples, smart use cases, and fun tips to help you level up. Let’s get started!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Use of Semantic Tags instead of &lt;code&gt;&amp;lt;div&amp;gt; or &amp;lt;span&amp;gt;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The word “semantic” itself means study of meaning.&lt;br&gt;
So, Semantic tags in HTML are the elements that clearly describe their meaning to both the browsers and the developers.&lt;br&gt;
The &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; and the &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; tag are for styling but do not convey any meaning so sometimes the developer apart from the one who wrote the code gets confused by looking at the code and takes time to understand the code.&lt;/p&gt;

&lt;p&gt;Semantic tags are used for :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improving readability.&lt;/li&gt;
&lt;li&gt;For better SEO.&lt;/li&gt;
&lt;li&gt;For improving Accessibility.&lt;/li&gt;
&lt;li&gt;Code becomes easier to maintain and update.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let us understand this by looking into a code snippet&lt;br&gt;
So following code snippet shows how is it when we use semantic tags Vs. without using 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%2Fgklmc3le65390odoffrq.webp" 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%2Fgklmc3le65390odoffrq.webp" alt="semantic tag example" width="456" height="590"&gt;&lt;/a&gt;&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%2Fri130xd13kmu5eb344ua.webp" 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%2Fri130xd13kmu5eb344ua.webp" alt="non-semantic tag example" width="457" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So here we can clearly see the difference as how semantic tags adds value to our code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Importance of using alt attribute in &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;alt is an attribute that is used with the &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag that provides an alternative information for an image if a user cannot view the image for some reason. alt attribute is the abbreviated form of alternative text.&lt;/p&gt;

&lt;p&gt;Basic usage of alt attribute:&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%2Fxsxjuxlauhuscpaxxr8l.webp" 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%2Fxsxjuxlauhuscpaxxr8l.webp" alt="alt attribute" width="701" height="45"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Not using alt attribute can lead to various issues like:&lt;/p&gt;

&lt;p&gt;Missing alt means &lt;strong&gt;missed opportunity to rank&lt;/strong&gt; in image search or improve your content relevance.&lt;br&gt;
If the image &lt;strong&gt;fails to load&lt;/strong&gt;, users see nothing — no description, no context.&lt;br&gt;
While not technically a breaking error, some HTML validators will warn you that alt is missing — especially if your page claims to follow accessibility standards like &lt;strong&gt;WCAG or ARIA&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;Screen readers&lt;/strong&gt; for visually impaired users won’t know what the image is about&lt;br&gt;
Now let’s see the two types of basic usage of alt&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;alt=”…”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use it when the image adds meaning or content.&lt;br&gt;
example usage of this is as follows:&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%2Fhy9ezvmzwfaqmxijn417.webp" 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%2Fhy9ezvmzwfaqmxijn417.webp" alt="example 1" width="543" height="42"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See how this form of alt describes the meaning of the image. We can use this for product photos etc.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;alt=” ”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use it when the image is self-explanatory and do not need any explanation. example usage of this is as follows:&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%2Fhuttes6ksxlsdj4ngzbx.webp" 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%2Fhuttes6ksxlsdj4ngzbx.webp" alt="example 2" width="264" height="41"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See here we do not need any kind of explanation so just alt=” ” is enough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Using ARIA in your HTML Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ARIA is the abbreviated form of Accessible Rich Internet Applications. It is a set of special HTML attributes that help &lt;strong&gt;improve accessibility&lt;/strong&gt; for users who rely on assistive technologies like screen readers.&lt;br&gt;
Native HTML elements (like &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;, etc.) come with built-in accessibility. But when you create custom UI components (like dropdowns, modals, or sliders using &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt;), they &lt;strong&gt;lack semantic meaning&lt;/strong&gt;. ARIA bridges that gap.&lt;/p&gt;

&lt;p&gt;Common ARIA attributes are as follows:&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%2Fn2to1awj00jb1a56l0ls.webp" 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%2Fn2to1awj00jb1a56l0ls.webp" alt="Common aria" width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example-1 : Custom Button&lt;/p&gt;

&lt;p&gt;Used when you’re not using the native &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; tag.&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%2F8vi3c6jvgyxihl31hk1h.webp" 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%2F8vi3c6jvgyxihl31hk1h.webp" alt="custom button eg" width="778" height="88"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example-2 : Expandable Menu&lt;/p&gt;

&lt;p&gt;Tells screen readers that this button controls the menu and whether it’s open or closed.&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%2Fa2ze8gfsqc1ews8n9ckf.webp" 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%2Fa2ze8gfsqc1ews8n9ckf.webp" alt="Expandable Menu" width="697" height="128"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So these were some of the examples that use aria to enhance the accessibility of their code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. type attribute in &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; tag&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;type is a very important attribute in the &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; tag.&lt;br&gt;
Here are some lesser known facts about the type attribute&lt;/p&gt;

&lt;p&gt;If we do not specify type in the button tag, the browser assumes type=”submit” as the default value.&lt;br&gt;
The user should use type=”button” to avoid accidental submission of form.&lt;br&gt;
One more interesting fact is the difference between &lt;code&gt;&amp;lt;input type="submit"&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;button type="submit"&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;input type=”submit”&amp;gt;&lt;/code&gt; is self-closing and you cannot put any HTML inside 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%2Fjoj0rg1y6frd6fp8v4ve.webp" 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%2Fjoj0rg1y6frd6fp8v4ve.webp" alt="Input submit" width="368" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;button type=”submit”&amp;gt;&lt;/code&gt;is not self-closing and we can put any HTML content inside 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%2F465k693gqzwpoojwgj36.webp" 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%2F465k693gqzwpoojwgj36.webp" alt="button submit" width="238" height="93"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. readonly Vs. disabled attribute in &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; tag&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The readonly attribute in HTML &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; tags is used to make an input field &lt;strong&gt;non-editable&lt;/strong&gt; by the user, &lt;strong&gt;without disabling&lt;/strong&gt; 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%2F2ma8tzqwltbjuoa8pmx7.webp" 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%2F2ma8tzqwltbjuoa8pmx7.webp" alt="readonly attribute" width="535" height="52"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The disabled attribute in HTML is used to &lt;strong&gt;completely disable&lt;/strong&gt; an input element, meaning the user &lt;strong&gt;cannot interact with it at all&lt;/strong&gt; — no typing, no focusing, and &lt;strong&gt;its value won’t be submitted in a form&lt;/strong&gt;.&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%2F35oaa7n5nx0ii7mt312n.webp" 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%2F35oaa7n5nx0ii7mt312n.webp" alt="disabled attribute" width="521" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Block-level Vs. Inline HTML elements&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let me give you a code snippet and you need to think of the placement of the elements before you look into the answer.&lt;/p&gt;

&lt;p&gt;Here the three button elements are placed inside the div element. The obvious response by looking at it once would be as follows:&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%2F76i9xl5rxlnp8jk8e2jp.webp" 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%2F76i9xl5rxlnp8jk8e2jp.webp" alt="blockInline1" width="423" height="146"&gt;&lt;/a&gt;&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%2Fzgsp6osfpmafpg68e7c3.webp" 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%2Fzgsp6osfpmafpg68e7c3.webp" alt="wrong answer" width="120" height="101"&gt;&lt;/a&gt;&lt;em&gt;Figure 1: Wrong answer&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But the correct answer to the placement of the buttons is as follows:&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%2Fcbwri9riepm36bqyhec7.webp" 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%2Fcbwri9riepm36bqyhec7.webp" alt="correct answer" width="268" height="43"&gt;&lt;/a&gt;&lt;em&gt;Figure 2: Correct answer&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The reason being:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; is an inline element but &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; is a block-level element.&lt;/p&gt;

&lt;p&gt;Inline elements in HTML are elements that flow within the text and do not force a line break. They only take up the necessary width for their content, unlike block-level elements which start on a new line and take up the full available width.&lt;/p&gt;

&lt;p&gt;So, just by keeping a track of which HTML elements are block-level and which are inline HTML elements can save your lot of time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. &lt;code&gt;&amp;lt;b&amp;gt;&lt;/code&gt; Vs. &lt;code&gt;&amp;lt;strong&amp;gt;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;b&amp;gt;&lt;/code&gt; tag stands for bold and &lt;code&gt;&amp;lt;strong&amp;gt;&lt;/code&gt; tag stands for strong.&lt;br&gt;
Both the tags are used to make a specific text bold.&lt;br&gt;
&lt;code&gt;&amp;lt;b&amp;gt;&lt;/code&gt; is used for basic styling with no semantic meaning but &lt;code&gt;&amp;lt;strong&amp;gt;&lt;/code&gt; tag is used where we want to provide a semantic meaning to a specific text like the user wants to show some warning messages, important points and emphasizing key points.&lt;br&gt;
let us understand this with a code snippet&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%2Fgdeu5akag5f46119q9av.webp" 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%2Fgdeu5akag5f46119q9av.webp" alt="bVsStrong" width="666" height="157"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The output will be shown as follows:&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%2F6l4grrxsaz1jyjnobqm0.webp" 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%2F6l4grrxsaz1jyjnobqm0.webp" alt="bVsS2" width="437" height="81"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The visual effect is the same for both the tags but &lt;code&gt;&amp;lt;strong&amp;gt;&lt;/code&gt; adds a semantic meaning&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; Vs.&lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; is like a basic container where we can put any type of element.&lt;br&gt;
&lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; is like a semantic container which is used for grouping related content with a heading, heading is the most important thing in &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; tag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; Vs. &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt; for self-contained &lt;strong&gt;shareable content&lt;/strong&gt; (like blog posts, comments, news stories).&lt;br&gt;
Use &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; to &lt;strong&gt;group related content&lt;/strong&gt; inside your page (like a "Features" section or a "Testimonials" block).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. The lesser known &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; tag&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The meta tag is like a label on a file which tells the browser and the search engines what the page is about, how to display it, and &lt;strong&gt;how it should behave&lt;/strong&gt; — but none of this is shown directly to visitors.&lt;br&gt;
It is always placed inside the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; of HTML:&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%2F61xvzavwr5warmaaja3x.webp" 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%2F61xvzavwr5warmaaja3x.webp" alt="meta tag" width="706" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some more details about the above attributes:&lt;/p&gt;

&lt;p&gt;charset: It sets the text encoding (usually UTF-8) and prevents weird characters from showing up. If a webpage supports multiple languages, including Hindi, Japanese, and Arabic and special characters show up as &lt;strong&gt;boxes or gibberish&lt;/strong&gt; then use &lt;code&gt;&amp;lt;meta charset=”UTF-8”&amp;gt;&lt;/code&gt;&lt;br&gt;
viewport: It makes your page responsive and looks good on phones and tablets.&lt;br&gt;
description: It describes your site to search engines and helps Google show better previews.&lt;br&gt;
It is used to control the browser behaviour. One Use Case can be if a bank wants to prevent the sensitive pages from being cached by the browser then use meta tag like &lt;code&gt;&amp;lt;meta http-equiv = ”cache-control” content = ”no-store”&amp;gt;&lt;/code&gt;&lt;br&gt;
And that’s a wrap on the core HTML concepts every developer should know.&lt;/p&gt;

&lt;p&gt;So go ahead — discover, experiment, build, break stuff, and build again. The web’s your playground.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Until next time — happy coding!&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Understanding Web Development: The New Basics in 2025</title>
      <dc:creator>ElectronDome</dc:creator>
      <pubDate>Fri, 04 Jul 2025 04:29:32 +0000</pubDate>
      <link>https://forem.com/electrondome/understanding-web-development-the-new-basics-in-2025-2n9j</link>
      <guid>https://forem.com/electrondome/understanding-web-development-the-new-basics-in-2025-2n9j</guid>
      <description>&lt;p&gt;Web Development is an ART that only a Web Developer can Craft.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hey folks,&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Welcome to the wonderful world of Web Development!&lt;/strong&gt;&lt;br&gt;
These days, it feels like web development is sprinting through a tech marathon. One side is shouting, “AI will build everything for you!” while the others are still figuring out what version of JavaScript we are on.&lt;/p&gt;

&lt;p&gt;Here is my take: &lt;strong&gt;AI won’t replace web developers — but it’s definitely becoming our new sidekick.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is taking care of the repetitive work so we can focus on solving bigger challenges and building smarter experiences.&lt;/p&gt;

&lt;p&gt;But AI isn’t the only game-changer in town.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Behind the scenes, the entire web stack is evolving&lt;/strong&gt; — from how our browsers talk to servers (hello, HTTP/3!) to how graphics and code run in your browser (meet WebGPU and WASI). Similar to this, there are lot many&lt;br&gt;
things that have evolved or are evolving&lt;/p&gt;

&lt;p&gt;But&lt;/p&gt;

&lt;p&gt;Before we zoom into what’s new in 2025, let’s quickly go over what web development actually means — especially if you’re just starting out or need a refresher.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Web Development?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At its core, web development is all about &lt;strong&gt;building and maintaining websites and web apps&lt;/strong&gt; — everything from how they look, to how they behave, to how they talk to servers and store your data.&lt;/p&gt;

&lt;p&gt;Depending on the roles and technologies involved, web development is generally split into three types:&lt;/p&gt;

&lt;p&gt;Frontend Development&lt;/p&gt;

&lt;p&gt;This is all the visual stuff — the part users actually see and interact with in their browser. That’s why it is also called as &lt;strong&gt;client-side development&lt;/strong&gt; (because it runs in the client’s browser).&lt;br&gt;
&lt;strong&gt;Common Technologies in use:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Structure &amp;amp; styling: HTML, CSS&lt;/li&gt;
&lt;li&gt;Interactivity: JavaScript / TypeScript&lt;/li&gt;
&lt;li&gt;Frameworks &amp;amp; Libraries: React, Angular, Vue&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Backend Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the behind-the-scenes logic — how the website or app works. It’s called &lt;strong&gt;server-side development&lt;/strong&gt; because the code runs on the server and sends results to the frontend.&lt;br&gt;
&lt;strong&gt;Common Technologies in use:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Server logic: Node.js, Python, Java, PHP&lt;/li&gt;
&lt;li&gt;Databases: MongoDB, MySQL, PostgreSQL&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Full Stack Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Think of this as the complete package — frontend + backend + database + deployment. A &lt;strong&gt;full stack developer&lt;/strong&gt; handles the entire flow from user interface to data storage and everything in between.&lt;/p&gt;

&lt;p&gt;Now let’s take a look towards the major shifts in the web development technologies:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTTP / 3&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s see what is &lt;strong&gt;HTTP&lt;/strong&gt; in short first,&lt;br&gt;
HTTP stands for the &lt;strong&gt;Hypertext Transfer protocol&lt;/strong&gt;. It is the communication protocol used by web browsers and web servers to send and receive data over the internet.&lt;br&gt;
HTTP/3 is the latest and fastest version of HTTP that is built on a new transfer protocol called &lt;strong&gt;QUIC&lt;/strong&gt;.&lt;br&gt;
Before the advent of HTTP/3, HTTP/1 and HTTP/2 were used which used &lt;strong&gt;Transmission Control Protocol(TCP)&lt;/strong&gt; that had some issues like slow connections especially on mobile, Head-of-line blocking i.e. if one request is delayed all others in line after it must wait, another problem was poor handling of lost packets i.e. if a small piece of data is lost during the transfer of data, TCP makes you wait for it.&lt;br&gt;
In short, &lt;strong&gt;HTTP/3&lt;/strong&gt; is a &lt;strong&gt;next-generation web protocol&lt;/strong&gt; that solves the issues like speed, reliability and blocking problems of older HTTP versions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Web Vitals&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Web Vitals&lt;/strong&gt; are a set of metrics defined by &lt;strong&gt;Google&lt;/strong&gt; to measure the performance of a website by how real users experience a website. These metrics affect your website’s &lt;strong&gt;SEO ranking&lt;/strong&gt;, so they’re important for both developers and business owners.&lt;br&gt;
Originally, three main metrics were used:&lt;br&gt;
&lt;strong&gt;LCP (Largest Contentful Paint)&lt;/strong&gt; — How fast the main content appears&lt;br&gt;
&lt;strong&gt;FID (First Input Delay)&lt;/strong&gt; — How fast the site responds to user input&lt;br&gt;
&lt;strong&gt;CLS (Cumulative Layout Shift)&lt;/strong&gt; — How stable the layout is&lt;br&gt;
The Problem With FID (First Input Delay) was&lt;br&gt;
&lt;strong&gt;FID measured only the delay before the browser could start responding to a user’s first interaction&lt;/strong&gt; (like a tap or click). But it didn’t track whether the website visually responded quickly, the experience felt smooth, the full interaction was fast.&lt;br&gt;
In short, &lt;strong&gt;FID was too narrow&lt;/strong&gt;. It focused just on the start of the interaction, not the full experience.&lt;br&gt;
What’s New: INP (Interaction to Next Paint)&lt;br&gt;
&lt;strong&gt;INP = Interaction to Next Paint.&lt;/strong&gt;&lt;br&gt;
Google introduced INP as a more &lt;strong&gt;complete measure&lt;/strong&gt; of how responsive a site feels.&lt;br&gt;
What INP Measures is not just the first input — it tracks &lt;strong&gt;all&lt;/strong&gt; interactions: taps, clicks, scrolls, drags. Measures the &lt;strong&gt;full interaction&lt;/strong&gt; lifecycle: When you click to how long it takes for the next visible update to appear.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebGPU&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebGPU&lt;/strong&gt; is a &lt;strong&gt;new web technology&lt;/strong&gt; that lets your browser (like Chrome, Edge, Safari) talk &lt;strong&gt;directly to your computer’s graphics card (GPU).&lt;/strong&gt;&lt;br&gt;
This means:&lt;br&gt;
Websites can now &lt;strong&gt;render high-quality graphics faster&lt;/strong&gt; (like games, 3D designs, complex animations).&lt;br&gt;
It can also &lt;strong&gt;speed up machine learning and other advanced computing tasks&lt;/strong&gt; inside your browser — no need to install anything!&lt;br&gt;
Before WebGPU, we had WebGL, WebGL2,Canvas/2D.&lt;br&gt;
WebGL use was &lt;strong&gt;limited&lt;/strong&gt;. It couldn’t use &lt;strong&gt;modern GPU features&lt;/strong&gt; available on desktops or mobile devices. It was also not great for &lt;strong&gt;non-graphics tasks&lt;/strong&gt; like AI or data processing.&lt;br&gt;
Canvas/2D were used for simple drawings, charts, or 2D games. It was not suitable for high-end tasks.&lt;br&gt;
What does WebGPU solve?&lt;br&gt;
Old graphics APIs like WebGL that were hard to optimize now uses modern GPU power like DirectX 12, Vulkan, Metal.&lt;br&gt;
WebGL was only for graphics, not for computing tasks but now WebGPU can do both — graphics and computations.&lt;br&gt;
&lt;strong&gt;WebGPU is much faster and more efficient&lt;/strong&gt; in case of complex 3D apps and ML models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Passwordless SignIn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Passwordless”&lt;/strong&gt; means you can sign in to websites or apps without typing a password. Instead, you can use &lt;strong&gt;your fingerprint, face, or phone PIN&lt;/strong&gt; — something you already use to unlock your device.&lt;br&gt;
What are Passkeys?&lt;br&gt;
&lt;strong&gt;Passkeys&lt;/strong&gt; are a new, safer way to log in. They are &lt;strong&gt;digital keys&lt;/strong&gt; stored on your device and protected by &lt;strong&gt;biometrics (like Face ID, fingerprint)&lt;/strong&gt; or your &lt;strong&gt;device PIN&lt;/strong&gt;.&lt;br&gt;
You don’t need to remember anything.&lt;br&gt;
You don’t need to type anything.&lt;br&gt;
You just approve with your face or finger.&lt;br&gt;
Passkeys are like magical keys on your phone that open your accounts — no passwords needed.&lt;br&gt;
You just look at your screen or touch your finger, and you’re logged in.&lt;/p&gt;

&lt;p&gt;That was just a wrap on some of the greatest shifts happening in &lt;strong&gt;web development!&lt;/strong&gt; If you liked this, stick around — there’s a lot more coming your way.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
