<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/why-vanilla-js-cz2v0zzj5" -->

---
title: Why Vanilla JS | daily.dev
description: A developer shares their experience building a complex web application (instruxmusic.com) entirely with vanilla JavaScript and Web Components, arguing that...
canonical: https://daily.dev/posts/why-vanilla-js-cz2v0zzj5
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Why Vanilla JS | daily.dev
og:description: A developer shares their experience building a complex web application (instruxmusic.com) entirely with vanilla JavaScript and Web Components, arguing that...
og:url: https://daily.dev/posts/why-vanilla-js-cz2v0zzj5
og:image: https://api.daily.dev/og/posts/Cz2v0Zzj5.png
og:image:alt: Why Vanilla JS
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Why Vanilla JS

**[Hacker News](https://daily.dev/sources/hn)** · 9 min read · 99 upvotes · 25 comments

## Summary

A developer shares their experience building a complex web application (instruxmusic.com) entirely with vanilla JavaScript and Web Components, arguing that modern frontend frameworks like React, Angular, Vue, and Svelte introduce artificial complexity by taking control away from developers. The core argument is that the browser itself is already a framework, and native web technologies (HTML, CSS, JS) have advanced enough to build robust applications without build pipelines, TypeScript, or reactive state abstractions. The author also introduces two self-built tools — EHTML and e-ui — that solve real problems (templating, form handling, HTML caching, import maps) without reinventing the platform. The post challenges the industry norm of framework dependency and advocates for structured vanilla JS as a scalable, productive alternative.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://guseyn.com/html/posts/why-vanilla-js.html>

## Community discussion

Top comments from developers on daily.dev.

**@yaireo** · 14 upvotes

> "share their experience" as if he went to live in a cave for a week.
> Building large-scale apps in vanilla was my career for 15 years before React came. Many thousands as other frontend devs as well. I even built a whole "framework" around vanilla using early Rollup bundler in 2015. It was really great.
>
> I do however LOVE React due to the simplicity of the structure and how "close" it is to vanilla code as everything is just javascript functions without any magic besides JSX which is the absolute minimal needed

**@rucaua** · 4 upvotes

> As a result, you’ve already built your own framework that nobody knows about and hasn’t been tested as well as popular ones. Why?
>
> Let’s imagine you hire a new developer.  He probably knows Vue and React and can read code, but with your vanilla JavaScript, he’ll need a lot of time to get up to speed.  He’ll likely break the DRY principle a thousand times a day because he doesn’t know some helpers and classes already exists in the code.
>
> I see only 1 reason - author too lazy to learn how frameworks works.

**@baz14** · 4 upvotes

> Until 2015, using VanillaJS exclusively was impossible. The language evolves, absorbing useful and proven features from top libraries and frameworks. Today, people use libraries and frameworks only because they have a large, existing codebase and because they're accustomed to them. But yes, today you can use VanillaJS on its own.

**@pdfopsdev** · 3 upvotes

> The 'browser is already a framework' point lands for routing, templating, and encapsulation — Web Components genuinely cover those now. Where it gets thin is reactive state: there's no native fine-grained reactivity, so 'structured vanilla' quietly turns into a hand-rolled signals layer you become the sole maintainer of. That's usually the point people reach back for a framework — not the templating.

**@bits\_and\_bytes** · 3 upvotes

> We removed React from one of our internal dashboards last year. The bundle dropped by 60%. Nobody noticed except the users who stopped complaining about load times.

## Similar posts on daily.dev

- [The Business Case for Vanilla JS](https://daily.dev/posts/the-business-case-for-vanilla-js-4unpymwsc) · Lobsters · 81 upvotes · 16 comments

---

Tags: [#javascript](https://daily.dev/tags/javascript), [#react](https://daily.dev/tags/react), [#web-components](https://daily.dev/tags/web-components)

[View this post on daily.dev](https://daily.dev/posts/why-vanilla-js-cz2v0zzj5)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Why Vanilla JS","url":"https://daily.dev/posts/why-vanilla-js-cz2v0zzj5","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/why-vanilla-js-cz2v0zzj5"},"datePublished":"2026-07-13T01:45:20.611Z","dateModified":"2026-07-13T14:17:28.706Z","description":"A developer shares their experience building a complex web application (instruxmusic.com) entirely with vanilla JavaScript and Web Components, arguing that...","image":"https://media.daily.dev/image/upload/s--qPvKM23u--/f_auto/v1722860399/public/Placeholder%2009","thumbnailUrl":"https://media.daily.dev/image/upload/s--qPvKM23u--/f_auto/v1722860399/public/Placeholder%2009","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":25,"discussionUrl":"https://daily.dev/posts/why-vanilla-js-cz2v0zzj5","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":99},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":25}],"keywords":"javascript,react,web-components","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"Why Vanilla JS"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/why-vanilla-js-cz2v0zzj5","comment":[{"@type":"Comment","text":"“share their experience” as if he went to live in a cave for a week.\nBuilding large-scale apps in vanilla was my career for 15 years before React came. Many thousands as other frontend devs as well. I even built a whole “framework” around vanilla using early Rollup bundler in 2015. It was really great.\nI do however LOVE React due to the simplicity of the structure and how “close” it is to vanilla code as everything is just javascript functions without any magic besides JSX which is the absolute minimal needed","datePublished":"2026-07-13T07:07:41.147Z","url":"https://daily.dev/posts/Cz2v0Zzj5#c-jLQCUA8Ea","author":{"@type":"Person","name":"Yair Even Or","url":"https://daily.dev/yaireo","image":"https://avatars.githubusercontent.com/u/845031?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":14}},{"@type":"Comment","text":"As a result, you’ve already built your own framework that nobody knows about and hasn’t been tested as well as popular ones. Why?\nLet’s imagine you hire a new developer.  He probably knows Vue and React and can read code, but with your vanilla JavaScript, he’ll need a lot of time to get up to speed.  He’ll likely break the DRY principle a thousand times a day because he doesn’t know some helpers and classes already exists in the code.\nI see only 1 reason - author too lazy to learn how frameworks works.","datePublished":"2026-07-13T14:05:59.219Z","url":"https://daily.dev/posts/Cz2v0Zzj5#c-IzblWGEw9","author":{"@type":"Person","name":"Maksym Tymofeiev","url":"https://daily.dev/rucaua","image":"https://media.daily.dev/image/upload/s--caTJyFHC--/f_auto/v1736549445/avatars/avatar_sIPMygD4Ld90iZsdsEqh7"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4}},{"@type":"Comment","text":"Until 2015, using VanillaJS exclusively was impossible. The language evolves, absorbing useful and proven features from top libraries and frameworks. Today, people use libraries and frameworks only because they have a large, existing codebase and because they’re accustomed to them. But yes, today you can use VanillaJS on its own.","datePublished":"2026-07-13T07:26:24.668Z","url":"https://daily.dev/posts/Cz2v0Zzj5#c-hqRvTarns","author":{"@type":"Person","name":"Baz","url":"https://daily.dev/baz14","image":"https://lh3.googleusercontent.com/a/ACg8ocKd2iFU8YS4sV-rBJptuYSF8EHeQnm23N_dcXE1uON7_GMIlZg=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4}},{"@type":"Comment","text":"The ‘browser is already a framework’ point lands for routing, templating, and encapsulation — Web Components genuinely cover those now. Where it gets thin is reactive state: there’s no native fine-grained reactivity, so ‘structured vanilla’ quietly turns into a hand-rolled signals layer you become the sole maintainer of. That’s usually the point people reach back for a framework — not the templating.","datePublished":"2026-07-13T18:04:39.760Z","url":"https://daily.dev/posts/Cz2v0Zzj5#c-IXsmAYdRs","author":{"@type":"Person","name":"PDFops","url":"https://daily.dev/pdfopsdev","image":"https://media.daily.dev/image/upload/s---8isRBKc--/f_auto/v1782922291/avatars/avatar_orjMeK8QKaaVZwGq7ScPz?_a=BAMAMicg0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3}},{"@type":"Comment","text":"We removed React from one of our internal dashboards last year. The bundle dropped by 60%. Nobody noticed except the users who stopped complaining about load times.","datePublished":"2026-07-14T03:19:53.929Z","url":"https://daily.dev/posts/Cz2v0Zzj5#c-crkS7lxp0","author":{"@type":"Person","name":"bits_007","url":"https://daily.dev/bits_and_bytes","image":"https://avatars.githubusercontent.com/u/182549945?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3}}]}
```

