Fatih Acet: The growth of Vue.js is phenomenal 😯

Vue gets mentioned a lot in the discussion about the future of JavaScript, and AmsterdamJS is ready for the talk!

We’re bringing you an interview with Fatih Acet, a Senior Frontend Engineer at GitLab responsible for the maintenance of its frontend. He is passionate about delivering solid frontend code and loves to see the things he created being used by thousands of others.

How do you usually introduce yourself?

My name is Fatih. I am one of the Senior Frontend Engineers at GitLab and also a GDE on Web Technologies. I am originally from Istanbul, Turkey and living in Amsterdam since November 2017. Working remotely for the last 5 years and I love it. I am a Turkish content creator on YouTube about web development tools and techniques, career building and remote working tips.

While I'm not working, I love to spend my time with our 7 months old son. Since I work remotely, it’s amazing to share every single minute of my day with him and incredible to see him growing and building a strong relationship with me. I appreciate remote working and encourage people to try it. Lastly, I enjoy board games, trying to make some good latte arts and driving on a coast highway with my family.

As you mentioned in your talk proposal, Vue.js is growing like crazy right now. In your opinion, what’s its main growth driver?

According to the State of JavaScript 2017 reports, 43% of Frontend developers want to learn Vue.js. It’s the most starred project on GitHub in 2017 with more than 40K+ stars. Its growth is phenomenal and I think it’s because Vue is easy to learn, well documented, maintainable, testable and a lightweight library with the support of an amazing community. It is an elegant solution for your new projects also its progressive behavior allows you to add Vue to your existing projects easily.

The library itself only focuses on the view layer of your application however with help of Vuex, Vue Router, Vue Test Utils, Vue CLI, and Vue DevTools it becomes a complete tool for all your Frontend needs. Vue.js team members are constantly improving the quality of Vue and it’s getting better and better every single day.

It’s clear about the pros, but what about the cons? Where would Vue.js not be suitable?

The first thing comes to my mind is the ecosystem. Unfortunately, the Vue ecosystem is not as big as its top competitors, such as React and Angular. However, Vue is growing and it’s becoming something you no have to longer worry about.

Also, it’s still kind of a one-man project. Evan You, the author of Vue, works full time on Vue which is great, however, sometimes it can be opinionated.

What framework/library was GitLab using before the transition to Vue, and how is the progress going?

We've used Vue at GitLab for almost 2 years and it’s been going great. We are really happy with it. It has helped us ship features in less time with less bugs. Before we added Vue to GitLab, we had had jQuery only Frontend with lots of jQuery selectors and DOM manipulations involved in our code. We had no state management at that time and it was unmaintainable. That’s why we were facing regressions a lot. On top of these, we were missing the latest Frontend tooling, like Webpack and NPM. It was a tough decision for us to choose a new library to add GitLab — we compared a bunch of other libraries and we wanted to go with Vue. The reasons were:

Vue is easy to pick up so it allowed everyone in our team to start to contribute quickly.

It was something we could add to our stack with less pain. It was as simple as including vue.js to our app and starting using it.

to our app and starting using it. We wanted to go iteratively. We now have a very powerful frontend however we achieved it over time. Vue helped us a lot in this direction.

We only want to rewrite something if it’s really necessary. Vue didn’t force us to rewrite everything with Vue. It played very nicely with our existing app.

Everyone in GitLab Frontend Team loves Vue. We love its reusability, maintainability and testability parts. We refactored some mission-critical parts of GitLab, like merge request widget, discussions, pipelines and more with Vue. We did it by creating standalone components and put them together to create a big feature which works like SPA. We now have lots of reusable components where we use different places of GitLab Frontend. We also added Vuex to help us to do state management properly.

For people who want to read and listen more about it, I can share some resources. For example, Why We Chose Vue.js and How we do Vue: one year later blog posts from GitLab Blog and the GitLab and Vue talk from VueConf 2017.