Between the Wires: An interview with Vue.js creator Evan You

Evan You headshot

In the world of modern JavaScript frameworks, Vue.js has quickly risen to become one of the most popular and beloved options. Its creator, Evan You, has guided the framework from a small experiment to a full-fledged open source project and thriving ecosystem.

I had the pleasure of interviewing Evan to learn more about his background, the story behind Vue, and his thoughts on the world of frontend development.

From art history to JavaScript

Evan‘s path to becoming a software engineer was an unconventional one. Born in the Chinese city of Wuxi, he came to the US for college to study studio art and art history.

"When I was about to graduate, I realized it was pretty hard to find a job doing studio art and art history," Evan recounted. "I figured maybe I could go to a master‘s program that fit my interests better and developed more skills."

He ended up in the Design and Technology MFA program at Parsons, where he was exposed to creative coding tools like Processing and OpenFrameworks. But it was JavaScript that really captivated him.

"I was attracted to JavaScript because of the ability to just build something and share it instantly with the world. You put it on the web, and you get a URL, you can send it to anyone with a browser. That was the part that attracted me to the web and to JavaScript."

While Parsons didn‘t focus heavily on JavaScript, Evan dove into learning the language on his own, inspired by early Chrome Experiments. He built similar interactive projects for his portfolio, which caught the eye of a recruiter from Google Creative Lab.

Planting the seed for Vue

At Creative Lab, Evan‘s job involved lots of rapid prototyping with JavaScript. Some of those projects were built with Angular, which offered benefits like data binding and templating. However, he felt the full Angular framework was too heavy-handed for his prototyping needs.

"I figured, what if I could just extract the part that I really liked about Angular and build something really lightweight without all the extra concepts involved? I was also curious as to how the internal implementation worked."

Evan began working on a side project to create a stripped-down version of Angular‘s declarative data binding. He continued tinkering with the idea in his free time, eventually deciding to open source it.

"I enjoyed using it myself. I thought, hey I put so much time into this, maybe I should share it with others so they can benefit from it or find it interesting."

In February 2014, Evan officially released Vue.js. He posted it on Hacker News and to his surprise, it got voted to the front page. In the first week, Vue racked up hundreds of Github stars. He documented the experience and his learnings in a blog post titled "The First Week of Launching an OSS Project."

This initial positive reception gave Evan the motivation to keep working on Vue. But it would still be a while before it became his full-time job.

The rise of Vue

From its humble beginnings, Vue has seen tremendous growth. Let‘s look at some statistics:

  • Vue is now one of the most widely used JavaScript frameworks with over 1.6M weekly npm downloads (source: npm trends)
  • Downloads of Vue have increased 373% in the past 4 years, from 7.6M/month in 2017 to over 36M/month in 2022 (source: npm trends)
  • As of July 2022, Vue surpassed React as the most downloaded frontend framework on npm (source: npm trends)
  • Based on weekly GitHub stars, Vue has surpassed Angular and is catching up to React (source: The State of JavaScript 2021)
  • Over 9000 companies reportedly use Vue in their tech stacks, including e-commerce giants Alibaba and Baidu (source: Stackshare)

What explains Vue‘s explosive growth? Developers praise its simplicity, excellent documentation, and incrementally adoptable architecture.

Vue‘s gentle learning curve makes it popular for those new to frontend frameworks. Its core library focuses on the view layer only, making it easy to pick up.

At the same time, Vue‘s ecosystem provides a full set of tools for building complex applications:

"Vue hits the sweet spot of being accessible to newcomers while still providing the power and flexibility to build complex applications," explains Debbie O‘Brien, Head of Learning at NuxtJS. "Its community is incredibly welcoming and supportive to learners."

Under the hood of Vue 3

In September 2020, Vue hit another milestone with the release of Vue 3, a major new version that introduced significant changes and improvements.

Rewritten with TypeScript, Vue 3‘s source code is now more maintainable and self-documented. For developers, Vue 3 provides better TypeScript support and IDE integrations.

Performance got a major boost in Vue 3 thanks to a new internal architecture and virtual DOM implementation:

  • Update performance improved by ~41%
  • Memory usage reduced by ~54%
  • SSR speed increased by 1.88x
  • Tree shaking support for even smaller bundle sizes

Source: Vue 3 Performance Improvements

Vue 3 also introduced the Composition API, a new way to author Vue components by separating concerns into composition functions. It allows for more flexible code organization and logic reuse compared to the Options API.

"The Composition API offers a clean way to abstract complex logic into reusable functions," says Thorsten Lünborg, Principal Engineer at Shopware and Vue Core Team member. "It empowers developers to build more maintainable and scalable Vue applications."

Maintaining a popular open source project

As Vue gained more users and contributors, Evan had to figure out how to keep the project sustainable. A major inflection point came when Vue started getting adoption within larger organizations who wanted to see it actively maintained for the long haul.

To generate funding, Evan launched a Patreon campaign with tiers for both individual and corporate backers. This allowed anyone from individual developers up to large companies to support Vue‘s ongoing development.

