The ReadME Project amplifies the voices of the open source community: the maintainers, developers, and teams whose contributions move the world forward every day.
Evan You // @yyx990803
Evan You came to the U.S. from China when he was 18, and ended up at Parsons for a Master’s of Fine Arts in design and coding. He landed his dream job at Google Creative Lab, where he would become drawn to his side project, which would become what we now know as Vue. The core library has since evolved into an entire ecosystem and progressive framework that anyone can incrementally adopt. It’s seen organic and exponential growth, and in 2020, its users doubled. Hear from Evan what sparked the idea for Vue, how he turned his passion into the Vue ecosystem, and what advice he has for maintainers, now on The ReadME Podcast.
Also in Developer Stories
Starting with an idea and building a community
Evan: Interestingly, that’s when I first realized what kind of burden you’re taking on with real users as a maintainer, but in the early days you don’t really feel that much, because I didn’t have kids. I was just super passionate about it, and every issue coming in, I was just like, “Yeah. Let’s figure this out. Let’s fix this bug. I’m going to answer all your questions, fix all your bugs, do as much as I can.”
Brian: That’s Evan You, maintainer of Vue and this is The ReadME Podcast, a podcast that takes a peek behind the curtain at some of the most impactful open source projects and the developers who make them happen. I am bdougie aka Brian Douglas.
Kathy: And I am Kathy Korevek.
Brian: Every episode, Kathy and I invite a maintainer or open source developer into our studio to explore their work, their story, and where the two meet.
Kathy: In this episode, we speak with Evan who initially had thoughts of working in the creative field but took a course in art school that would change his trajectory and lead him into his love for programming and building things that go out into the world. He tasted fame early on when something he created got on the front page of Hacker News and over the years, his career took off. Originally from China, Evan is now based on the East Coast, a father of two and maintainer of an ever growing framework. In this conversation, Evan shares his first impressions upon arriving in the US, how he came to open source and the way he turned his passion into his business.
Evan: I came here for college. When I was graduating from high school, it was still kind of a bit unconventional for someone from China to come to the States for undergrad. I mean, I know quite a few fellow friends that did the same, but overall compared to the amount of people in China, it’s kind of a rare thing to do. I actually applied without an SAT score, just hoped for the best, and somehow got an offer from Colgate. That’s where I went.
Brian: You talked about your first impressions in coming to the US at 18 and your expectations of Colgate being close to New York, and you found out that it wasn’t. Could you share a little bit more about your sort of interactions, I guess, quote-unquote, “Coming to America?”
Evan: Sure. So to me it was a little bit of a different kind of culture shock. I was expecting something like New York City, like the things we saw on TV in China about America, but really nobody showed us what a rural liberal arts college was like. So when I got there, I also realized Colgate had very few Chinese students back then. Now I think they have more, but when I was there for one or two years of my time at Colgate, I was one of the two Chinese students from mainland China at that time. So that was actually pretty tough, because you have very few people that share this same cultural background with you. But I still remember, we would try to get on the bus and get into New York City to just get this different side of America. So every time there was spring break, we were just like “Yeah, let’s go to New York!”
Brian: Evan was interested in the arts and seriously considered pursuing it. But his family had different aspirations for him and while at the time, that might have felt stifling, it’s those aspirations that ultimately led him to open source.
Evan: My dad really didn’t like it. We had some pretty intense arguments around this. His main argument was “You’re not going to be able to get a job with an art history degree as a foreigner, because you will need an H1B Visa,” and all that stuff, and turns out he was right. It was really hard to find a job in the arts segment that offers work visas, which is why I actually had to kind of go another route. So after I graduated from Colgate, I went to Parsons for a Masters of Fine Arts program, Master of Fine Arts in Design and Technology. So that’s a program that’s hybrid between design and coding, creative coding. That’s actually when I actually started to learn how to properly program, use JavaScript, and build stuff on the web.
Kathy: Do you have anything from Parsons that you’re particularly proud of, like some creative coding project you worked on?
Evan: Yeah. I think most of the classes we were taught at Parsons, they were using Processing, openFrameworks. Very few classes actually focused on stuff on the web like JavaScript, but I was super drawn to the creative coding in the browser environment stuff. So Google came out with a lot of Chrome experiments. That’s when the early days where people started to realize you can actually build pretty cool stuff in the browser with JavaScript.
To me, it was more attractive mostly because after you build something, you can just share it with anyone with a URL. Anyone with a browser can open it, and some of the stuff we were building at Parsons, like a Processing sketch. For a non-technical person, they don’t even know how to open it. So you can’t really just send it over to them and say “Hey. Look at this!” So I started just to teach myself JavaScript, and then I built this thing. I don’t know if you remember. There was an app called Clear. It’s this very colorful to-do app where… I think it was the thing that first invented this swipe-to-clear gesture on mobile.
Kathy: Yeah. I totally remember this, and it was revolutionary, and then everybody started copying what they were doing. I remember using it and thinking “I’m going to get so much done.”
Evan: I saw it. I was like “Wow. Can we build this in the browser with web technologies?” and so I just spent a few days digging into it and tried to replicate this using touch gestures and CSS transforms and all that, and it worked, kind of worked. Looking back, the code was terrible, but it worked.
So I made a video and posted it online, and people kind of went crazy. Actually, it got on to the front page of Hacker News. That was the first time I got something onto the front page of Hacker News, and I think it kind of shocked people that the mobile browser is actually capable of replicating something like this, because before that, everyone was like “Wow. Web technology stinks. You can’t really build anything with it.” So that was one thing I was pretty proud of when I was still at Parsons.
Brian: This moment really launched Evan’s career and grabbed the attention of tech companies far and wide. Facebook was interested and for Evan, still a young programmer, just at the tip of this new venture, that was enticing and exciting.
Evan: They actually flew me out to California. Yeah, and I failed that interview because my JavaScript really wasn’t that good back then. Yeah. It wasn’t really a full app. It was more like a prototype, just like a demo, but at least that opened up a few of these opportunities for me, and that kind of also gave me the confidence that you can build cool stuff with JavaScript. So I spent more time learning JavaScript and then got some more cool stuff in my portfolio, which eventually I think that led to the recruiter at Google noticing the stuff that I built.
So I got an email or a call from the recruiter at Google Creative Lab, which was essentially the team behind all those cool Chrome experiments. So I was super, super excited to get noticed by them, because work by Google Creative Lab was pretty much what got me into creative programming and JavaScript in the first place. So that was kind of probably one of the most, I don’t know, unexpected and kind of dreamy moments of my life. I just got this call, like “Do you want to work at Google Creative Lab?” and this is like the exact place… Back then, I couldn’t even imagine a better place to work at, for me.
Brian: With an art history degree.
Evan: Yeah.
Brian: I can feel how thick the serendipity is of being able to say… Did you go back to your dad and say “Hey. This degree got me somewhere?”
Evan: It’s funny because we never really talked about that afterwards, but my dad, now he’s like “Okay. You’re good.” Yeah.
Kathy: That’s funny. So now at this point you’re at Google working at Creative Lab. When did you start thinking about Vue and thinking about creating it? What’s the delta we’re working with here?
Evan: Let me trace it back. I joined Google around 2012, I think. Vue was… the first commit was in mid 2013. So the work I did at Creative Lab was a lot of this rapid prototyping. So Creative Lab don’t really build hardcore engineering products. Most of the time, we are so-called creative technologists that work with creative directors, writers. The whole theme is creative. Creative agencies like to run fast. It’s always like, you get a brief then people sit down and come up with a bunch of crazy ideas then just run wild. And the focus was to get something tangible, you know, get something presented as fast as possible. My job was to build these crazy ideas out as fast as possible.
Angular 1.0 was already out back then, but it’s just really heavy and wasn’t really suitable for this kind of rapid prototyping that we were doing, and for me, coming from a non-computer science or engineering background, Angular was too heavy-handed because of all the concepts, designs patents that’s kind of ingrained into it. People coming from C# or Java would probably be more comfortable, but for me it was just like a lot of extra stuff that I either didn’t need or didn’t understand.
So I was like “How can I just take the bits that I feel that’s actually useful and then maybe write a lighter weight library for myself?” That’s essentially how the idea about Vue came around. When I started, I didn’t even have the hope that I would even be able to use it in my work at Google, because I know how hard it is to get something from just an idea to something that’s production ready. It was also kind of a cool pastime because I didn’t have kids back then. So I had a lot of free time. The main focus was really just to expose something that gets to the point as fast as possible. So Vue came out of this need of rapid prototyping, but I’ve always had an itch to build something that’s more robust and engineering oriented. So the job at Creative Lab was a really, really good one. I really enjoyed it, but the only thing that I wished I could do more at that job was to build something that’s actually production ready, you can ship to people, that people actually use, because all of the stuff we built were just prototypes after prototypes and used internal presentations shown to these high-level executives, and they’ll be like “Oh, we like this. Let’s hand it over to the engineering team so they can build the real thing.”
So for me, it was like “I don’t want to just keep building the not-real thing. I want to build the real thing myself,” which is why I kind of spent more time trying to think about how I can evolve Vue into something that is capable of handling the real thing.
Kathy: While the creative Lab at Google was a dream come true, a convergence of all that Evan was interested in, it couldn’t fulfill his every wish. He wanted to make things that went out into the world, that were used and interacted with, that could potentially change the quality of people’s lives and that’s how Vue was really able to grow. But it didn’t happen right away.
Evan: It took quite a long time, to be honest. The first commit was in mid 2013, but I didn’t really release it until February 2014. It was kind of on and off, just really a personal project, and I didn’t tell anyone. It was just like this thing that I work on in my spare time, and I eventually put it out there in February 2014, and that’s when it got onto Hacker News again, and then people were like “Wow. This is cool, a breath of fresh air,” and I was… “Wow. Okay. Cool. Let’s spend some more time on this.”
But interestingly, that’s when I first realized what kind of burden you’re taking on with real users as a maintainer, but in the early days you don’t really feel that much, because I didn’t have kids. I was just super passionate about it, and every issue coming in, I was just like “Yeah. Let’s figure this out. Let’s fix this bug. I’m going to answer all your questions, fix all your bugs, do as much as I can.”
Kathy: You’re like the dream maintainer.
Evan: Yeah. I think every open source developer kind of… you go through that initial stage because you’re just so excited about getting your stuff out of the door. You want to just make sure everything is perfect. So it was, there was a period of time, you know? You just spend all your time on it, pretty much.
Kathy: So I’m going to ask you a really, really hard question. What is Vue?
Evan: So it has evolved over time. When it first came out, I would say Vue was a library. It was just a view layer library. It’s just something that connects your data to some rendered HTML. But today Vue is more like a whole ecosystem, and specifically to what I work on nowadays, it’s more like I would probably categorize it as a framework. So Vue today now does fall into a framework, but we call it the progressive framework because Vue started as just a core library. Then we added more things, layered more things on top of it to eventually become a framework, and we paid special attention to design it in a way that you can still use it just the way that Vue was offered from day one, which is you can just pull it from a CDN link and then have some inline JavaScript, and you can get something interactive in your HTML page.
If you want a proper framework, we have a CLI that scaffolds all the latest and fanciest bells setup with single-file components. We are adding more advanced… So Vue 3.0 adds a lot of pretty advanced compiler, ahead-of-time static analysis, just to compile your stuff into more efficient code. So it kind of evolved a lot over the time. So today I would say Vue is just a framework that you can incrementally adopt. You can choose how much you want to use out of the framework.
Kathy: The commitment to doing open source full time is a big one, and it can feel risky, especially when you have a secure job. I was trying to wrap my head around Evan’s timeline to working full time on Vue.
Evan: So before I went full time on Vue and between I left Google, I actually worked for a startup remotely. So when I was at Google, there was this company called Meteor. Meteor is also an open source JavaScript framework. Back then Meteor was kind of this like huge thing. I felt like “Wow. This looks like some cool thing to try,” because as I mentioned, I was getting a little bit frustrated at the type of work I was doing at Creative Lab, and Meteor just kind of checked all the boxes, like open source, JavaScript, Silicon Valley, startup. I was like “Maybe it’s time to leave the big company and try a startup.” I was young. I was like “I don’t want to just stay at a big company forever,” and I figured I would have to try a startup for once in my life.
So they flew me out to San Francisco. Interestingly, they invited me over just to give a tech talk on Vue. So I prepared this talk. I still remember I was still fixing bugs the day before the talk, because I was preparing the talk… I was like “Wait. This part doesn’t really look right,” and then I found this kind of design flaw in the implementation, and I was just spending the whole night fixing that bug before the talk, and then I gave the talk, and they were like “Okay. The talk is really cool. We want to give you an offer. Do you want to work for us?”
I didn’t expect it. I figured it might have to do something with it. They may ask me to stay for an interview, but I didn’t expect them to just give me the offer on the spot, and so I thought about it. I was like “Cool. I also get to work remote.” I was already living in New Jersey back then. So I was like “Wow. If I work remote, I don’t have to commute two hours every day? That’s kind of cool,” and so I took the offer and started working for Meteor remotely. I think I worked for Meteor a bit over a year as well.
Brian: It seemed like Meteor was ideal. However, Evan was hoping he could incorporate Vue into his work with them but that wasn’t the case. While Meteor was doing great work, it ultimately didn’t align with Evan’s aspirations.
The thing is they didn’t really want me to sort of take Vue into Meteor and then like sort of work the two systems together. They just wanted me to work on Meteor. Meteor was kind of… I was conflicted because I still wanted to work on Vue. I still worked on Vue in my spare time, but the company just didn’t really want to consider it as a potential view layer for Meteor, because Meteor is a full-stack framework. They had their own system called Blaze, which funny enough, their internal reactivity system is very similar to Vue.
I think that it was around that time Vue was discovered by Taylor Otwell. Taylor is the author of Laravel, and he made this Tweet saying “Hey. I tried to learn React, but it just felt kind of complicated, and I tried Vue, and I can understand it. This is cool,” and so he made that Tweet and it kind of brought attention to all these Laravel developers and, in general, PHP developers who were… In general, they were not super into this kind of like fancy front-end stuff. So all they want is just something they can easily and quickly understand and then add interactivity to a primarily server-rendered application, and Vue fit that case really well.
So that was kind of the moment when I realized “Okay…” I actually didn’t know about Laravel until then. So I checked out Laravel. I was like “Wow. This framework is like huge, like so many users. If all of them use Vue, then Vue could be huge too.” So that was kind of the moment I started to realize “Oh, maybe I’m on to something.” If such a huge community of people would adopt Vue, and Taylor seemed to be I don’t know if was already working full time on Laravel back then, but if someone else can do open source full time, maybe I can too. So that was the moment I started thinking about the idea like “How can I just make this my full-time job? What if this can actually be sustainable?”
Brian: Evan was right. Vue had the potential to be huge and it is. Taylor Otwell, creator of Laravel, promoted Vue, helping it develop and demonstrating that the ecosystem of open source works. Vue’s growth has been exponential and that growth continues. Just last year, its users doubled. And Evan says the growth has been organic and really down to the community that supports it. Vue’s story is that of the underdog, imminently successful without any corporate backing. And while corporate backing can be a huge financial relief, not having it can be an asset.
Evan: I was actually just discussing this with Jordan Walke the other day, who is the inventor of Creative React. So I was thinking React’s growth path was mostly… It came out of a big company. It was kind of met with ridicule in the beginning, but then it formed this really, really strong and sort of enthusiastic early adopters group who kind of evangelized React, how awesome it is, and then all these companies around Facebook sort of started adopting it, all these Silicon Valley startups. Pretty much they’re just all React, and all these ex-Facebookers who started companies… They’re probably going to use React too.
So it kind of radiates, and it just trickles down from these big companies, Silicon Valley startups, this network. They all just use React, whereas Vue goes from a completely different demographic where small companies, small- to medium-size companies, independent developers, people who are not primarily front-end developers, back-end developers who just want to get some front-end job done. There are actually a huge long-term market of these developers looking for something, they’re not looking for something that’s super 10X enterprise ready or super, super bleeding edge advanced. They are just looking for something that is easy to learn, easy to get into, get the job done.
Kathy: Something that works. Yeah, and fast.
Evan: I think, at least I believe that’s how Vue got its initial adoption.
Kathy: An important issue for open source maintainers is how to make an income. Evan was the first developer I ever came across that leveraged Patreon to get funded for an open source project. What was the inspiration?
Evan: When I was considering all these possible ways to work on open source full time, right, I looked into it, and the common answer is you either build a product, you charge for money for that product, or you offer like consulting like related to your thing, but to me, I felt like consulting is just trading my time for money. Then how would I end up getting time to actually work on the thing itself? Because what I want to do is just actually work on the thing itself.
So I want somewhat passive income that is not tied to sort of this always trying to deliver something so that you can get more money coming in. I want to kind of decouple the income stream from incentives that would distract me away from actually improving Vue itself, and I felt like Patreon looks like a pretty easy way to… At least it handles all the payment and sort of customer management stuff, which is why I decided to try it, and in the early stages I also got some help from a friend’s company. Shout out to Strikingly. They were a YC backed company, One of their funders is my friend, and they have this little open source fund where they essentially sponsor some open source creators with this money for a few months, and they kind of rotate between different projects, and my friend was like “Hey. If you want to actually do this, we can give you $2,000 a month for a few months just to kickstart this,” and I was like “Oh, wow. Cool. Okay. Thank you very much.”
So this combined with the initial Patreon, I think, in a couple months I got to around $4,000 a month combined, and I’m not entirely clear about the timeline, but I think, by the time I decided to actually just go full time, I was probably making around $3,000 to $4,000 purely from Vue-related Patreon and open source donations. So obviously not as much as what I’d get from Google or a Silicon Valley startup, but I was like “Things will improve later. I have some savings, worst-case scenario if this doesn’t work out in a year or two, I’ll just go back to a big company.” I mean, because at that time I’m pretty confident. With a project of this sort of caliber, I’m pretty sure I can leverage that to get back into big companies whenever I want. So that was also one of the reasons I was like “Why not just give it a try?” I was hoping some company would be willing to hire me to work on Vue back then, but now I’m like “I will never go back to a salary job.”
Kathy: Now you’re set. Ok, so it sounds like, from my perspective, a lot of things have fallen into place for you. So you’ve got Colgate, Parsons, Google. You have Patreon and a lot of people really interested in Vue, this thing you built, and there’s probably a lot more that I’m missing, but I’m curious. Why do you think that is? Was it luck, confidence, hard work, instinct? Was it all of that combined?
Evan: Yeah. Honestly, it’s hard. I think it’s probably a combination of everything, a little bit from everything. There’s definitely luck involved. I think the timing is important. Vue came out at a time where there wasn’t this single super, super dominant or… I always say like today, if you think about starting a new framework, it’s really hard to get attention, because all these early frameworks like React or Vue have strong ecosystems. You have all these sort of resources that’s in place that’s really hard to replicate as a new contender, but back then when I was just a random young person who’s building a new JavaScript framework… Tell that idea to someone today, and they’ll laugh at you, like “I want to build a new JavaScript framework to compete with React,” but back then it was actually something that’s possible.
So I would definitely say it’s a little bit of everything, so persistence, come up with the right idea at the right time, and also I guess I would say I don’t know if I kind of happened to make the right decisions or just I’m super lucky. Honestly, it’s hard to say, but a lot of the times I just trust my intuition, and it kind of worked out.
Brian: What’s next for Vue?
Evan: Vue 3.0 came out last year, and we actually don’t really consider it done, because we are still working on this 2.0 to 3.0 migration, sort of, a better way for people to migrate from Vue 2.0 to Vue 3.0, but for the past month I’ve actually been mostly focusing on this new build tool called Vite, which I think will serve as this new foundation for Vue tooling. I believe this thing is going to be pretty important in terms of improving the development experience for Vue developers and maybe other frameworks, because it’s actually framework agnostic. So Vite is not the only thing that’s exploring this. There are also projects like Snowpack, WMR. Obviously, shout out to esbuild, which Vite leverages, and there’s SWC, which is a compiler written in Rust. So I’m seeing we are essentially having a renaissance, a new kind of wave of these tooling that’s focused on just exploring. We’ve kind of come to take slow JavaScript tooling as a given. It is time for us to kind of reconsider, like “Can we actually make it fast again?” and I think, yes, we can.
Kathy: Last question for you, what advice do you have for people who are getting started with either a project like Vue or with open source?
Evan: I think the most important thing is to just be honest with yourself what you want to get out of the project. I mean, it’s totally fine if you’re building this project just to make a name for yourself or you’re just scratching your own technical itch. There are a lot of valid reasons to just create an open source project and put it out there, but what I want to have people avoid is unknowingly slip into this burnout cycle where you are now suddenly pouring all your time into maintaining a project but you don’t know what you’re getting out of it.
I think, a lot of times maybe you can realize you’re just putting something out there for free for people to use. It’s not necessarily your responsibility to handle every incoming request. You need to sometimes set a boundary or just tell yourself “Am I putting this out there to make sure I fix every single bug?” Or I’m just like “This is what I want to put out there. Just use it. If it doesn’t work, just use something else.”
As a maintainer you kind of want to have this clear idea of where my boundary for this open source project is, and once you set that boundary, just be honest with yourself, and you’ll have a much easier time making decisions. I think, a lot of times we just get tricked into doing things we don’t want to do because of this guilt, but if you recognize that and you kind of be honest with it, you’ll have a much easier time just saying no to things.
Kathy: Cool. I think that’s good life advice. I definitely need to say no to things more often. Well, Evan, it has been a pleasure. Thank you so much for talking with us today.
Brian: Yes. Thanks. Very insightful.
Evan: Thank you. It was really nice talking to you.
Brian: That was an exciting conversation with Evan and so good to have him on the ReadMe Podcast. To learn more about Evan and Vue, you can visit vuejs.org.
I am Brian Douglas, and I am a developer advocate here at GitHub.
Kathy: And I am Kathy Korevek, I work in product. The ReadME Podcast is a GitHub podcast that dives into the challenges our guests faced and how they overcame those hurdles. In sharing these stories, we hope to provide a spotlight on what you don’t always see in the lines of code, and what it took to build the technology that inspires us all.
Brian: It’s been really great spending time with you. The ReadME Podcast is part of The ReadME Project at GitHub, a space that amplifies the voices of the developer community: The maintainers, leaders, and teams whose contributions move the world forward every day. Visit GitHub.com/readme to learn more.
Our theme music has been produced on GitHub by Dan Gorelick with Tidal Cycles. Additional music from Rhae Royal and Blue Dot Sessions.
The ReadME Podcast is produced by Sound Made Public for GitHub.
Please subscribe, share, and follow GitHub on Twitter for updates on this podcast and all-things GitHub. Thanks for listening!