
Angular vs Svelte, what changed when I switched frameworks
I come from years with Angular. I explain what made me seriously try Svelte and what I actually miss.
I was comfortable with Angular for a long time. I liked that everything came solved out of the box: dependency injection, a serious router, RxJS for everything async… for a big project, with several people touching the same code, that strong structure helps. Every file knows exactly where it belongs and what shape it should have.
The problem showed up with small projects, which are most of what I do. Setting up an Angular app for a landing page with two forms felt like bringing a diving suit to the hotel pool.
The first time I tried Svelte
It was almost out of boredom, one weekend. The first thing I noticed wasn’t any specific feature, but the amount of code I didn’t have to write. No decorators, no modules to register, no ngOnInit for everything. A reactive variable was, literally, a variable.
That made me suspicious at first — I’d spent years thinking “less visible code” meant “more hidden magic that bites you one day.” But looking at the compiled HTML, the magic turned out to be pretty reasonable: Svelte doesn’t ship an entire framework to the browser, it compiles your component to plain JavaScript that updates the DOM where needed and nothing more.
What I do miss
Not everything is prettier on the other side. In Angular I never worried about how to structure services shared between components — the framework itself forces you to think it through from the start. In Svelte I’ve had to learn that discipline on my own, and at first I stuffed quite a bit of state directly into components that should have gone into a store much sooner.
I also miss the aggressive typing of a well-configured Angular project. You can get to a similar level with TypeScript and Svelte, but you have to work a bit harder for it.
Where I use each one
I still recommend Angular for large team projects, especially if there’s already people on the team coming from that world. For everything else — which in my case is almost everything — Svelte wins by a landslide: fewer pieces to maintain, less JavaScript for the user to download, and code that reads top to bottom without having to jump between five files to understand what a component does.