The campaign was a success – in the first month it reached Evan‘s initial target of $4,000 per month, allowing him to work on Vue full-time. Today it generates over $16,000 per month from more than 1,600 supporters.

But financial sustainability was only one piece of the puzzle. As a solo maintainer of a large open source project, Evan faced challenges in managing the demands on his time and mental well-being.

One source of pressure was the constant comparisons and competition with other popular frameworks like React and Angular. As Vue grew in popularity, so did the scrutiny.

"There‘s a lot of pressure in terms of competition," Evan said. "When Vue was still relatively unknown, that pressure isn‘t there because any exposure is good. But as Vue has grown bigger, naturally people started comparing it to Angular or React. That puts a lot of pressure on you and can be stressful having to compete with the big guys, especially now that I‘m doing this full-time."

To help manage the stress, Evan tried to focus on Vue‘s unique strengths and identity rather than getting caught up in feature-by-feature comparisons.

He realized that different frameworks appeal to different audiences and use cases. Rather than trying to be everything to everyone, Vue‘s goal is to serve its core users and do what it does best.

"People would prefer different frameworks for a reason. There is not going to be this one true framework that makes everyone happy," says Evan. "The more important part is to make it better for the people who actually enjoy your framework. Focus on what you believe is the most valuable thing in your framework and make sure you‘re doing a great job."

Vue‘s international community

Another distinguishing aspect of Vue is its popularity in non-English speaking countries. It has particularly flourished in China, where Evan is from.

He attributes Vue‘s success there to a combination of his personal involvement in the Chinese developer community and high quality translations of the documentation and resources.

"The Chinese market is unique. A lot of people knew about Vue because they knew me," said Evan. "We also had really well-written Chinese translations of the docs, so that helped a lot with adoption."

Besides China, Vue also has pockets of popularity in countries like Japan, France, and Brazil. Evan noted that some of the most active contributors to Vue are from Japan and have done a meticulous job translating the documentation.

While having an international audience comes with challenges like managing language barriers and cultural differences, it has also made the Vue community richer and more diverse.

Vue‘s official docs have been translated into over 18 languages by community members. There are thriving Vue meetup groups and conferences around the globe, from Rio de Janeiro to Tokyo.

Continuous learning and evolution

Looking back on Vue‘s development, Evan shared that constant iteration and improvement has been key to its evolution. Since its creation in 2014, Vue has been completely rewritten from the ground up three times.

"I have to completely rethink the problem in a certain way. But I think that‘s just how software development goes – you would never get anything right from the first try."

Evan sees working on Vue as a continuous journey of growth and learning as a software engineer. Building and maintaining Vue has exposed him to the myriad challenges involved in running a large open source project.

With the release of Vue 3 in 2020, Evan and the Vue team have continued to push the framework forward. But with growth also comes the challenge of balancing stability and migration paths.

"We want to keep evolving Vue and adding new capabilities," says Evan. "At the same time, we know a lot of users depend on Vue for production, so we can‘t just make breaking changes left and right. It‘s a balancing act of moving the framework forward while providing stability and incremental migration paths."

The future of Vue

So what‘s next for Vue?

One major goal is to keep expanding Vue‘s capabilities beyond the web. The team is exploring using Vue to build native mobile apps, desktop apps, and even server-side rendered pages.

An experimental project called Vite aims to provide a faster and leaner development experience for modern web apps. Vite leverages native ES modules to serve code directly in the browser during development, resulting in lightning fast startup times.

There are also efforts to improve Vue‘s developer tooling and IDE integrations. The goal is to provide the best possible development experience out of the box.

"Developer experience has always been a big focus for Vue," explains Evan. "We want to make it as easy as possible for developers to be productive with the framework. That means excellent documentation, intuitive APIs, helpful error messages, and integrations with the tools developers are already using."

Other potential areas of improvement include:

  • Better documentation and guidance around testing
  • More examples of real-world, large-scale Vue application architectures
  • Expanded educational resources and learning materials

As an open source project, Vue‘s future will be shaped by its community. Evan encourages developers to get involved, whether it‘s contributing code, documenting use cases, or giving feedback.

"I‘m constantly amazed by the creativity and enthusiasm of the Vue community," says Evan. "From beautiful UI component libraries to powerful testing tools to entire frameworks built on top of Vue, the ecosystem keeps evolving in ways I never imagined. It‘s really exciting to see."

At the end of the day, Evan‘s goal for Vue is to keep enabling developers to build amazing things.

"I care about the approachability part of Vue, which is rooted in the belief that technology should be enabling more people to build things."

With Evan at the helm and a passionate community behind it, Vue‘s future looks bright. While he doesn‘t believe there will ever be one frontend framework to rule them all, Evan hopes Vue will continue to evolve and serve its users well for years to come.

"Like any tool or technology, Vue isn‘t perfect or suitable for every use case. But my hope is that for the people and companies Vue can help, it makes the experience of building web apps a little more enjoyable and productive. Even as the framework keeps evolving, that core mission will always stay the same."

Similar Posts