Vue.js: The Documentary - a documentary film presenting the history of the creation and development of the Vue Framework (35 minutes)
CultRepo, formerly Honeypot, is a fascinating channel that has explored a variety of technology-related topics. In the latest episode, the host shares their journey from attending Parsons for an MFA in Design and Technology to working at Google Creative Lab as one of the new graduates. Their adventure with JavaScript began during their studies, allowing them to create interactive projects that caught the attention of Google recruiters. The episode also discusses the interesting concepts that they worked on with the team, which led them to conclude that creating their own framework was necessary, ultimately resulting in the birth of Vue.js.
Initially, the author had no ambition to create a framework of Vue's caliber. They offered only simple functionality, but it soon became apparent that their project garnered recognition and interest from the community. The value in this process was the desire to build something that would be useful and helpful to others. As the project grew, the author began to realize that their creation was gaining popularity on a wider scale, urging them to contemplate the future of Vue.js.
In the following years, thanks to community support and applications in various projects such as Laravel Spark, Vue gained recognition among developers. This interest surpassed the author's expectations, leading them to invest in their project, which allowed them to work on Vue full-time. When they noticed growing popularity and demand for Vue, it became clear that the project was gaining significance.
The episode also discusses the obstacles and successes that accompanied the development of Vue, as well as the challenges faced by the author concerning the need to deliver good documentation and support for users. An essential aspect of development was processing criticism and the desire to improve quality, contributing to building a strong community around Vue.
At the end of the episode, impressive statistics reveal how far the project has come. As of writing this article, Vue has amassed 1618434 views and 52685 likes, reflecting its significant impact on the developer community. The Vue community, led by Evan Yu, continues to grow, with his endeavor providing not only technological utility but also personal satisfaction from the positive influence it has on others' lives.
Toggle timeline summary
-
Introduction to joining Google after grad school and background in design and technology.
-
Self-taught in JavaScript and developed interactive pieces for portfolio.
-
Built a clone of the Clear app, known for its unique gesture controls.
-
Caught the attention of Google recruiters due to work showcased on Hacker News.
-
Joined Google Creative Lab as part of new graduates, working on innovative projects.
-
Envisioned future interactive technology concepts during time at Google.
-
Frustrated with existing frameworks, leading to the idea of developing a personal framework.
-
Initially developed a simple utility for syncing DOM with JavaScript objects.
-
Named the project 'Vue' after considering its purpose and translating the term.
-
Launched Vue as a personal project while still at Google, gaining initial users.
-
Vue was not intended to be a sustainable project, akin to personal music albums.
-
Taylor Otwell, author of Laravel, endorsed Vue, significantly raising its profile.
-
Vue had a small core team focused on documentation and community engagement after version 1.0.
-
Explored possibilities of making Vue work full-time amid growing popularity.
-
Discussion on the evolution and adoption of Vue in the context of React and Angular.
-
Benefits of working from home and supporting a global community learning Vue.
-
Explained the struggles of Chinese developers with documentation and how Vue aided their learning process.
-
Recognition of Evan as a leading figure in the global developer community.
-
The journey of gaining acceptance for Vue in Chinese tech communities.
-
Vue's popularity, driven by high-quality documentation and community building in China.
-
Vue's grassroots, non-corporate nature leading to its unique appeal in the developer community.
-
Personal fulfillment from developers expressing gratitude for the impact of Vue.
Transcription
♪♪ ♪♪ ♪♪ So I joined Google right out of grad school. I went to Parsons for an MFA Design and Technology program. It's a mix of design and code and new media art. That's also when I properly taught myself JavaScript. So I started playing with JavaScript. I built a lot of these Chrome experiment-style interactive pieces, put them in my portfolio. And also, one of the things I did in grad school was I built a clone of the Clear app. I don't know if you've heard of it, but it's a to-do app with very interesting gesture controls. So I think that was kind of the pioneer of the swipe-to-complete gestures. So I replicated most of its functionality with web technologies. And it kind of blew up on Hacker News and got a bunch of websites just doing a story on it. And that also probably landed me attention from the Google recruiters. At that time, Google had a lot of these Chrome experiments, 3D stuff, 2D physics, and a lot of visualization-related things right in your browser, which is something unheard of back then. It kind of really showed what JavaScript can do. I think I somehow got a call from the recruiter, and she's like, are you interested in joining Creative Lab as part of the five? And I was totally in disbelief, to be honest. I'm like, wow, I didn't even send my resume, and you just called me and asked me if I want to join Google? Hell yeah, why not? I was beyond excited, to be honest. And I was also really happy it's right in New York. I don't have to move. This is where I worked. I actually joined Google Creative Lab as a five, which is a group of new grads they pick each year from fresh out of school, and worked here for a bit, over two years. Worked on a lot of interesting experimental projects. And my old office is, in fact, way up there on the 16th floor. It has some pretty amazing views, which we can't really see right now, but trust me, it's really good. They put us on a lot of really interesting projects, very experimental, out-of-nowhere kind of ideas, like what would search interface be like in 10 years? What if our walls are all interactive screens? What if Google just understands everything you say, which, ironically, today it's almost becoming a reality. And we were coming up with concept videos and prototypes of this kind of interactions back in 2012. For a very long period of time, I worked on those prototypes with just hand-rolled vanilla JavaScript, because a lot of these are not traditional UI. They required a lot of special handling that's not typically seen in the typical app you would see today. And I was trying to use some of these existing frameworks for those purposes, but a lot of times I just find the options weren't really solving my problems. The first framework I ever used was Backbone, but Backbone really was more like an application structure. It doesn't give you any of these view interactivity management and then Angular did provide data binding and keeping your state in sync with your views, but it also was dictating how you would write your code, which didn't really fit well into the kind of projects we were working on, because those projects are just really more focused on the interactivity part rather than being an application. I was starting to think about how can I make my own work more efficient. That's when I started having the idea of maybe I could work on a framework of my own. Originally the goal was really just to provide a super simple focused utility almost, just to sync some DOM with some JavaScript objects. That was the original idea. It was only after the initial project got somewhat popular we started to expand the scope and adding more pieces to the ecosystem, which eventually made it a framework. I started working on the first committed view in maybe June 2013, and it was originally named Seed. I didn't have a better name for it, and actually Seed was taken on NPM. When I was about to publish the package I found, oh, the name is already taken. So I had to come up with a new name, and I thought, okay, this is a view library, but just calling it the English view sounds a bit too literal. So I threw a view into Google Translate and found the French translation of it. It's just three letters, it looked cool, it's not taken on NPM. So I was like, okay, this is it. So that's how I picked the name. I mostly was building it for myself. So my expectation was I want to build a framework that I would personally like. And that's pretty much the whole reason why I started it. I was still at Google Creative Lab, but I just published it as a personal project. There were a few hundred users, I think a few hundred GitHub stars, which lent me a bunch of initial users. No, not at all. When I published it, it wasn't really saying I want to publish it as a somewhat sustainable project. I would say like a music enthusiast just making an album for fun. That kind of feeling. It's not about I want to make money out of this. You publish that piece of music just because you enjoyed making it and you want some other people to hear it. So working on Vue was really kind of like this other outlet for me where I'm building something that people actually use in real world use cases. Compared from the thing I am doing for work, it's like we're just showing it to executives, but God knows when this is going to be a real thing. So that was this urge of like, I want to build something that people actually use. I probably didn't realize it back then, but having a popular open source project actually would help you in terms of looking for a next job. But that's how I joined Meteor. I would say pretty much they were just impressed by my work on Vue.js that they just skipped the whole normal interview process and just directly gave me the offer on the spot. So I would say, yeah, that was one of the real benefits you get by working on some open source projects. When I was working at Meteor, I still continued working on Vue pretty much for the same reason. I felt it's my baby at that point. So if you look at my commit history, you would probably see a really, really green graph on GitHub because I was doing a lot of commits on weekends as well. And working on Vue at that point in time also became a bit more demanding because you started to get more users. It's growing. So there are more issues, more bugs to fix. And that's also the period of time where... I think when Taylor first tweeted about Vue, it was in 2014. Taylor Otwell is the author of Laravel. Laravel is a very popular PHP framework, probably the most popular PHP framework out there right now. I wasn't even that familiar with Laravel before Taylor made that tweet. So one day he tweeted on Twitter saying, current status of learning React. Confused, I think. Overwhelmed or something. I can't remember the exact word he used, but basically he was saying React was hard, and he is learning Vue.js now instead because it looked easy. If anything, this wasn't really like a direct endorsement. He's pretty much just saying, I'm learning Vue. And then a bunch of people started asking him, hey, what do you think of it? Is it any good? Pretty much in all of the responses he was saying, yeah, it's good. So that started to look like an endorsement, and all the Laravel users were like, wow, Taylor is liking it. It must be kind of good, so we should try it out. And so we got a lot of users from the Laravel community. All right, thank you for coming to Laracon US 2019, our seventh and biggest Laracon, really the biggest Laracon ever. So I'm just browsing around the internet looking for JavaScript frameworks to build a product called Laravel Spark, which is a bootstrapping scaffolding tool for building your own software-as-a-service application to basically help people start their own business like I did. And I was just overwhelmed. I looked at other frameworks, and they had complicated compilation steps, a lot of tooling needed to get started. And I looked at Vue, and I could actually just... You could build a simple Vue application in Microsoft Notepad. Basically, you didn't need any other compilation tools. I could just pull it in from a CDN, write a few lines of JavaScript, and I'm up and running. So to me, as being not very trained in JavaScript, to say the least, back then, that was actually very refreshing to be able to get a lot of power really quickly without learning a lot of other tooling. I think I put out a tweet, I discovered this cool new tool called Vue, and it's actually even someone like me can start writing JavaScript applications. And I was just blown away. And so we adopted Vue for Laravel Spark, which ended up generating over a million dollars in revenue for Laravel, tens of thousands of users launching their own businesses. So it was just a really great thing all around, both for Laravel and Vue, and really helped bootstrap, you know, who knows how many businesses are built on Spark now that leverage Laravel and Vue together. Please welcome Evan Yu. That was before I decided to work on Vue full-time. And before that, Vue was pretty much still in the status of, it's relatively well-known inside front-end communities, but I haven't even started thinking about working on a full-time or even making money from it. It was when I looked up what Taylor was doing, and I learned how big Laravel was, that I realized, oh, maybe I'm onto something. But there are starting to pop out threads and discussions of people saying, which should I pick? Should I use Vue.js? And a lot of the answers you would see will be along the lines of, no, because it's still 0.something, it's unstable, it's maintained by only one person, God knows when it's going to disappear. I want to prove these guys wrong. I just want to make Vue this 1.0 production-ready library. So I actually used all my vacations of 2015, and then I spent three weeks getting everything properly implemented, updated the documentation, and then we published 1.0 in October 2015. Vue.js At the time, Vue.js had just released 1.0, I think, and the core team wasn't really existent like the way it was today. It was just Evan and, I think, Chris Fritz and one other person, I think, I can't really remember. And they were just all busy getting up to speed with documentation and fixing bugs after 1.0 release, and the forum was just really a little bit of a wasteland. And I just came in and was just answering questions a lot because I was just very active on the forums, and I was just knowing a lot of the problems and issues that people were having in their projects. And Evan picked up on this, and after three or four months of me just doing this on my own free time, he just sent me a Slack invite. We haven't talked about anything. I hadn't opened any issues. I hadn't sent any pull requests. I made no contribution in forms of code to the project whatsoever. But the focus in Vue.js from the get-go was always that the framework is more than just the code, right? It's not like this is the library, this is the documentation of how it works, and now you solve the rest. It's always been like we need the best documentation we can come up with. We have to engage with the community. We have to provide additional tooling and support. And so this was the reason that I was invited because I was growing into some kind of community leader in a way. And so I actually joined the core team without being a contributor in the sense of code or actual content, and it only happened afterwards that I found the self-esteem, so to speak, to get into the source, look into some repositories, look at some issues, and start contributing here and there. I think after 1.0, I was starting to explore the possibilities of working on it full-time. Maybe this thing could actually generate some income so that I can work on it full-time. That was really also the moment when I started to feel like a sort of a split between my work at Meteor versus my work on Vue. At Meteor, I was really just a developer. I didn't have this kind of high-level decision-making power. I could make suggestions, but really I was nowhere near the place to say this is how we should do it. It kind of made me a bit pessimistic about where Meteor would end up being, where in comparison, the growth of Vue was growing. So I was just noticing fewer people were actually using Meteor and more people were using Vue somehow. So I guess that's the moment when I thought it might be worth it to just start working on Vue full-time. My name is Scott Tulinski. I'm a full-stack developer from Denver, Colorado, and my name, as always, is Wes Boss. How are you doing, Wes? Hey, good. I was going to do a hilarious intro like, do a Rogo podcast by night, all day. Let's go. I stole your joke. It was written in the show notes, so I decided to just yank it. In this episode, we're going to be talking about publishing a React library. People have been asking for Vue.js tutorials from me for a long time, ever since it started to get popular. Hey, what's up? This is Scott with Level Up Tutorials, and in this series, we're going to be talking all about Vue.js. Vue came along at the right time, specifically because a lot of folks had started with Angular back in the version 1 or even before then, and there was a sense that it was very simple. And once Angular sort of graduated to a version 2, the version 2 was almost shockingly different. Around that time, React was also coming out. So React took the place of a lot of those developers, where they came in and they saw React as this new thing that was picking up the crown. But a lot of developers were missing the simplicity and some of the ease of use that Angular version 1 had, and really felt like there was this gap, this hole, that Angular 1 had sort of left wide open. So Vue really came around at the right time because it really filled this void of people who wanted a lower barrier to entry, but they also wanted the strength and the flexibility that you had with something like React. And that's really one of Vue's strong suits in that regard, is it taking the best from so many different frameworks and different platforms. Since I started having the idea of working on Vue full-time, I was exploring what I could do to financially sustain myself. The first thing that came to mind was to set up a Patreon account. And it turns out it actually worked decently well. I think there was close to $2,000 a month very soon after I set it up. And then there was a friend of mine, Dafong, he was the CTO of Strikingly, a YC company. His company actually had this little fund that they would use to support open-source projects, just because it's a good thing to do. If I have that, I can just really quit and start working on Vue full-time. So that seemed enough for me to just take the leap and at least try it out. I work for CSS Tricks as a staff writer, and I asked Chris Coyier, like, OK, I think I'm going to write an article on Vue. And he's like, oh, great, OK, sounds good. So I write an article on Vue, and it's getting a little bit long, and I come to him and I'm like, so at what point does an article become a series? And he's like, I think when you need a table of contents, that's when we should probably start to break it up. At this point, the Google Doc is like 25 pages long or something crazy. So then I write the final animation article of that series, and we come out with a five-article series on it, and I just kept writing about Vue. The next month I wrote a few more articles, and then I did a couple more demos and did some open-source projects. I think at that point I was pretty much just really excited about that framework, and I really wanted to invest more. So Evan and Chris Fritz invited me to start working with the docs and also working on a project called The Cookbook. So I became the lead for The Cookbook and joined the Vue core team, and now I help run the Vue docs meetings and help run the Vue core team meetings, and I love working with this team. Working from home is definitely very liberating. You can set your own schedule. That's probably the second biggest benefit other than not having to commute. You don't have to dress like Tom Dale. Imagine someone from China is trying to learn a new framework, and they go to the site and they notice there's only English documentation, and it's worse if the framework itself is kind of hard to understand in the first place. They would have a really hard time trying to pick it up, and then they go to the Vue website, and then, oh, there's a Chinese version of the documentation, and they read it, and they find it's written by a native speaker. Technical content when expressed with Chinese can read a bit weird because you have to come up with translations of some technical terms like bindings or references or Vue model. Some of the things you can't even translate. Because I'm a native speaker, the translation, and I wrote the English version, so I had more liberty in rephrasing some of the things to make it just more natural in the translated version. This kind of familiarity helps them to get your framework, to click much faster than if they have to go through a language, a second language that they are not that familiar with. In doing that, I think it definitely, definitely helped with adoption in China. Thank you. Thank you. In China, there is very few people well-known in the technical community. So even in China, people see it just like a hero. You know, oh, it's a Chinese developer, right? Build a framework that everybody loves. It's not very common in China, actually, because we didn't see many people make a huge impact on the open source projects around the world, not just inside China. And Evan, like, he's one of the best ones in the world, and he's Chinese. So I think that's why he has so many Chinese friends. He's Chinese, and I think when Chinese people see that, they think, I'm a part of this. Like, I'm a part, a real part, of the Vue community in a very real sense, because they're personally connected with the creator of this product. And I think that's a really powerful phenomenon when he taps into that, because it creates this bond between those developers, like, on this personal level, where everybody wants to be a part of it, where everyone loves to be a part of a group like that. Like, it just makes you feel good if you're part of the in-group. And so when he can tap into that, I mean, people love that. That's really powerful. People love it. That's a huge factor in his success in China. Amazing how he can tap into that, really. At that time, the mobile network is very complicated and unstable, especially here in China. You know, even a lot of people are using a GPOS-connected network. So we are trying to build some new framework that has small size but high performance to help our product to build thousands of web pages for, I guess, billions of pageview traffic. So it's a huge, huge amount. I found Vue.js on GitHub, and the story began. He invited me to visit Alibaba's campus and just do a small-scale sort of tech talk, sort of, just to introduce some of the ideas behind Vue, how I started working on it, and what is the advantage of using it compared to some of the, say, manually written jQuery. And it takes a long time, maybe one year or one and a half year. And finally, some developers accept Vue.js and use it. And today, more and more developers know Vue.js and are using Vue.js as well. After that, I guess Ali started using it a bit more. People also kind of started to know more about Vue because of my presence on Zhuhu, and also because Vue has started to gain more attraction outside of China. And then some of that information kind of flows back into China where people discover, hey, there is this new framework called Vue. And in fact, a lot of people first learned about Vue as just this open-source project. Then they realize, oh, it's actually written by a Chinese person. We use Vue.js mainly in our enterprise management apps, like something similar to Google's AdWords. I was like, what about just being part of this stuff? It's going, it's trending. They do not just regard him like an open-source programmer, but just some kind of open-source leader. I was very familiar with AngularJS, and Vue.js looks like it very much. So I started to write something, and it's working. I feel like it's something you have already learned. Vue.js has very, very high quality in Chinese document. And that helps low-level developers to start their ways. We can build the ecosystem here, community here. That's why it's popular here, I think. In China, we have many software developers, but we don't have a rock star like that. So in software engineering, and not just in Vue, but in all of software engineering, we have a concept called Benevolent Dictator for Life. This concept that someone owns the project and is the key brains of the operation to push things through. And it does not mean, sometimes people confuse this and think that it means that no one else works on the project. That's far from true, and you see that in Vue. There's tons of people who work on Vue and in Vue.core, and we all work together collaboratively. But it does mean that it has a kind of driving force behind it. I think when you have a project like Vue that's not a giant company's project, it's helpful because it's a source of truth. What we do get is that we're not pushed forward by any one company. That means that the company is not making the rules. People are. So how long has everyone been working with Vue? Evan has this cohesive vision for the whole picture, where something like Angular or React that are built by a large company with many people involved from the beginning, it's sort of designed by committee, you might say. Whereas with something like Vue, with Evan, he has this one singular picture in mind for where he wants to take the whole framework. I think that's really important for creating a really good software product and why Vue has been so successful. The market was dominated by React, which is done by Facebook, and Angular, which was done by Google, and then there was us, like the nerdy guys that did their own framework just because they wanted to. It just feels less corporate in a way that's maybe more exciting, more grassroots, and just to have that aspect of it alone is enough to make something a little bit more exciting and enticing to the people who use it. Vue will still be growing, but it's not like taking over the world or taking over world dominance or something, and it's not our goal either. It's just we're happy to work on this project and we're happy to see it grow, and I'm excited to see where it's going. I'm not too sure. I'm really proud of myself taking the leap to leave a 9 to 5 job and just work on something I'm genuinely passionate about. Sometimes I would look at the stats, like how many users we have, how many downloads we have, but what kind of gives me the most sense of fulfillment or satisfaction in terms of the work I do is every time I see these people, especially at conference after parties, people would come up to me, and they would generally shake my hand and say, Thank you, Evan, for making this thing that just made my life so much easier. So these are the exact moments where I feel like, okay, this is what I made Vue for. I created this thing, I shared it with people, hoping that it could make people's lives easier, and people coming up to me personally saying thank you for achieving that. That kind of completes the loop. Honeypot Thousands of developers find jobs across Europe using Honeypot. If you're up for a new challenge in one of these European cities, sign up at honeypot.io. If you want to see more tech documentaries, then subscribe so you don't miss the next one. Honeypot