Why I'm Leaving Web Dev
The Beginning
I've been in web development since the end of 2023, for almost two years now. My first project was a summaive project for my Grade 11 English class written in Next.js. After that, I built websites for my school band and city jazz band, again, written in Next.js. At first, it was fun, with all those Tailwind CSS and state management. Unlike other programming areas, I could see the results of my work immediately just by running next dev
in my terminal. Compared to SwiftUI, web development felt more easier but more fun, especially with npm libraries that faciltate the development process.
Then, I found Vite and SvelteKit. I was amazed by the compiler approach (which Vue and React now have experimental support for) and the performance of Svelte. SvelteKit was similar to Next.js, so it was pretty easy to learn the fundamentals. I migrated all my three websites to SvelteKit, and it was a breeze. However, I encountered my first challenge in web development — dependencies. In my Next.js projects, I heavily used Motion (it was called Framer Motion back then). It was a great library, as I could apply fancy animations in a few lines of code. But it was binded to React, so when I migrated to SvelteKit, I had to implement the same animations in a different way. I spent almost a week trying to implement the same animations in Svelte, and that was the first time I was disappointed by the web development ecosystem.
First Big Project in My Life
Around the end of 2024, I joined Poliwave, a platform that provides Canadian election projection. I was the only developer with previous experience in the team, and I was responsible for the frontend and backend. I was excited to work on a project that was actually useful, and I was excited to work with a team that was actually professional.
However, it was too difficult to maintain such a large project by myself. I was the only developer, and I was responsible for both the frontend and backend. I was overwhelmed by the amount of work, and since my colleague who maintained the actual electoral projection also wrote the code for the web app, it was really hard to maintain the codebase in a good state. Sometimes the code was deployed even though it failed checks on GitHub Actions, and when I tried to fix the issues, it was too late to fix them without reverting the changes to the initial state.
At last, it reached the state where the website was lagging and it had glitches everywhere, but I was unable to debug and fix the core issues due to the low quality of the codebase. We added patches on the codebase to mitigate the issues, but since the code was already in a bad state, another glitch appeared after the patch was applied.
We also had to migrate between different UI libraries, and everytime we did, it broke the existing codeflow. Since it was really hard to create our own design system in a team of two, we had to use a third party library, and it was painful to find the right components to use. Even though we made a decision on which library to use, our mind changed in a few days, and we had to migrate to a different library again.
I felt too tired of spending so much time and energy on visual side of the project. Unlike other fields of programming, frontend development is mostly about designing and implementing the UI, not the core logic of the project. Instead of building a complete project, I was just destroying and rebuilding the project over and over again without any progress.
For these reasons, I lost interest in most part of web development. Except for reading release notes of SvelteKit, Vite, and Bun, I switched to other fields of programming such as operating systems, embedded systems, AI, and blockchain.
Got a Job
In July 2025, I got a summer student job at CHEO RI, a research institute in Ottawa. I love the work I do there and my colleagues are great, but while I was working on the project, I made my decision to leave web development after this job is over in August.
My team spent first three days on determining the tech stack, which was changed again on the next week. I felt very unproductive and saw myself as a website designer, not a programmer. As a side project, I built a RAG-based chatbot platform with my friend. Because we focused more on the programming aspect rather than the design aspect, it was way more fun than any of my web projects.
I also studied blockchain and AI, and I was amazed by the potential of these technologies. I also had an opportunity to revisit the computer architecture and low-level programming, and although they were more difficult than web development, they didn't cause me as much frustration as web development did. I felt that I was being a computer engineer, not a designer, and that was the time that I decided to leave the world of web development.
Issues with Web Development Ecosystem
The Ecosystem is Too Fragmented
Let me list some technologies you can use to build a web project:
- Runtime: Node.js, Bun, Deno, etc.
- Framework: Next.js, SvelteKit, Nuxt.js, Astro,etc.
- Library: React, Vue, Svelte, etc.
- UI Library: Tailwind CSS, Shadcn UI, etc.
- Package Manager: npm, yarn, pnpm, bun, etc.
- Build Tool: Vite, Webpack, rsbuild, Turbopack, etc.
- Testing Framework: Jest, Vitest, Playwright, etc.
- Linting & Formatting: ESLint, Prettier, etc.
- Typing: TypeScript, JSDoc, etc.
- Database: Supabase, PostgreSQL, etc.
- Hosting: Vercel, Netlify, etc.
- CI/CD: GitHub Actions, GitLab CI, etc.
- Monitoring: Sentry, etc.
- Analytics: Google Analytics, etc.
- and so on...
There are so many options to choose from, and there is new technology coming out every day. In 2025, people complain about the best LLM model being updated every month, but compared to web technologies in 2022-2024, it's not even a big deal. It's really hard to keep up with the latest trends and technologies, and it's hard to find innovation in the web development ecosystem. The last time I remember innovation in the web development ecosystem was when Svelte introduced the compiler approach and when node-rs made using Rust in web development possible. Apart from that, most hyping techonologies that appearaed in that era is not even mentioned anymore (Who remembers Remix, MongoDB, Gatbsy, etc?).
Unsafe Nature of Javascript
No, I'm not talking about memory safety like C/C++. I'm talking about the type safety of Javascript. Although Typescript and JSDoc are great, they are not the core specification of Javascript. I used Typescript in my projects, but my colleague didn't follow the type safety rules, and even deployed the code while the CI check was failing. If this was a C/C++ project, the binary would have been built at the first place, even though they might contain memory safety issues.
Ecosystem that Has Both Legacy and Modern Technologies
In Javascript ecosystem, we see a lot of legacy syntax and technologes and their modenr counterparts. Callback vs async, Webpack vs Vite, CommonJS vs ESM, etc. Some times we need to use Javascript transpilers to run code on old browsers due to lack of something like ABI compatibility. Although this is not a big issue for building a new project, it's quite problematic when you're maintaining a legacy project. Imagine that you are working on two projects, one is relatively new using Vite and ES6 code while the other is legacy project using Webpack and deprecated Vue v2. Yes, it would be very painful to maintain those two at the same time.
You might say that this is the same problem in other fields of programming. But in web development, this happens too frequently. C++98 was used for 16 years until the release of C++11. Although there have been new features in C++20, it was not a major overhaul with breaking changes like CommonJS to ESM or Vue v2 to Vue v3. Note that while using C++11 is not legacy in 2025, Webpack, which people replaced with Vite, was released in 2012.
What's Next?
As I'm going to the University of Waterloo for computer engineering, I will focus on embedded programming and circuit design. I will also study AI and blockchain, although I'm not sure if I will be able to use them in my future career.
Although I will still follow the release notes of SvelteKit, Vite, and Bun, I will completely keep distance from the web development ecosystem. The only reason I'm still following the release notes is because I believe that those three are the only innovative projects left in the web development ecosystem. Others seem to repeating same ideas over and over again, which I'm not interested in.