Vue is like taking React, adding MobX, and using Angular’s templating syntax.

I deployed my first production Vue app. 🎉 Built from scratch. Well, as close to scratch as makes sense. Team’s been working on the Vue ecosystem all year.

NOTE: This is a cross-post from my newsletter. I publish each email two weeks after it’s sent. Subscribe to get more content like this earlier right in your inbox! 💌

Day job CTO gently pushed me towards backend last year when he decided we were migrating our frontend to Vue, not React (from Backbone). I was grumbling a little too loud, and he needed someone experienced to work on critical backend stuff. 🤷‍♀️

BUT! I found an excuse to emerge from my dark backend cave and do some frontend. What a breath of fresh air. I missed JavaScript at work.

We needed a small admin app for the sales team. All the frontend devs were busy, the API was my backend project, so I figured I can stitch together an app in about a day.

I did.

It was a long day full of frustration, but my app was ready for production with just a few tweaks. After my trip to NYC, I made it part of an existing app.

Wasn’t meant to write an independent app. We already had the scaffolding I so painfully assembled myself. Oops.

Vue is… okay?

Vue is easy to pick up.

The very basics are just like hand-built HTML and CSS with a splash of JavaScript. I think that’s why my CTO picked it over React. Because it felt like the learning curve is easier.

But that leads to problems.

Vue is closer to React in how you’re supposed to use it than it is to hand slinging HTML and CSS and JavaScript.

You will paint yourself into a corner and then your templates look like ours do 👇

It’s not Vue’s fault. It isn’t anybody’s fault.

If you want someone to blame, pick whomever made BEM css soup popular. Our team is just following trends and learning from the best in class.

Then they (we?) moved to Vue, and it was like “Oh hey, this is so easy. We can just copy our old patterns and make a modern app”.

React forces you to rebuild and rethink.

Personally, I always preferred the semantic widgets approach where you have a .buy-button class instead of manually mixing .red .round .pad20 .big-text .sales-page every time. React, with styled-components, is closer to that philosophy. Vue enables it too.

🧐

Vue — the good

Easy to pick up, if you’re new to webdev Easy to grok, if you’re experienced with React or similar About 10kb lighter in the browser State management and routing built in Component based Uses the web components Component state is reactive (like it was built with MobX) Single file components are kinda neat

Vue — the bad

So… Vue or React?

I still don’t like Vue. It’s okay, but it doesn’t make me happy like React does.

React feels like what I always dreamt a JavaScript framework would feel like. Vue feels like it was designed by people who don’t like JavaScript.

Maybe I need to give it more time 🤔