Indie Hackers - #078 – 单枪匹马的开源创始人 Evan You 如何挑战谷歌和 Facebook(Vue.js 篇) 封面

#078 – 单枪匹马的开源创始人 Evan You 如何挑战谷歌和 Facebook(Vue.js 篇)

#078 – Taking on Google and Facebook as a Solo Open-Source Founder with Evan You of Vue.js

本集简介

当尤雨溪(@youyuxi)决定创建自己的前端JavaScript框架时,市场上已有来自Facebook和谷歌的超级热门竞争对手。尽管如此,尤雨溪仍坚持前行,打造了一款符合自己品味的产品,结果发现数百万人与他志趣相投。了解尤雨溪如何将其开源项目Vue.js发展为全球最受欢迎的框架之一,并通过Patreon实现年收入超过20万美元的成长历程。文字稿、演讲者信息及更多内容:https://www.indiehackers.com/podcast/078-evan-yue-of-vue

双语字幕

仅展示文本字幕,不包含中文音频;想边听边看,请使用 Bayt 播客 App。

Speaker 0

大家好,我是来自ndhackers.com的Cortland,您正在收听ndhackers播客。在这个节目中,我会与盈利互联网企业的创始人对话,试图了解他们的处境感受。他们是如何走到今天的?他们在公司和生活中是如何做决策的?

What's up, everyone? This is Cortland from ndhackers.com, and you're listening to the ndhackers podcast. On this show, I talk to the founders of profitable Internet businesses, and I try to get a sense of what it's like to be in their shoes. How do they get to where they are today? How do they make decisions at their companies and in their personal lives?

Speaker 0

究竟是什么让他们的业务运转良好?一如既往,我们的目标是让其他人能从他们的经验中学习,进而建立自己盈利的互联网业务。今天,我很荣幸能与Evan Yu对话。Evan是一个名为Vue.js(有时简称Vue)的JavaScript框架的创造者。

And what exactly makes their businesses tick? And the goal here, as always, so that the rest of us can learn from their examples and go on to build our own profitable Internet businesses. Today, I'm lucky to be talking to Evan Yu. Evan is a creator of a JavaScript framework called Vue. Js or sometimes just Vue.

Speaker 0

Vue被全球数十万程序员用来构建他们的应用和网站,甚至被Netflix和Facebook等公司使用。所以它非常受欢迎且具有影响力。我个人最喜欢的一点是,它基本上是一个人——Evan Yu——的心血结晶。Evan,欢迎你,感谢参加播客。

Vue is used by hundreds of thousands of programmers all over the world to help them build their apps and websites, and it's even in use of companies like Netflix and Facebook. Facebook. So it's tremendously popular and influential. And I think my favorite thing about it is that it's essentially the brainchild of just one person, Evan Yu. So Evan, welcome and thanks for joining me on the podcast.

Speaker 0

谢谢。我们的播客听众背景多样。很多人是程序员,很清楚Vue是什么,当然也有一些不清楚的。但还有大量听众完全不知道Vue是什么。他们不了解JavaScript框架,甚至不知道JavaScript或开源是什么。

Thanks. So we've got a mix of people who listen to this podcast. A lot of them are programmers who know exactly what Vue is, and I'm sure some who don't. But there are also a lot of people listening who have no idea what Vue is. They don't know what a JavaScript framework is or even what JavaScript is or what open source is.

Speaker 0

你能尝试用一种大家都能理解的方式解释一下你在做什么吗?

So can you take a stab at maybe explaining what you're doing in a way that everybody can understand?

Speaker 1

JavaScript是一种编程语言,几乎每个人都用它在网络上构建应用程序。比如你在用Gmail,Gmail就是用JavaScript构建的。Gmail是浏览器内的一个应用,它相当复杂,有很多特殊逻辑,需要管理你看到的所有界面、点击的按钮。所以,当你尝试构建这样的应用而非简单网站时,自然就变得非常复杂。

JavaScript is language, programming language, almost everyone used to build applications on the web. So if you're using Gmail, Gmail is built with JavaScript. And Gmail is an application inside the browser. It's pretty complex, and it has a lot of, special logic, and it has to manage all these interfaces that you're seeing, buttons you're clicking on. So naturally, it becomes very complex when you try to build something like that instead of a simple website.

Speaker 1

这就是框架的用武之地。框架本质上是抽象和一组库,帮助开发者构建这类复杂应用,使其更容易开发。Vue.js就是这些框架之一。它是开源的,意味着我们完全免费发布源代码,任何人都可以随时使用,也就是说我们不向使用者收取任何费用。

And this is where frameworks come in. Frameworks are essentially abstractions and a set of libraries that help developers to build this kind of complex applications, make it easier for them to build such applications. And VJS is one of those frameworks. It is open source in the sense that we publish our source code completely free. Anybody can just use it whenever they want to, which means we don't charge any money for people using it.

Speaker 1

所以这使它有点独特,因为我们作为全职投入其中的人,我仍然需要找到变现方式,但不是直接销售。

So that makes it kinda unique in the sense that we as someone who works on it full time, I still need to find ways to monetize it, but just not directly sell.

Speaker 0

我觉得大多数听众可能会认为你是那种典型的编程奇才——受过专业训练的程序员,有计算机科学学位,从六岁就开始开发应用。但实际上并非如此。你学习编程的背后故事是什么?

I think most people listening into this would think that you're sort of the stereotypical programming wiz. That you're this professionally trained programmer, who has a degree in computer science, and you've been making apps since you were six. But actually, not an actual truth. What's the story behind how you learned to code?

Speaker 1

没错。我最早接触类似编程的东西可能是通过Flash。初中时我的一个表哥给我展示了Flash,我当时就觉得,哇,这太酷了。于是我开始大量使用Flash,但那时我最常做的就是把网上找到的各种小脚本复制粘贴到我做的东西里。直到后来上大学,我选了一门计算机科学课程——Java编程入门,才真正理解了严肃的编程模式。

Right. My first contact with something close to programming is probably through Flash. I was playing with Flash in middle school when a cousin of mine showed it, and I was like, wow, this is cool. So I started with playing with Flash a lot, but at that time, the most common thing that I did was just copy pasting all these little scripts that I found on the internet into the things I was building. I didn't really understand any sort of serious programming patterns until later in college, I took one computer science class, which was introduction to programming with Java.

Speaker 1

实际上我并不太喜欢那门课。我觉得Java很冗长,让我很难直接从零开始在屏幕上做出东西。所以我继续玩Flash,还买了本ActionScript 3的书自学如何在Flash中更好地运用编程概念。后来我读了一个叫设计技术的硕士项目,是艺术硕士课程。

And I actually didn't like it that much. I felt Java was pretty verbose and it kind of made it very difficult for me to just directly jump from start to getting something on the screen. So I kept playing with Flash and actually bought a book on ActionScript three to teach myself how to make more use of programming concepts inside of Flash. And later on, I went to a master's program called design technology. It's a master's of fine arts program.

Speaker 1

这个项目既教一些编程,也教很多设计相关的内容。那时我才开始认真学JavaScript,因为我注意到可以直接在浏览器里做很多有趣的事情,而且很容易与人分享。就这样我开始真正想要系统学习编程,以便能构建更复杂高级的东西。

So it taught you both a bit of programming and a lot of more design stuff. That was the time I actually started to seriously learn JavaScript because I noticed that you can do a lot of interesting things directly in the browser and it made it very easy to share with people. So that's how I actually started to say, I want to learn programming properly so that I can build more complex and advanced stuff.

Speaker 0

是什么驱动你学习所有这些?我觉得大多数人遇到第一个坎——比如大学里那门没趣的编程课时——就直接放弃了。你为什么坚持编程?是因为热爱,还是想通过编程实现其他目标?

What was driving you to learn all this stuff? I think most people, when they encounter that first sort of hurdle, when they take that programming class in college and it's not fun, they just quit there. Why did you keep programming? Was it something you love doing or was there something else that you wanted to achieve through programming?

Speaker 1

当然。我觉得主要是我想创造东西。我一直有这种创作的冲动,虽然我想创造的东西随着时间发生了变化。最初我以为自己会成为设计师,因为我在帮朋友设计网站。后来因为找不到人帮我实现这些网站,我就开始尝试自己来构建。

Sure. I think mostly I wanted to build things. I had this urge to create all the time, although the things I wanted to create kind of changed over time. Initially, I thought I was going to become a designer because I was designing some websites for friends. And then I started trying to build these websites myself because I couldn't find anyone to build it for me.

Speaker 1

在这个过程中,我不得不强迫自己学习所有必要的小细节,比如如何部署网站、如何正确使用JavaScript,以及如何管理应用程序的状态——这些随着时间推移会变得越来越复杂。但大部分都是自学,因为我只是想学习那些能让我构建自己想要的东西的必要技能。

And in that process, I kind of had to force myself to learn all the necessary little things to learn how to deploy a website, learn how to properly use JavaScript and actually how to manage the state in your application, which just gets into more complex territories over time. But mostly I'm self taught just because I was trying to learn the necessary things that allows me to build the things I wanna build.

Speaker 0

所以你获得了艺术硕士学位(MFA)。我很好奇,既然你知道自己想成为建造者,也知道有一条所谓的黄金路径可以教你所需的知识,为什么选择了这条路而不是传统的计算机科学学位?

So you got an MFA, a master of fine arts degree. I'm curious why you went that route instead of getting a traditional CS degree when you knew that you wanted to be a builder of things. You knew that there was this sort of golden path out there that would teach you what you needed to know.

Speaker 1

没错。我想构建的东西总是更偏向创意方面。我最欣赏的是像FWA(Favorite Website Awards)这样的网站——不知道大家是否知道,它主要展示那些超级炫酷、动画效果丰富的网站,比如早期的Flash站点。

Right. The kind of things I wanted to build was always leaning more towards the creative side. The things that I looked like most was, websites like FWA. I don't know if anyone know about it, but it's like favorite website awards. It was mostly super flashy, super fancy, like heavy animation sites, flash sites back in the days.

Speaker 1

正是这些让我想在网上构建东西。虽然这类网站大多是一次性的营销站点,但其中包含了许多非常有趣的交互元素,你在严肃应用中通常不会见到。我对这方面更感兴趣,这引导我学习了设计技术项目,实际上与创意营销密切相关。但后来有所偏离,因为当我构建这些实验时,我试图抽象出所有可重用的部分,最终形成了自己的一套库。这可以说是引导我开发Vue的过程——本质上就是将所有这些学习成果抽象成一个框架。

And that's what got me into say, I want to build things on the web. Although that kind of website is kind of, it's, most of those websites are just marketing, one off marketing sites, but a lot of them consisted of these really interesting interactive bits, like things you don't typically do in serious applications. And I was actually interested more in that area of stuff, which led me to study design technology programs, which is in fact very closely connected to this creative marketing side of things. But later on, it deviated a little bit because when I was building some kind of those experiments, I was trying to abstract all the reusable parts, which eventually turned into my little set of libraries. That kind of was the the, I guess, leading into what I did with Vue is essentially taking all those learnings and abstracting it into something called a framework.

Speaker 0

那么我们来谈谈Vue。假设你在开发Vue,而你的主要收入来源是通过Patreon的捐赠。我现在打开你的Patreon页面,看到有232人每月总共向你捐赠16,547美元。这样你就能继续开发Vue了。靠自己的项目赚这么多钱,真是不少。

So let's let's talk about Vue. Say you're working on Vue, and the way you make money is primarily through donations on Patreon. So I can open up your Patreon page right now, and I see that you have 232 people who are donating a total of $16,547 to you every month. So you'll keep working on Vue. That's a lot of money to make on your own, on your own project.

Speaker 0

当你最初开始开发Vue时,你的目标是实现这样的成就吗?

When you first set out to work on Vue, was was it your goal to achieve something like this?

Speaker 1

绝对不是。我刚开始开发Vue时,完全是一个实验。当时已经有其他框架,比如Angular 1,React其实也比Vue更早出现,但那时知道的人很少。我开始开发Vue时,主要是想试试看:嘿,既然有这些框架,我能自己做一个吗?

Definitely not. When I first started working on Vue, it was completely an experiment. There were already other frameworks out there like Angular one, and I think React came out actually earlier than Vue as well, but very few people knew about it back then. And when I started working on Vue, it was mostly an experiment saying, hey, there are these frameworks out there. Can I make my own?

Speaker 1

因为它看起来很有趣。而且其中还涉及一些技术,一些非常底层的技术细节,我想在自己的框架中尝试。这是我开始这个项目时的首要动机。但后来随着更多用户开始在实际应用中使用它,并告诉我他们很喜欢,它就逐渐有机地成长起来了。我一次又一次听到这样的反馈,我就想,这其中一定有什么特别之处。

Because it looked fun. And there were also some technique, very lower level technical stuff I wanted to try out in my own framework. That was the primary motivation when I started the project. But it kinda grew organically later on when more users started actually using it in their applications, and they told me they liked it. And I hear this over and over, and I was like, there's there must be something to it.

Speaker 1

我创造的这个小东西一定有其价值,我或许应该投入更多时间,努力让它变得更好,探索它的全部潜力。最终它发展到足够大的规模,让我意识到或许可以尝试某种方式将其变现。而Patreon似乎是需要最少维护、最不用费心思考的方式。因为我设置好后,人们会自动捐款并自动扣款,这样我就不需要太过操心,可以继续专注于创作,而不是整天想着如何变现。

There must be something in this little thing that I created, and I should probably spend some more time on it, try to make it better, see where the full potential is. And eventually it got big enough that I realized I could probably try to monetize it in some way. And Patreon was, seemed like the least, the way that requires least maintenance on having to think about it. Because I set it up, people donate money and they they are charged automatically so I don't need to worry too much about it so that I can keep focusing on creating instead of just trying to think about monetizing it all the time.

Speaker 0

令人着迷的是,你最初是把它当作一个爱好开始的,完全没有想过要从中赚钱,但最终却为你带来了如此巨大的商业成功。我知道很多人从一开始就试图赚钱,却从未达到你这样的月收入水平。你是否认为,如果从一开始就把Vue当作一门生意,设定每月赚取1万或2万美元的目标,你会采取不同的做法吗?

It's fascinating that you started this as a hobby with no real goal of making any money from it whatsoever, and yet it's resulted in this this massive business win for yourself. I know a lot of people who start out on day one trying to make money and never get to that amount of revenue every month. Do you think that if it had been your goal for Vue to be a business from day one, if you had set out to make 10 or $20,000 a month, that you would have done things differently from the start?

Speaker 1

我可能会采取完全不同的做法。我认为不考虑变现的最大优势之一是,我可以只专注于把它做好,因为开始时我有一份正式工作。所以我没有压力说必须尽快变现。我有很长时间可以慢慢思考最佳发展路径,打磨所有技术细节,编写非常详尽的文档。所有这些小事累积起来。

I would probably done it very differently. I think one of the biggest advantages of starting out without thinking about monetization is that I only focused on just making it good because I had a day job when I started working. So I wasn't really pressured to say, need to monetize as fast as possible. So I had a long time to just slowly think about what's the best way forward and polish all the little technical details, write very lengthy documentations. So all of these little things add up.

Speaker 1

当我最终想要全职投入时,它已经足够扎实,让人们愿意说这是值得付费的东西。虽然他们不是直接购买,但这些公司会说,这是一个有发展势头的东西,所以我们愿意赞助它。

And when I eventually wanted to say, work on it full time, it all it was already solid enough that, people are willing to say this is something worthy of, you know, paying money for. Although they're not paying for it directly, these companies are saying like, this is something with momentum, so we're willing to sponsor it.

Speaker 0

让我们回顾一下你旅程的开端。当你在做日常工作时,我想你有一些空闲时间,或者甚至在工作时间内偷偷做这个。你是如何决定要构建Vue的?当时是否还有其他项目也在争夺你的注意力?

Let's walk through the beginning of your journey here. When you're working your day job, you've got, I suppose, free time on the side or maybe time at your day job to work on this. How did you decide that Vue was a thing that you wanted to build? And did you have ideas for other projects that were competing for your attention?

Speaker 1

嗯,是的,Vue只是我当时众多小实验中的一个。因为当我开始Vue时,我在谷歌担任创意技术专家。我在谷歌的工作涉及对这些交互式实验和原型进行快速迭代。我在一个叫做Google Creative Lab的地方工作,那是一个非常多元化的团队。我们有程序员、创意技术专家、设计师、文案撰稿人,还有纯粹的战略创意人员。

Well, yeah, Vue was just one of many little experiments I had back then. Because when I started Vue, I was working at Google as a creative technologist. My job at Google involved very fast iterations on these interactive experiments, prototypes. I worked at a place called Google Creative Lab, where it's a very versatile team. We had programmers, creative technologists, designers, copywriters, just like purely creative strategists.

Speaker 1

我们一直在不断推出这些疯狂的小创意。而且我们必须有非常快的周转时间。所以每当有有趣的想法进来时,我就需要立即着手,快速构建出一些东西。在这个过程中,每当我有了有趣的小技术想法,我就会构建一个小型库,发布到NPM上,或者尝试做一个小的开源项目。这就像是创意技术专家的迷你作品集。

And we keep cranking out these crazy little ideas all the time. And we had to have very fast turnaround time. So I had to, whenever we got some interesting idea coming in, I need to just like start on it and build something really quick. And in that process, I was also whenever I had interesting little technical ideas, I would just build a little library, publish it on NPM, or just try to make a little open source project. It it was kind of like a a mini portfolio for a creative technologist.

Speaker 0

当你说在这些项目中进行迭代时,这个'快'有多快?你是花几周、几个月还是几天?完成其中一个项目需要多长时间?

How how quick is quick when you say you're iterating through these projects? Are you taking, like, weeks or months or days? Or how long does it take you to get out one of these things?

Speaker 1

我认为平均每个项目大约需要两到三周。

I think average is, like, two to three weeks per project.

Speaker 0

好的。所以你进展得非常快。

Okay. So you're going super quick.

Speaker 1

从开始到结束。哇,是的。因为这些项目并不是要为用户推出完整的产品。更像是我们从想法开始,最终完成一个可以交付给实际产品团队的东西,他们可以对此进行评估,并可能在其基础上迭代,使其成为真正的产品。

From start to finish. Wow. Yeah. Because those projects are not like a we're not trying to ship a complete product to the users. It's more like we start from an idea, then we finish at something that's deliverable to a real product team where they can evaluate this and maybe iterate on top of it to make it a real product.

Speaker 0

这很酷。你在谷歌这样的大公司工作,但却几乎获得了创业公司的实践体验,他们要求你快速迭代和构建这些东西。所以你养成了不浪费大量时间就能发布产品的习惯。

So that's cool. You're at this big business, Google, but you're kind of getting almost startup practice where they're like, you need to iterate and build these things quickly. And so you're getting in the habit of launching things without wasting tons of time.

Speaker 1

完全正确。这确实是一次非常好的经历。绝对是。

Exactly. It was a really good experience. Definitely.

Speaker 0

Vue是你在谷歌工作期间的项目之一,还是你在担任创意技术专家时为自己决定开发的项目?

Was Vue one of these projects that you worked on for Google or was it a project that you decided to work on for yourself while you were a creative technologist?

Speaker 1

那完全是我个人的项目。我们当时并没有做太多这类事情。其中一些项目确实需要更像一个完整的UI框架。有几个项目实际上使用了Angular 1,但这个决定是由我的一些同事做出的,他们将这些项目引入了Angular 1,而我恰好参与了合作。我在使用Angular时,有些部分我喜欢,有些部分我不喜欢。

That was completely for myself. We weren't doing a a bunch of things. A few of those projects actually required something more like a proper UI framework. And a few of those projects actually used Angular one, but the decision was made by some of my coworkers who introduced Angular one into those projects, which I happened to collaborate on. And I was using Angular, and there are bits of it that I liked, bits of it that I didn't.

Speaker 1

我觉得这确实很有用,而且我可以完全为自己打造一个类似的东西,用于个人项目。因为自己创建框架让我可以摒弃Angular中我不喜欢的部分,同时,这也是一个很好的实践。我只是好奇,作为一名技术专家,我好奇它是如何实现的,我想看看自己能否做到。最初只是一个非常简单、几乎算是概念验证的实验,它在我抽屉里搁置了整整六个月,之后我才决定将其开源。

And I felt like this feels really useful, and, I could completely just, like, have something like this just for myself that I could use in my personal projects. And and because creating myself allows me to just throw away the things I didn't like about Angular, And, also, it was a good practice. Just I wanted to I was curious. As a technologist, I was curious how it was done, and I wanted to just find out whether I could do it. Started as a really, really simple experiment, proof of concept almost, and it kinda actually sit in my drawer for a good six months before I decided to open source it.

Speaker 0

你提到你们当时在使用Angular,这是另一个类似于Vue的前端JavaScript框架。它实际上是在谷歌创建的,所以我只能想象谷歌的每个团队也都在使用Angular。大约在同一时间,还有React,你之前提到过,这是由Facebook创建的另一个前端JavaScript框架。谷歌和Facebook这两家公司都以拥有业界顶尖的编程人才而闻名。我认为这足以让大多数人望而却步,打消他们自己构建JavaScript框架的念头。为什么这没有阻止你呢?

You mentioned that you guys were using Angular, which is another one of these front end JavaScript frameworks just like Vue. And it was actually created at Google, so I can only imagine that every team at Google was also using Angular. And also around the same time, there was React, which you talked about earlier, another front end JavaScript framework created by Facebook. And both of these companies, Google and Facebook, are known for having some of the best programming talent in the I think that would be enough to stop most people in their tracks and discourage them from ever moving on to build their own JavaScript framework. Why didn't that stop you?

Speaker 1

刚开始的时候,我并没有真正想过要与它们竞争。这是一种幸运,因为我不必给自己压力,比如这些大库能做到这些,但我的做不到;这些大库有强大的支持,而我没有。我不必考虑这些,因为我不是在试图与它们竞争。所以我只专注于让这个库本身足够好,让我感觉在技术层面上它能达到同等水平。

When it began, I think one of the I didn't really think about competing with them. That was a blessing because I didn't have to pressure myself about, oh, these bigger libraries can do these things, but mine can. These bigger libraries had these backing, but I don't. I didn't have to think about it because I wasn't trying to compete with them. So I just focused on making the library itself good enough that I would feel like technically it would be on the same level.

Speaker 1

然后自然而然地,有些人发现,嘿,有这么一个独立的东西,但在某些方面同样出色。另一方面,当我们试图说我们构建了一个库时,有趣的是,React、Angular和Vue在API设计上各有不同的风格。所以,程序员在选择编程工具时自然有不同的偏好。例如,有些人喜欢动态语言,如JavaScript、Ruby、Python;有些人更喜欢底层语言,如C或Rust。

And then naturally some people discovered that, hey, there's this independent thing, but it's as good in some way. And on the other hand, when we were trying to say, we built a library, it's interesting because React, Angular and Vue have some different sort of, I would say flavor in terms of the API design. So, programmers naturally have different tastes in the programming tools that they want to use. For example, some people like, dynamic languages like JavaScript, Ruby, Python. Some people like more a lower level language like C or Rust.

Speaker 1

有些人喜欢强类型语言,非常复杂的类型系统,对吧?人们有不同的偏好。前端开发者在选择库或框架时也是如此。Vue始于我个人对框架的偏好,而我认为这恰好与许多其他开发者的品味相吻合,这使得它自然而然地吸引了与我志同道合的开发者。

Some people like strongly typed languages, a very complex type system, right? People have different tastes. So do front end developers when they are picking a library or a framework. Vue started off from my personal taste of what I would like as a framework. And I think that happened to coincide with a lot of other developers' taste, which allowed it to sort of naturally attract developers that had a similar mindset with me.

Speaker 1

我认为有很多前端开发者,尤其是在这些创意机构、小公司、小企业、小团队中,与那些大型企业、大公司相比,他们实际上有着非常不同的开发模式、思维方式、团队设置以及各自的技术背景,对吧?这非常多样化。所以如果你能抓住这群开发者,可以说Vue有一个独特的市场契合点,这是我刚开始时没有意识到的。但回过头来看,我认为这正是Vue随着时间的推移在全国范围内取得成功的原因。

And I think there are a lot of front end developers, especially in these creative agencies, little companies, small business, small teams, compared those with say a huge enterprise, huge corporation, they actually have very different development models and mindset team setup, and also their own technical backgrounds, right? It's very diverse. So if you kind of capture the group of developers that there is this this, I will say, a market fit that's unique to Vue, which I didn't realize when I started. But looking back, I think that's what actually made Vue succeed nationally over time.

Speaker 0

是的。这真的很吸引人,你某种程度上构建了这个完美的,我想说是利基产品,吸引了一小部分程序员。也许并不那么小,毕竟Vue现在很庞大。是的。但当时你并不知道你在做这件事,但你说你专注于让Vue变得更好。

Yeah. That's really fascinating that you you sort of built this perfect, like I wanna say niche product that appealed to a very small subset of programmers. Maybe not that small after all, now that Vue's huge. Yeah. But at the time you didn't know that you were doing that, but you said that you were focused on making Vue good.

Speaker 0

在没有目标受众的情况下,'好'对你来说意味着什么?

What did good mean to you in the absence of a target audience?

Speaker 1

好意味着,它提供了良好的开发体验。对吧?因为我本身也是一名开发者。所以在构建Vue之前,我是这类库和框架的使用者。当我在构建应用时,我会列出我喜欢和不喜欢这些正在使用的工具的地方。

Good means, it, it provides a good development experience. Right? Because I am a developer myself. So before I built FUE, I was a consumer of such, such libraries and frameworks. And when I'm building apps, I would come up with a list of things that I like and don't like about these tools that I was using.

Speaker 1

所以当我构建Vue时,我试图满足我喜欢之前那些工具的所有方面。对吧?比如,当我使用某个库时,我会想,哦,哇,这个想法很酷。如果我自己要构建一个框架,我肯定会这样做。

So when I build Vue, I try to hit all the boxes that I like about those previous tools. Right? Like, when I when I use the library, I'm like, oh, wow. This is a cool idea. If I were to build a framework myself, I would definitely do this.

Speaker 1

有时当我在做某件事时,我希望能有一个工具让我做到这一点。如果我要自己构建它,是的,我肯定会做。所有这些作为其他工具使用者积累起来的小事情,在某种程度上汇聚成了这个。当我终于有机会为自己创造一些东西时,我就把所有这些东西都倾注到我正在创造的东西中。我认为这也能引起许多其他开发者的共鸣。

And sometimes when I'm doing something, was I wish there could be a tool that allows me to do this. And if I were to build it myself, yeah, I will definitely do it. All of these little things that accumulated over time as a consumer of other tools sort of, culminated into this. When I finally get the chance to create something for my own, I just pour all of these little things into the thing I am creating. And I think that, resonates with a lot of other developers as well.

Speaker 0

我想知道,由于你最终将其开放给其他人使用,你因此改变了多少。因为听起来在开始的时候,嗯。你有一个自己的个人清单,列出了你希望在工具中看到的东西。一方面,确实其他人可能和你一样。但当你刚开始把它展示给别人时,他们是否都和你一样呢?

I wonder how much have you changed as a result of you eventually opening it up for other people to use. Because it sounds like in the beginning Mhmm. You had your own personal checklist of what you wanted to see in a tool. And on one hand, it's true that other people might be just like you. But when you first started showing it to people, was it the case that they're all just like you?

Speaker 0

还是说你不得不重新审视,重新评估一些假设,并对Vue做出改变,以便让它更适合其他人使用?

Or did you have to go back to the drawing board and sort of reevaluate some of your assumptions and make changes to Vue in order to make it better for other people to use as well?

Speaker 1

确实如此。不过幸运的是,当我最初开源Vue时,更像是'嘿,我做了个很酷的东西,如果你喜欢就用,不喜欢我也无所谓'。这确实是我最初开源时的态度。

Definitely. Well, the good thing is when I first open sourced Vue, it didn't it was more like, hey, I made something cool. Like, if you like it, just use it. If you don't, I don't really care. That was the that was really my attitude when I first open sourced it.

Speaker 1

后来我们真正建立了一个完善的社区,拥有了相当数量的用户群体。当我们准备发布1.0版本时——1.0对软件发布来说很特别,因为有语义化版本控制的惯例,意味着一旦发布主版本,在下个主版本之前都不应该做破坏性变更。所以1.0版本意义重大,我们想要确保万无一失。那是我们第一次需要正式提出变更建议,并让大家对这些想法发表意见。

Later on, we actually had a proper community. We had a decent group amount of users. And when we were, say, trying to do the one point o release, and one point o is something special when you're releasing a software because, there is, this convention called semantic versioning, which means once you release a major version, you're not supposed to make any breaking changes until the next major version, right? So one point zero really meant something and we want to really get it right. And that was the first time we actually had to say, I am proposing that we make these changes and let people voice their opinions on whether this looks like a good idea or not.

Speaker 1

在最终发布1.0之前,我们实际上进行了非常漫长的辩论和讨论,探讨哪些该做哪些不该做。我认为这标志着一个转折点,Vue从一个完全个人化的项目转变为一个社区产品,用户真正在决策过程中拥有了发言权。

And we actually had really lengthy debates and discussions on what should and should not be done before we finally released one point zero. And that actually was the, I think marked the point where it transitioned from a completely personal project to something that's more or less a community product where users actually had a voice in the decisions being made.

Speaker 0

这里面有太多我想和你探讨的内容,特别是1.0版本的发布过程——将一个原本私人的个人项目变成公共产品的历程非常有趣。但首先,让我们回到那之前的日子。我遇到的很多人处境和你相似,他们既有某种激情项目,又有一份全职工作。同时兼顾这两者很不容易。你是如何在全职工作的同时,找到动力、时间和精力来完成这样一个雄心勃勃的副业项目的?

There's so much there that I wanna talk to you about, especially this one point o launch, this process of taking what was previously this private personal project and making it something public is really interesting. But first, let's go back to the days before that. A lot of people that I talked to are in the situation that you're in, where they have a passion project of sorts, but they also have a full time job. And it's difficult to navigate doing both of those at the same time. How did you find the motivation and the time and the energy to complete such an ambitious side project while working a full time job?

Speaker 1

嗯,我想我很幸运,因为开始这个项目时我还年轻,没有孩子。所以除了日常工作外,我有很多空闲时间。我记得经常在深夜和周末加班开发Vue,确实在常规工作之外投入了大量时间。至于动力方面,我觉得只是因为我想做出一些很酷、很好的东西。

Well, I I guess I was lucky because I started the project when I was, when I was young and didn't have kids. So I had a ton of free time, outside of my day job. I remember working on Vue like late at night on weekends. I really did spend a lot of time just outside of my regular job. So that was, and the motivation part, I think it was because I just wanted to do some, create something cool and good.

Speaker 1

这有点像在证明自己是一个有能力、有实力的开发者或技术专家。起初这更像是个实验,但当人们真正开始使用它时,我开始更把它看作一个产品。我想要打造一个让自己感到骄傲的东西,希望当人们提到它时会说'哦,那是个很酷的项目'。

It was kind of like proving myself as a competent, developer or a competent technologist. I think at some point, initially it was an experiment, right? But at some point when people actually started using it, I started to look at it more as a product. And I want to build something that makes myself proud. I want to build something that when people mention it, they're like, Oh, that is a cool project, right?

Speaker 1

那正是我花那些周末时间埋头苦干时追求的目标。某种程度上这几乎像是一种爱好,因为我记得有段时间完全不知道要做什么,就会打开编辑器开始捣鼓Vue。显然现在这么做越来越难了,但我认为在早期阶段,正是这种模式让它真正运转起来。

That was the thing I was aiming for when I was spending those weekends just working on. It was almost like a hobby to some extent, because I remember there was a period of time when I just didn't know what to do. I would just crack open the editor and start working with Vue. Obviously it's getting more difficult to do that today, but, I think in the early stages, this kind of mode is kinda what made it made it tick.

Speaker 0

你实际花了多长时间将Vue从一个想法变成其他人可以开始使用的真实项目?

How long did it take you to actually get Vue from the point where it was just an idea to a real thing that other people could start using?

Speaker 1

我记得第一次提交是在2013年6月或7月,而首次公开发布是在2014年2月。所以大概是六到八个月时间。

I think the first commit was in June or July 2013. And the first public release was in February 2014. So that's like six to eight months, I think.

Speaker 0

那段时间是全程独自开发吗?还是说你会展示给别人看并进行协作?

Now was it just you working on it by yourself that entire time or were you showing it to people and collaborating?

Speaker 1

基本上只有我自己。它就像我笔记本电脑里一个完全随机的文件夹,我只是随着时间的推移持续完善。那最初的八个月其实没有后期那么紧张,主要是在我有空闲时间且想捣鼓点什么的时候,才会稍微做一点。

I think it was mostly just me. It was just like this completely random folder inside in my laptop. I just kept working on it over time. I think that early eight months, it wasn't as intensive as it was later. It was mostly whenever I had spare time and felt I wanted to play with something, I would work on it a little bit.

Speaker 1

真正紧张的阶段是在1.0版本发布之前,那时候我确实非常努力地在推进。

The more intensive part was, you know, before the before the one point o release, I was working really hard on it.

Speaker 0

那么我们来聊聊准备1.0版本发布的过程吧。你提到将Vue开源了,很多听众甚至不知道开源是什么,也不清楚这个过程是怎样的。你是如何将Vue开源的?又是如何获得最初的那批用户的?

So, yeah, let's talk about that process of of getting ready for this one point o release. And you mentioned that you open sourced Vue. A of lot people listening don't even know what open source is and aren't sure what that process is like. How did you open source Vue, and how did you get your very first few users?

Speaker 1

我认为开发者开源项目的典型方式通常是先把它放到GitHub上。GitHub是一个可以分享代码、分享项目源代码的地方。这样每个人都能查看你写的每一行代码,理解你在做什么。我做的第一件事就是把Vue的源代码放到GitHub上。你需要确保代码库是公开的,这样所有人都能看到。

I think a typical way to for for, developers to open source something is you first, you put it on GitHub. GitHub is the place where you can share your code, share the source code of your projects. So everyone can just look at every line of code you wrote and understand what you're doing. The first thing you do is I put the source code of Vue onto GitHub. You wanna make sure that the repository is actually public so everyone can see it.

Speaker 1

然后我把链接发到了Hacker News,你知道的,那里是很多开发者展示他们构建的新酷东西的地方。有点像Product Hunt,但只面向黑客。我还提交给了当时的一些博客。有几个博客每周都会展示新的JavaScript项目。获得最多关注的是Hacker News的帖子,我记得获得了大约200个赞。

Then I posted the link to Hacker News, which is, you know, kind of the the place where a lot of developers actually show off theirs, new cool stuff they build on. It's kind of like Product Hunt, but only for hackers. I also submitted to some of the, of, I say blogs back then. There were a few blogs that just like showcase new JavaScript projects every week. The one that got the most attention was the Hacker News post where I think I got 200 ish upvotes.

Speaker 1

它被顶到了首页,这对一个全新的项目来说其实相当困难,因为Hacker News有一些非常奇怪的算法来决定你的帖子能否留在首页。你需要获得真正匿名的、去中心化的点赞。基本上,如果他们发现你试图让一群朋友来点赞你的帖子,他们实际上会降低它的优先级。但不知何故,那个帖子被点赞并在首页停留了好几个小时。这样就吸引了第一批流量。

It got upvoted to the front page, which is actually quite difficult for something that's completely new because Packer News has some really weird, algorithm in determining whether your post can stay on the front page. You have to say, like, get really anonymous upvote, like decentralized upvotes. Basically, if they detect anything you're trying to say, ask a bunch of friends to upvote your post, they will like actually deprioritize it. But somehow the post got upvoted and stayed on the front page for quite a few hours. So that draw the first batch of traffic.

Speaker 1

我想我就是这样通过Hacker News获得了第一批用户。

I think that was how I got the the first group of users they discovered on Hacker News.

Speaker 0

我不知道你是在Hacker News上发布的。我在你发布Vue几年后也在Hacker News上发布了Endy Hackers,但现在我正在看这个Hacker News的帖子,看评论很有意思。有一个人说,我很少做前端开发,但我真的很喜欢这个。它看起来比Angular或Ember轻量得多,但同样强大。当你终于向世界展示你的工作并看到这样的反馈时,你从中学到了多少?

I didn't know that you launched on Hacker News. I also launched Endy Hackers on Hacker News a couple years after you launched Vue, But I'm reading this Hacker News thread right now, and it's funny looking at the comments. One one person said, I do very little front end development, but I really like this. It seems much more lightweight than Angular or Ember, but similarly powerful. How much were you learning from finally revealing what you're working on to the world and seeing feedback like this?

Speaker 1

我实际上写了一篇博客文章来记录这件事。它发表在我的博客上,叫《发布UJS的第一周》。我做了一个小的事后总结,梳理了我所做的事情。我提交到了Hacker News、Reddit、AcoJS、DailyJS。这些只是专注于JavaScript的子社区,然后我查看了访问统计等等。

I actually wrote a blog post about it. It's on my blog called first week of launching UJS. I actually did a little postmortem where I summarized the things I did. I submitted to Hacker News, Reddit, AcoJS, DailyJS. These are just, these sub communities that focused on JavaScript, and took a look at the, the visitor stats and all that.

Speaker 1

我认为关键的一点是,你需要把它更多地看作一个产品,而不仅仅是一个技术库。因为当人们评估一个技术方案时,他们不仅会看代码和它能实现什么,还会看你的整体呈现。你是否有一个好的README来解释你试图解决的问题,以及你如何与其他类似方案比较?他们也会阅读你的代码来评估它是否足够扎实。当你发布开源项目时,很多这些小细节会共同起作用。

I think the takeaway was that you kind of have to think about it as a product more than just a technical library, because when people try to evaluate a technical solution, they also, they not only look at the code and what it achieves, they also look at, your overall presentation. Did you have a good readme that explains what problems you're trying to solve and how you can compare with other similar solutions? They also read your code to evaluate whether it's solid enough. A lot of these little details would add together when you launch in something that is open source.

Speaker 0

让我们来谈谈这个开源JavaScript框架的成长过程。开源之所以迷人,是因为我很难在其他行业找到类似的现象——人们愿意辛勤工作、挥洒汗水,然后将所有劳动成果免费放到网上,供所有人随时使用和复制。在这个领域取得成功,你采用了哪些策略,又克服了哪些挑战?

Let's talk about this process of growing an open source JavaScript framework. Open source is fascinating in that I can't readily think of an analogous phenomenon in any other industry where the people will toil and sweat and work and then put all of the results of their work online free for everybody else to use and copy whenever they want. What are some of the strategies you've used and the challenges you've overcome to succeed in a space like this?

Speaker 1

实际上开源项目有很多不同类型。但如果你考虑那些基于开源构建的公司,其实有不少例子,比如被数十亿美元收购的红帽公司。它就是在基本免费的Linux基础上添加服务而建立的。还有MongoDB或Oracle,这些巨头公司实际上都是从开源库开始构建的。

So there are several different types. There are many different types of open source projects actually. But if you think about companies that's built on top of open source, there are quite a few examples like Red Hat, which was acquired for billions of dollars. It's built on top of adding services on top of Linux, which is just pretty much free. And then there are MongoDB or Oracle, which, all of these huge corporations actually started building on top of open source libraries.

Speaker 1

但相比之下,Vue的规模完全不同。Vue是一个完全独立开源项目,最初只是一个业余爱好项目。我认为与Vue类似的项目应该是像Laravel这样的。但如果你回顾历史,Linux实际上最初也是一个人的项目。

But here, Vue is probably like, compared to them, it's completely different scale. I have a different scale. Vue is a completely independent open source project that started out as a hobby project. And something I think that would be along the lines of Vue would be things like Laravel. But if you take a look back, like Linux actually started out as a one man project as well.

Speaker 1

所以我认为这有两个方面。首先,需要有人对其充满热情,愿意在初期投入自己的时间。当项目获得动力、规模足够大时,就可能出现一些商业机会,你可以围绕它建立传统业务。但在更多情况下,大多数个人开源项目会陷入一个困境:它们有稳定的用户群体和足够的需求,规模已经不小了。

So I think there are two parts of this. The first is you need to have someone who is passionate enough about it to invest, their own time into it in the beginning. And then when it gets momentum, it gets big enough, then there could be potentially some business opportunities. You would build actually a traditional business around it. But in many more cases, most of the time, these individual open source projects would fall in the chasm where it's big enough that it has a consistent group of users with enough demand.

Speaker 1

然而,它们又不够大,无法通过适当的货币化来支持维护者全职工作。我认为这实际上是开源项目最难跨越的障碍。我称之为'鸿沟'。你的项目已经大到需要占用你大量时间,但又不够大到能支付你全职工作的报酬。

However, it's not big enough to be properly monetized in order to support its maintainers to work on it full time. I think that's actually the most difficult thing for open source projects to to get over with. It's a I I call it the chasm. You're big enough that it takes so much takes up so much of your time, but it's not big enough that it would pay you folk to work on it full time.

Speaker 0

你是怎么知道自己已经跨越了这个鸿沟?在什么时候你意识到,哦,我可以从这个项目中赚钱,并且真的可以辞职了?

How did you know that you weren't in that chasm? And at what point did you come to that realization that, oh, I can make money from this and actually quit my job?

Speaker 1

其实在我辞职的时候,我甚至都不确定。当我辞职时,我想我已经设立了Patreon。在辞职前,我一直在考虑这个想法。我不完全确定仅靠这个能否真正维持生计。然后中国有一家初创公司,我和它的CTO是好朋友,我们彼此认识,我告诉他我正在考虑全职做这个事情。

I actually wasn't even sure when I quit my job. When I quit, I think, I I had the Patreon set up. Before I quit, I was pondering the idea. I wasn't entirely sure whether I would be able to actually survive just out of this. Then I had a there was a company in China, a startup, and I'm actually a good friend with its CTO, and we knew each other and was telling him that I was thinking, I'm thinking of working on this thing full time.

Speaker 1

然后他说,嘿,我们公司有一个小基金,专门用来支持开源项目。我可以安排一下,让我们连续六个月每月支持你2000美元。哇。是的,这真的给了我所需的动力。我当时就想,好吧,你知道吗,现在我确实能拿到一些钱来继续做这个项目了。

And he was like, Hey, like we have this little fund in our company where we just use it to support open source projects. And we can like, I can actually arrange so that we are supporting you for $2,000 a month for six months straight. Wow. And yeah, and that really kind of gave me the boost needed. I was like, okay, you know, actually I would actually get some bit of money to work on this now.

Speaker 0

这太有帮助了。

That's so helpful.

Speaker 1

是的,那确实帮了大忙。然后我启动了Patreon众筹。所以加上那家初创公司给的钱,再加上Patreon上获得的收入,我记得开始全职工作后不久,月收入就达到了大约4000美元。那时候我才感觉没那么焦虑了。

Yeah, that would definitely helped a lot. And then I started my Patreon. So combined with that money I got from the startup plus the other money that I got from Patreon. I think shortly after I started working on a full time, I reached like $4,000 a month. So that was the point when I felt less intimidated.

Speaker 1

我当时想,这确实在产生收入,而且还在逐渐增长。所以从那时起,我觉得自己可以再坚持做一段时间。因为辞职时我有些积蓄,我原本真的只是想尝试几个月,如果不行就再找新工作。

I was like, this is actually generating income and it's actually growing over time. So that was the point where I was like, I could actually keep doing this for a bit longer. Because when I quit, I had some savings. I'm like, I was really just thinking like, I would try this maybe for a few months. And if it doesn't work out, I would actually just look for a new job.

Speaker 1

实际上,在我辞职的同时,我已经投出了几份简历。

I actually had a few like resume sent out at the same time I quit.

Speaker 0

那么你在辞职前考虑了很长时间吗?还是突然看到银行账户里每月有2000美元收入就果断辞职了?

So were you thinking about quitting your job for a long time before you quit, or was it suddenly you got the $2,000 a month in your bank account and you just went for it?

Speaker 1

我觉得我考虑了很久。在辞职前,我已经感受到这个项目和我日常工作之间的拉扯。说实话,我的感受是——开发Vue比做日常工作让我更有成就感。这是辞职的主要原因之一。能够从事自己真正热爱的事情是一个巨大的加分项,我愿意为此接受降薪,因为它让我感到更充实,对我的工作也更满意。

I think I thought about it for quite a bit. Before I quit, I was already feeling the pull between this project versus my day job. And to be honest, the feeling I got was I I feel I felt more fulfilled working on Vue versus my day job. That was one of the primary reasons to quit. Working on something that I'm genuinely passionate about is is such a big bonus that I'm willing to just take a pay cut so that I can work on it because it feels makes me feel more fulfilled and makes, makes me happier about what I do.

Speaker 1

结果比我预想的还要好。我现在从事自己喜欢的工作,收入也比以前更高。这真的很棒。

And turns out it it worked out better than I hoped. I'm working on something that I like and I'm making more money than before. So that's really good.

Speaker 0

在辞职之前,你有没有尝试其他方法来确保获得收入?还是说这次和你朋友及其公司的对话,是你为Vue争取资金的首个尝试?

Did you try anything else before quitting your job to sort of guarantee that you would get revenue? Or was this conversation that you had with your friend and his business, your first attempt at trying to secure some funding for Vue?

Speaker 1

当我决定辞职时,我的首要目标是能够专注于改进Vue。我并没有考虑围绕它创建公司,也不是旨在建立一个能产生尽可能多收入的企业。这更像是一个生活方式的选择。事实上,自从我开始全职工作后,我做的第一件事就是放下一切,从头开始重写Vue。

When I was quitting, I was my first primary goal was so that I can focus on making Vue better. I wasn't thinking about say building a company around it. I wasn't really aiming at say, building business that would generate as much revenue as possible. It was more like a lifestyle decision. And in fact, since I started working on a full time, the first thing I did was I dropped everything and started rewriting Vue from the ground up.

Speaker 1

那就是Vue 2.0的开始。

That was the start of Vue two point o.

Speaker 0

辞职后,你有没有担心过自己可能最终无法每月赚取几千美元,或者你的业务最终无法成功?

How worried were you after you quit that you might eventually get to a position where you weren't making several thousand dollars a month and that your business wouldn't eventually work out for you?

Speaker 1

我确实在某种程度上担心过。但我觉得我选择Patreon这类平台的原因是,我特意设置了整个赞助机制,这样除了改进Vue之外,我不需要做任何回报。我看到其他一些开源项目会设置赞助等级,并总是试图提供回报,因为通常当你发起赞助活动时,人们期望根据他们承诺的金额获得一些具体的回报。比如,如果你每月赞助20美元,可能会得到一些小礼品或贴纸;如果每月赞助500美元,你可能需要提供独家更新或特别内容。但我没有设置任何这样的回报。

I definitely worried about it to some extent. But I think the reason I went with something like Patreon was I deliberately set up the whole sponsorship deal to be to to so that I don't have to actually do anything in return other than working on Vue. A lot of the things I saw some other open source projects do is they set up these sponsored tiers and they try to always because typically when you set up a patron campaign, people expect to get something in return specifically for the amount of amount of money they pledged. Say, if you pledged, say $20 a month, you would give some little swag stickers in return, or if they spend $500 a month, you would have to say, give them exclusive updates or something special. But I didn't set up anything like that.

Speaker 1

我基本上只是说,如果你赞助足够多的钱,你会在网站上获得更大的logo,仅此而已。你会通过我们的网站获得一些曝光,但我不会因为你给了更多钱就做任何特别的事情。我们接受这些资金是为了能够花时间改进Vue,让它变得更好。

I was pretty much just saying, if you pledge enough money, you'll get a bigger logo on the website and that's it. You get some exposure through our website, but I wouldn't actually do anything special just because you give us more money. We take the money so that we can spend our time working on Vue to make it better.

Speaker 0

那么对于这些赞助Vue的个人和公司来说,他们能得到什么回报呢?尤其是在早期,你实际上并没有太多可以提供的。你是如何说服他们支持你的项目的?

And what's in it for these people and these companies who are sponsoring Vue, especially at the beginning when you didn't really have that much to offer? How are you convincing them to support your project?

Speaker 1

我认为在最初阶段,最早的一批赞助者或捐赠者支持Vue主要是因为他们正在使用它并且喜欢它。他们只是不希望这个项目夭折,就这么简单,对吧?这一点很明确,因为我在Patreon上明确表示过,这是我的主要收入来源,我需要从中赚取足够的钱,才能将时间投入到Vue上。所以对他们来说,这很大程度上是因为他们正在基于Vue构建自己的产品。

I think in the beginning, the first initial sponsors or donors mostly was supporting Vue because they were using it and they liked it. And they didn't want the project to die, simple as that. Right? It was pretty clear that like, because when I On the Patreon, I made it clear that this is my primary income source and I would I need to make enough money from this so that I can, dedicate my time on Vue. So for them, it was pretty much like they were building their product on top of Vue.

Speaker 1

因此,Vue能够持续维护并变得更好,是符合他们自身利益的,对吧?所以对他们来说,这几乎像是一种投资,只是不那么直接。回报不会在你花钱的那一刻就直接体现,但对他们而言,投入资金能让他们更有机会确保Vue在长期内保持相关性、得到维护并且稳定。我认为这对他们来说是一个明智的决定。

So it's in their best interest that Vue is continue to be maintained and be made better, right? So for them, it's almost like an investment, just not so direct. The return is not so directly reflected the moment you spend the money, but for them putting down the money gives them a better chance of view being relevant and maintain and stable for the long run. And I think that's a wise decision on their part.

Speaker 0

是的,确实如此。我的意思是,这并不是说,嘿,你付钱,我将来会提供一些理论上的价值。而是你整个公司的产品都建立在这个框架之上。如果它消失了,你将需要花费数十万甚至数百万美元从头开始重写你的产品。因此,他们每月贡献几百或几千美元是值得的。

Yeah, it really is. I mean, this is not, hey, you know, pay for view and I'll provide you some, you know, theoretical value in the future. This is your entire company's product is built on top of this framework. And if it goes away, it's going to cost you many hundreds of thousands, if not millions of dollars to rewrite your product from scratch. And so it's worth them contributing a few 100 or thousand dollars a month.

Speaker 1

是的。而且很有趣的是,我意识到很多公司都说,当他们构建某个东西时,最终发现他们所构建的基础已经过时或不存在了。他们不得不雇人完全重写这个东西。重写现有产品的成本非常高昂,对吧?

Yeah. And also it's funny because, I realized, like, a lot of companies say that when they build something and they realize in the end, the the thing they built they are built on top of is dead or gone. They would have to hire someone to completely rewrite the thing. The the cost of rewriting an existing product is is huge. Right?

Speaker 1

这就像是支付保险费,以确保你在两年内不需要重写你的应用。

It's like you're just like paying an insurance so that you don't have to rewrite your app in two years.

Speaker 0

有趣的是,有很多开源项目对大公司的成功至关重要,但它们却未能像Vue那样成功获得大量捐赠。你认为这是为什么?是什么阻碍了它们?又是什么帮助了你?

What's interesting is that there are lots of open source projects that big companies really depend on that are crucial to their success and yet that haven't been able to successfully garner the kinds of donations that you've gotten for Vue. Why do you think that is? What's hindering them? And what is it that's helping you?

Speaker 1

我认为这有两个方面。首先是项目类型,我们看到Vue作为一个前端框架,它与使用它的开发者有着非常直接的互动。比如说,如果一家公司正在使用Vue构建产品,他们的开发者几乎每天、几乎在所有编写的代码中都在与Vue互动。他们每天都在使用Vue的API,阅读Vue的文档。

I think there are there are two aspects of this. The first is, the type of projects, we're we're seeing. Vue is, as a front end framework, it interacts very directly with the developers using it. Say if a company is building a product using Vue, their developers interact with Vue almost every single day, almost for all the code they write. They are interacting with Vue's API, they're reading Vue's documentation on a daily basis.

Speaker 1

这种高曝光度让人们更容易为赞助决策找到理由,比如我们会说,我们赞助这个高曝光度的项目,间接地,我们的品牌认知度可能会因为我们的捐款而获得更好的回报。我认为这是原因之一。如果你看看像Babel这样的项目,它主要也是由志愿者维护的,实际上我知道唯一全职工作的人是Henry Ju,我经常和他交流。他实际上在努力争取足够的资金来支持他全职工作,这相当困难。但Babel同样非常重要。

This high exposure made it easier for people to justify the decision, say we are sponsoring this high exposure project and indirectly we're gonna, you know, our brand recognition is probably getting better return given the money we're donating. I think that's part of it. If you were to look at a project like Babbel, which is also mostly maintained by volunteers, actually the only person working on it full time I know is Henry Ju, who I actually talk with a lot. And he's actually having, quite, quite a bit of hard time trying to, secure enough funding for him to work on full time. But Babel is huge as well.

Speaker 1

对于那些不熟悉Babel的人来说,它是一个库,可以让你编译用未来语法编写的JavaScript。那些浏览器还不支持的语法,Babel可以帮助你将其编译成今天浏览器中可以运行的JavaScript。所以它是JavaScript生态系统中一个非常重要的项目,被数百万人使用。

For those of you who are not familiar with Babel, it's a library that allows you to compile your JavaScript that's written in a future syntax. The syntax that's not in the browsers yet, Babel can help you compile those into JavaScript that works in the browsers today. So it's a very important project in the JavaScript ecosystem used by millions of people.

Speaker 0

是的,我在独立开发者项目中使用它。

Yeah, I use it for indie hackers.

Speaker 1

是的。然而,它很难像Vue那样实现货币化,因为它在你的基础设施中几乎是隐形的。你设置一次,基本上就完成了。这使得企业更难说,这是我们想要作为赞助商与之关联的东西,因为赞助的本质,顾名思义,是这些赞助商希望通过合作获得曝光。这种模式在项目具有非常高曝光度和与开发者互动比例时效果最好。

Yeah. Yet it's very difficult for it to, to say monetize in a way that Vue does because it's so invisible in your infrastructure. You set it up once and you're pretty much done with it. So this makes it more difficult for these businesses to say, this is something we want to get associated with as a sponsor because sponsorship is naturally, you know, the name entails that these sponsors want exposure through the partnership. And this model works best when you have a project that has a very high exposure and interaction ratio with the developers.

Speaker 0

这很有趣。你有所有这些竞争,这几乎对你有帮助,因为开发者对他们最喜欢的前端JavaScript框架非常直言不讳。人们喜欢说他们是Vue的粉丝,或者是React、Ember或其他什么的粉丝,他们就是会大量谈论它。而像Babel这样的东西,它只是在后台默默地运行,做得很好。但是,我不认识很多Babel的粉丝。

It's interesting. You've got all this competition That almost helps you in that developers are so vocal about what their favorite front end JavaScript framework is. People like to say that they're a fan of Vue or a fan of React or Ember or something, and it's like they just talk about it a ton. Or something like Babbel, it's just sort of invisibly hums along in the background, and it does its job well. But, like, I don't know very many Babbel fans.

Speaker 0

就像是,除了Babel,还有什么别的可以成为粉丝的东西呢?

It's like, what else is there to be a fan of instead of Babbel?

Speaker 1

是的。这几乎就像是,没错。我觉得这很有趣,因为框架之间的竞争有时会演变成更像体育迷之间的那种站队。人们就像是在说,我喜欢这个而不是那个。我个人并不介意在比较框架时有一些,你知道的,一些趣味性的东西。

Yeah. It it's almost like, yeah. I think it's funny because the frameworks competition, sometimes it turns into more like a sport fan ship kind of things. People are just like, I like this versus that. I personally don't mind a little, you know, a little fun and such when you're comparing frameworks.

Speaker 1

但是,我不太喜欢的是有些人喜欢用战争比喻来比较,好像我们是在试图消灭对方。我不认为是这样。大多数时候,这些不同的框架实际上是为了满足不同情境下开发者略微不同的品味和需求。但这种友好的竞争,我认为,实际上确实有助于提高曝光度。

But, the thing I'm less fond of is some people like to compare it as a war metaphor where we're just like trying to kill each other. I don't think it's the case. Most of the time, these different frameworks actually exist to kind of cater to slightly different tastes and needs for developers in different situations. But but this kind of friendly competition, I would say, actually does help in terms of exposure.

Speaker 0

网上肯定有成千上万篇文章讨论Vue.js与React、Angular等的对比。你之前提到开源业务是不同的。不同的企业必须有不同的商业模式,不同的项目要想成功并盈利,就必须有不同的发展方式。比如,我和Sidekiq的Mike Perham聊过。

There's gotta be the thousand articles written online about Vue. Js versus React versus Angular, etcetera. You mentioned earlier that open source businesses are different. And that different businesses have to have different business models, different projects have to have different ways that they try to grow if they wanna succeed and make money. I talked to Mike Perham, for example, of Sidekick.

Speaker 0

Sidekiq是一个开源项目,它几乎是在后台隐形运行的。你设置一次,它就能工作。然而他能够将其货币化,并且我记得他每年能赚大约一百万美元,这很惊人。他的做法是,我认为,对特殊功能和客户支持收费。我的问题是,你是如何看待那种模式,并与你为Vue所做的进行协调的?

And Sidekick is an open source project that does live sort of invisibly in the background. You set it up once and then it kind of works. And yet he's able to monetize it and also make like I think he's making something like a million dollars a year, something crazy off of it. And what he's doing is, I think, charging money for special features and for customer support. My question for you is, you know, how do you look at something like that and reconcile with what you're doing with Vue?

Speaker 0

你知道,你为什么决定走捐赠路线,而不是直接向客户收取额外的客户支持或功能费用呢?

You know, why did you decide to go the donations route rather than doing something where you're charging customers directly for extra customer support or extra features?

Speaker 1

开源项目有几种不同的盈利方式。人们最容易想到的一种就是通过提供支持来收费。有些公司使用我的项目,如果他们想要获得专门的支持,他们就付钱给我,我帮助他们。我最初规划时考虑过这个,但我意识到这实际上和全职做咨询没什么区别。我本质上是在用我的时间换钱。

There's a few different ways you can monetize open source. And one of the easiest thing that people can think about is like you charge money for support. Some companies using my project and if they won't get specialized support, they they give me money and I help them with them. I thought about this when I was first setting out, but I realized this is actually nothing different from say just doing consulting full time. I essentially have to trade my time for money.

Speaker 1

如果我这样做是为了赚更多钱,实际上我是在减少我能花在Vue本身上的工作时间。所以我很早就意识到这对我行不通,这不是我想要的。另一种开源模式是提供一个免费增值版本, essentially就是Sidekiq在做的事情。你有一个完全免费的开源社区版,但对一些附加功能收费。我意识到这对于像Vue这样的东西来说不太合理,因为Vue的优势在于,我们拥有巨大的影响力。我们希望降低门槛,让前端编程尽可能地对更多开发者开放。

And if I do that in order to earn more money, I'm actually cutting my hours that I can work, to to to be spent on Vue itself. So I realized that very early on that this wouldn't work for me, and this is not the thing I want. And another type of, open source is you would have a freemium version, essentially what Sidekiq is doing. You have this open source community edition, but it's completely free, but you charge, money for some additional features, which I realized isn't doesn't really make sense for something like Vue because what Vue excels has, we have this enormous reach. We want to lower the barrier, want to make front end programming accessible to as many developers as possible.

Speaker 1

对像高级功能这样的东西收费,完全违背了Vue的初衷。所以这对我们来说也不太可行。另外,捐赠可能是最无忧无虑的收入方式,因为它在某种程度上几乎是被动的。虽然我肯定需要继续开发Vue,但这是我乐于做的事情,对吧?所以对我来说,我不需要做太多额外的工作来确保每个人按时付款,例如,这部分由Patreon为我处理了。

Charging for like premium features just goes completely against what Vue is made for. So that didn't really work for us either. So, plus, donation is probably the least kind of the most worry free way of income generation because, it's almost passive to some extent. Although I definitely need to keep working on Vue, but that's what I enjoy doing, right? So for me, I don't need to do too much, additional work in making sure these, everyone pays money on time, for example, that's handled by patron for me.

Speaker 1

这就是他们抽取分成的原因。如果他们能为我处理这些,我就能把更多时间专注于我想做的事情上。另一个方面是,因为Vue是一个前端库。大多数时候,很难对人们在前端使用的库收取许可费,特别是当你面对像React和Angular这样完全免费的竞争对手时,对吧?React和Angular的存在基本上意味着,不可能在收取许可费的同时还与它们竞争。

That's why they take a cut. And if they can do that for me, then I can focus more time on, I'm just working on the things I want to work on. Another aspect of this is because Vue is a front end library. Most of the time it's really hard to charge licensing for some people, for libraries that people just use in the front end, especially when you have competitions like React and Angular, which are completely free, right? So the existence of React and Angular pretty much makes, pretty much means that it's impossible to charge a license fee and compete with them at the same time.

Speaker 1

你必须在方方面面都做得比它们好上几个数量级,才能让人们觉得付费是合理的。

You would have to be orders of magnitude better in every way to, for people to justify that position.

Speaker 0

是的,这个观点非常好。你知道,我们讨论过竞争的好处,但其中一个弊端就是它们会影响定价。当你的竞争对手免费时,你自己也不得不免费。但我也很喜欢你之前说的,你的商业模式反映了你想要的生活方式。

Yeah. That's a really good point. You know, we discussed the advantages of competition, but one of the disadvantages is that they kind of affect the price point. And while your competitors are free, then you have to be free yourself. But I also really like what you said earlier, which is that your business model is a reflection of the way that you wanna live your life.

Speaker 0

你知道,这是你从头开始创建的项目。为什么要把它构建成一种最终让你不得不做支持工作或咨询的模式,而这并不是你想要的生活方式呢?

You know, this is your project that you created from the ground up. Why would you structure it in such a way where you end up having to do support work or consulting when that's not how you wanna live your life?

Speaker 1

是的。我认为这就是关键点,因为,就像Indie Hackers所倡导的,人们进行这些小规模创业,它们与你选择的生活方式有很强的关联性,对吧?我想起我读过蒂姆·费里斯的《每周工作4小时》,这本书对我影响很大,因为我意识到,我当时在做一份日常工作,同时利用业余时间开发我真正想做的项目,但我并不开心,因为它占用了我的所有空闲时间。我意识到,如果我能从事这个我如此热爱的事情并从中赚钱,我的生活质量将获得巨大的提升。

Yeah. I think that was the the the point, because, like, Indie Hackers is all about people, doing these little ventures where it's, it it has a strong correlation to the lifestyle you bought. Right? And I think, I read a I actually read the The Four Hours Workweek by, Tim Ferriss, which kind of, was a pretty influential book on me because I realized, like, I was doing a day job and working on something that I really wanted to work on in my spare time, and I wasn't really happy because it's taking up all my free time. And I realized if, if this thing I'm so passionate about, I work on it and I can make money from it, I'm I'm getting such a huge bonus in quality of life.

Speaker 1

我就能把通常花在日常工作上的所有时间,用来陪伴家人和享受生活中其他我想做的事情。所以这对我来说是一个非常非常重要的启示。

I would get all these, the time that I usually spend on my day job that I can actually spend with family and do the other things in life that I want to enjoy. So that was really, really important revelation for me.

Speaker 0

是的。你基本上是在活出梦想,最大化作为个人的自由,做任何你想做的事。让我问问关于Patreon的情况。Patreon允许人们以一种定期的方式捐款。所以你提到,你不需要每个月联系这些赞助人确保他们会付款。

Yeah. You're basically living the dream and maximizing your freedom as a person to do whatever it is that you want. Let me ask you about Patreon. So Patreon allows people to make donations in sort of a recurring fashion. So you mentioned, like, you don't have to reach out to these sponsors every month to make sure they're gonna pay.

Speaker 0

他们会自动被扣款。Patreon会抽取一部分费用,你无需担心。所以定期付款的部分都处理好了。但你是如何让人们一开始就成为赞助人的呢?你在销售方面做了多少努力,又有多少是让人们自行逐渐加入的?

They just automatically get charged. Patreon takes a cut, and you don't have to worry about it. So that recurring part is all taken care of. But how did you get people to become sponsors in the first place? How much are you doing sales, and how much are you just letting people sort of trickle in on their own?

Speaker 1

信不信由你,这完全是自然形成的。我确实在我们的网站上放了Patreon页面的链接。Vue网站上有一个叫做'支持Vue开发'的部分。当他们访问网站时,首先会看到现有赞助人的列表,他们提交了logo。所以他们会看到一整面logo墙,然后觉得,嘿,真酷。

Believe it or not, it's completely organic. I do put links to the Patreon page on our website. There is a section on Vue's website called, support Vue's development. And when they go to their website, they will see first, obviously, they will see a list of existing patrons who sent in the logos. So they see a wall of logos and they're like, hey, cool.

Speaker 1

我们也想让我们的logo出现在上面。那我们能做什么呢?然后他们会看到Patreon页面的链接,上面解释了不同级别的福利。比如你捐的钱越多,你的logo就越大,基本上就是这样。所以我实际上没有主动联系任何公司。

I want we want to get our logos on there. So what what what can we do? Then they get the link to the Patreon page where you get a just an explanation of the benefits of different tiers. Like the more money you donate, your the bigger logo you get, and that's pretty much it. So I don't actually do active reach out to any companies.

Speaker 1

我认为目前我们网站上所有的赞助人都是完全自然产生的。

I think all the patrons currently on our website is entirely organically generated.

Speaker 0

这太棒了。这真的证明了Vue有多么受欢迎和知名。否则这是不可能发生的。是的。创业界经常重复这样一句格言:唯一重要的是你的产品。

That's amazing. And that's really a testament to just how popular and well known Vue is. It's not something that could happen otherwise. Yeah. There's this maxim that often gets repeated in the startup world that the only thing that matters is your product.

Speaker 0

只要你打造出最好的产品,那么即使你不擅长销售也没关系,忽视营销也没关系,找不到分销渠道也没关系。你的产品仍然会成功。不过我对这个说法相当怀疑。

As long as you build the best product, then it doesn't matter if you're stuck at sales. It doesn't matter if you neglect marketing. It doesn't matter if you don't find any distribution channels. Your product is still going to win. Now I'm pretty skeptical of that.

Speaker 0

我认为对于99%的企业来说并非如此,但对Vue而言似乎确实是这样。你怎么看?Vue的成功有多少归功于它作为一个框架本身的质量,又有多少归功于你关于如何发展它、让更多人使用的正确决策?

I don't think that's true for the 99% of businesses, but it seems like for Vue, it kind of has been true. What would you say? How much of Vue success is due to the quality of Vue as a framework itself versus you making all the right decisions about how to grow it and get into more people's hands?

Speaker 1

我认为大部分功劳应该归于持续完善Vue本身,确保它的优秀。到目前为止,我尽量将更多时间花在Vue的开发上,而不是管理事务上。事实上,我花在主动扩大赞助群体或联系赞助商上的时间非常非常少。我基本不做这些,因为大多数时候我觉得只要基础足够大,那些有兴趣赞助的人自然会找上门来。

I think I would attribute most of it to just keep working on Vue itself, making sure it's good. So far, I try to spend as much time working on Vue itself compared to the time I actually need to manage things. And in fact, I think I spend very, very little time trying to actively increase the, say, patron base or reach out to sponsors. I don't actually do that. Because most of the time I feel like if you make the base big enough, then these people who are interested in sponsoring naturally tickle in.

Speaker 1

如果我努力争取更多赞助商,或许能获得更多捐赠,但我还需要考虑投入的时间成本,对吧?我花在争取一个赞助商上的时间,本可以用来开发一个新功能。对我而言,后者更让人满足,而且从长远来看可能也更有效,因为新增的功能是永久性的,它能提升整体品质,保持项目生命力,长期来看反而能带来更多赞助机会。

I could probably squeeze out more donations if I actually, you know, try to get more sponsors, but I also need to think about the the the invest of time required to do that, right? The same amount of time I invest in trying to secure one more sponsor, this is the time I could just spend on cranking out a new feature. For me, the latter is more satisfying. And also it probably works for the long term better as well because the feature you add in there, it's in there. It makes your whole thing better and makes it more relevant, stay there longer and gives you more chance to get new sponsors for the long term.

Speaker 0

这真的很酷。但我觉得对很多企业来说,情况并非如此。尤其是刚起步的初创公司,如果产品还没打磨好,可能整天添加功能也吸引不到更多用户。你提到了写的那篇博客文章,关于Vue发布第一周的总结。

That's really cool. And I think for many businesses, doesn't quite work that way. Especially if you're a fledgling startup and you haven't quite built the right product yet. You can add feature after feature all day, every day and never get any more users. You mentioned this blog post you wrote, the postmortem of your first week after launching Vue.

Speaker 0

我现在正在看这篇文章。你谈到了用户数量、网站访问量、GitHub上的星标数。当时大概是几千或几百的量级,比如第七天结束时GitHub上有615个星标。而如今你有大约11.9万个星标,从那么小的数字发展到今天的规模,这条路径是怎样的?

And I'm looking at it right now. You kind of talk about how many users you have, how many visits to your website, how many stars you got on GitHub. And you're around the low thousands, Mark, or low hundreds, Mark, where you had, you know, 615 GitHub stars at the end of day seven. Today, if you have something like a 119,000 stars on GitHub, what was the path like to go from, you know, that small number to where you are now?

Speaker 1

仔细想想,这其实是一段相当长的旅程。让我想想...那篇博客发表于2014年2月,对吧?到现在已经四年八个月了,实际上快四年九个月了,考虑到写博客之前的时间,差不多五年了。

It's actually quite a long journey, if you think about it. Let me when was the the blog post was published in 2014, February 2014. Right? It's four four years, eight months now. Actually four years, nine months, almost five years considering the time that led to that moment.

Speaker 1

这是个非常漫长的过程。中间有几个转折点让我意识到'啊,这其实是下一个阶段了'。但在最初的很长一段时间里,Vue完全处于弱势地位,我根本没想过它能做多大。我只是想着要把这个东西做得更好。当我们在GitHub上达到3万星标时,我真的非常兴奋。

And that's a very long process. There were a few like pivot points in between where I realized, oh, this is actually the next stage. But I think for the very long time in the beginning, was completely just like in a, in an underdog position where I didn't really think about how big I could become. I was just trying to say, I want to make this thing better. And I was, I was actually generally excited when we reached, 30,000 stars on GitHub.

Speaker 1

那是我感觉'哦,我们真的做大了'的时刻。但我想就在几个月后,就突破了5万星。我当时想,这太快了。然后我就开始不再关心GitHub星标数了,甚至都不去查看了。

That was kind of the moment where I felt, oh, we're actually big. But, I think just a few months later, crossed 50,000. I was like, that was fast. Then I started then I just stopped caring about GitHub Stars. I don't even check it.

Speaker 1

什么

What

Speaker 0

驱动了所有这些增长?我的意思是,Vue作为一个框架很棒,但我们之前提到过,你是在与React竞争,在与Angular竞争。这两个框架都是由资金雄厚、拥有无限营销预算的大公司创建的。然而今天,你在GitHub上的星标数比它们都多。

was driving all this growth? I mean, Vue was great as a framework, but we mentioned earlier, you're going up against React. You're going up against Angular. These are two frameworks created by very well funded companies with endless marketing budgets. And yet, today, you have more stars on GitHub than both of them.

Speaker 0

这太疯狂了。我的意思是,你是在和志愿者一起工作,而且这件事完全是你一个人开始的。除了开发Vue之外,你用了哪些策略来取得这样超乎寻常的成果?比如一开始在Hacker News上发帖和写博客文章,这些是你持续在做的事情吗?

And that's crazy. I mean, you're working with volunteers, and you started this thing all by yourself. What are some of the strategies you use to achieve this outsized result besides just working on Vue? I mean, mentioned posting on Hacker News in the beginning and writing blog posts. Is that something that you continue to do?

Speaker 1

所以我并不经常写关于Vue运营方面的文章。大多数时候我们在Medium上发布的文章,都是关于我们钻研的技术内容。比如我们发布的新功能、新项目。我认为,随着时间的推移,让我们能够与这些大公司支持的框架竞争的,我想就是一致性。而且,我们几乎一直保持着,现在也还是这种'挑战者'的心态,总觉得上面还有一个更高的目标等着我们去努力。

So I don't I don't write posts about like, the operations side of Vue much. Mostly when we release posts on Medium, it's about the technical stuff that we worked on. Like the new features we launched, the new projects we launched. I think over time, allowed us to compete with these like big company backed frameworks is just, I think consistency. And, we were pretty much always, we still are kind of like in this underdog mindset where there's a higher goal up there we can work towards.

Speaker 1

我认为这是好事,因为总会有这些新想法。比如React至今仍在推出很多新理念。实际上,我对React团队怀有极大的敬意,因为他们几乎一直在提出所有这些引领潮流的新想法,让一切都变得不同。而Vue从这些竞争中学习了很多,才达到今天的地位。作为一个个人项目起步,保持这种一致性真的非常重要。

And I think that's good because, there's, there's always these new ideas. Like React today is still coming out with a lot of new ideas. Like, I have, actually, I have a huge amount of respect to the React team because they are pretty much, coming up with all these leading new ideas that kind of, make everything different. And Vue learned a lot from these competitions in order to to get where it is today. In terms of starting as an individual project, it's really important that you just have this consistency.

Speaker 1

我想有一段时间我感到压力很大,觉得他们有这么多团队、资金和资源来做这些事情。我为什么还要继续开发Vue?它永远不可能像他们的那样受欢迎。但后来我意识到,我并不是真的想打造这个东西来与他们竞争。我是想通过打造这个东西来满足使用我库的开发者的需求,对吧?

And I think there was a period of time where I felt the pressure was like, they have all these teams, these money and resource to work on these things. Why would I keep working on Vue? It's never going to get as popular as theirs. But then I realized, you know, I wasn't really trying to build this thing to compete with them. I was trying to build this thing to fulfill a need of the developers that are using my library, right?

Speaker 1

他们很高兴使用我的库。而且,我开发它的目标并不是说要让所有React用户都来用Vue。我的目标是让那些已经喜欢Vue的人更喜欢它,并让那些没有使用任何框架的人有可能选择Vue。我意识到整个网络生态系统的蛋糕非常大。仍然有很多开发者没有使用过任何框架,这对所有现有框架来说都是巨大的机会。

They are happy using my library. And, my goal of working on it is not to say, I want to get all the users, React users to use Vue. My goal is to get people who would like, who already like Vue, like it better, and get those people who are not using any framework to potentially use Vue. We realized like the, I realized the whole pie for all this like web ecosystem is huge. There are still a lot of developers who have not used a single framework, and these are still like big opportunities for, for all these frameworks out there.

Speaker 1

我们的工作是确保能够吸引这些开发者,让他们的生活更轻松,让他们能更轻松地构建想要的东西。如果我们不能实现这个目标,我并不在乎Vue是否比React或Angular更大。那不是我的目标。

And our job is to make sure you can capture these, developers, make their lives easier, allow them to build the stuff they wanna build easier. And if we can't achieve that goal, I don't really care about whether Vue is bigger than React or is bigger than Angular. That's not my goal.

Speaker 0

你的目标是什么?我的意思是,你如何衡量Vue对世界产生的影响?你是计算使用人数吗?是统计下载量吗?你说过你不再看GitHub上的star数了。

What is your goal? I mean, how do you measure the impact that Vue is having on the world? Do you count how many people are using it? Do you count the number of downloads? Do you look at you said you stopped looking at your stars on GitHub.

Speaker 0

你怎么知道自己的工作做得好不好?

How do you know if you're doing a good job?

Speaker 1

确实有一些指标可以参考。NPM下载量非常不准确。GitHub的star数其实也是一个很不准确的指标,因为它并不能直接反映有多少人真正在产品中使用。那更像是一种兴趣表达,有些人可能甚至都没用过,他们会点star以便将来回来看。

There are some some metrics that you look at. So NPM downloads is very inaccurate. GitHub stars is actually a very inaccurate metric as well because it doesn't directly correlate to how many people are actually using it in your product. That's more like an expressive interest, people who may not even have used it. They will start it so that one day they will come back and look at it.

Speaker 1

所以我个人更关注的指标是使用我们开发者工具扩展的人数。这是一个安装在Chrome浏览器中的扩展程序,当你开发Vue应用时,可以用它来调试应用。如果你在使用这个工具,很可能意味着你确实在用Vue构建实际项目。很便利的是,Chrome应用商店会提供每周活跃用户数,这个数据非常有用。

So the more, relevant metrics that I look at personally is the amount of people using our developer tools extension. It's a Chrome extension that you install, in Chrome. And when you develop a Vue application, you can use that extension to debug your application. So this is a tool any, if you are using this tool, it likely means you're actually using Vue to build real stuff. So I look at that and, conveniently Chrome, the Chrome Web Store actually gives you the number of users that's, the weekly active users using it, which is really nice.

Speaker 1

目前我们在全球大约有69万用户,这大约是React开发者工具用户数的一半。

So I think currently we're around like 690,000 users around the globe, which is approximately a half of reactive tool users.

Speaker 0

这太了不起了。

That's huge.

Speaker 1

是的。这个数字是我个人在评估整体增长时用作参考的。实际上,最近有一个名为'State of JS'的项目,这是一个年度项目,他们每年都会进行一次大型调查并发布大量统计数据。这实际上也提供了一个很好的参考,因为我们看到的是用户使用百分比。他们通过统计使用过并会继续使用的人、使用过但不再使用的人、未使用过但想学习的人,以及未使用过也不想了解的人来进行统计。

Yeah. This number is the the one that I personally, use as a reference when we were gauging overall growth. Actually, there was just recently a, there is a project called State of JS, which is an annual project where they do a big survey every year and publish a lot of statistics. That actually provides a good reference as well because we're seeing used user percentage. They actually do the statistics, by counting users who have used it and would continue using it, users who have used it but will not use it anymore, and users who have not used it but wanted to learn, and users who not use it but don't want to learn about it.

Speaker 1

所以你有所有这些类别,而Vue的状态随着时间的推移在增长,我认为我们在今年的版本中刚刚达到了最高的满意度比例,这对我们来说是非常鼓舞人心的。

So you have all of these categories and Views status is growing over time and we get the I think we just hit the highest satisfaction ratio in this year's edition, which is something really encouraging to us.

Speaker 0

我很好奇Vue的成功对你个人层面产生了怎样的影响,我相信你现在的生活与你首次发布Vue时相比已经大不相同。你最喜欢哪些变化,最不喜欢哪些?

I'm curious how Vue's success has impacted you on a more personal level, and I'm sure your life is way different now than it was when you first released Vue. What are some of the changes that you like the most, and what do you like the least?

Speaker 1

最好的部分是能够每天从事自己喜欢的工作。而且我可以完全自主决定自己的日程安排。我可以按照自己喜欢的节奏工作。如果我觉得这周效率不高,我可以放慢节奏。但如果我状态好,我可以连续几天每天工作十二个小时。

The best part is, being able to just work on something you like on a daily basis. And I get to also completely, determine my own schedule. I can work out at the pace that I like. If I feel that I'm less productive this week, I can, you know, take it slow. But if I'm in the zone, I could just, you know, keep working twelve hours a day, a few days straight.

Speaker 1

我可以根据自己的节奏来调整,而不是总是要赶由上级任意决定的截止日期。另一个方面是因为我现在在家工作,我认为我享受到了更好的工作与生活平衡,对吧?下班后,我直接走下楼。我在楼上的办公室工作,对吧?一天工作结束后,我只需走下楼就能立刻与家人在一起。

I can sort of adjust it to my own pace instead of always having to hit a deadline that's arbitrarily decided by someone higher up. And, another aspect is because I now work from home, I get a I think I enjoy much better work life balance, right? When I get off work, I'm directly just I walk downstairs. I I work in my office upstairs, right? When I'm done for the day, I just walk downstairs and with family instantly.

Speaker 1

在此之前,当我在纽约市工作,住在泽西时,我不得不通勤,每天花将近三个小时在公交车上,这真是太糟糕了。所以这些都是很多小好处。而最糟糕的部分可能只是整体的持续压力,因为现在一切都掌握在自己手中。所以如果你懈怠,对吧,你就有失败的风险。而在大公司里,你会感觉更安心一些,就像,你知道,这家公司太大而不能倒。

Before that, when I worked, in New York City, and I lived in Jersey, I had to commute, spend like close to three hours every day on a bus, is just terrible. So these are a lot of little perks. And the worst part about it is probably just the overall, the constant pressure because now everything is in your own hands. So if you slack off, right, you're risking to fail. Whereas in the big company, you feel a bit more comfortable just like, you know, this company is too big to fail.

Speaker 1

我可以,你知道,慢慢工作,不用太担心。但是当你为自己工作时,就像任何独立开发者都必须承受这种持续的压力,只想确保自己做了足够的工作。你要不断确保你的商业模式仍然有效,验证你的想法。思考你的产品在未来三到四年会如何立足。你必须时刻不停地思考所有这些事情。

I can just, you know, work slowly and not really worry too much. But, when you're working for yourself, you know, is just like any indie developer would have to have this constant pressure, just want to make sure you're doing enough work. You're constantly making sure your business model is still valid, validating your ideas. Think about how your product will stand in the next three to four years. You just have to constantly be thinking about all these things all the time.

Speaker 0

是的,完全正确。就好像所有的重担都压在你肩上,如果事情不顺利,真的没有任何借口。没有别人可以责怪,只有你自己。

Yeah. Exactly. It's like all the weight is on your shoulders and there's really no excuse if it doesn't work out. There's nobody else to blame. It's just you.

Speaker 1

是的,是的,完全正确。

Yeah. Yeah. Exactly.

Speaker 0

所以很多听众可能是正在考虑进入开源领域、构建一个可以某种方式变现的项目,或者为其他开发者构建工具的开发者。对于刚起步处于这个位置的人,你有什么建议?他们应该避免犯哪些错误?

So a lot of people listening in are perhaps developers who are considering getting into open source and building a project that they can somehow monetize or maybe building a tool for other developers to use. What's your advice for somebody just starting out in this position and what mistakes should they avoid making?

Speaker 1

所以当我构建Vue时,我并没有真正考虑过变现。但如果你从一开始就以变现为目标构建某样东西,我不是说这行不通。它肯定可以行得通。只是你心目中的变现模式必须与你正在构建的产品——也就是你正在构建的软件——有很好的契合度,对吧?正如我之前讨论的,像Sidekiq这样的东西自然更适合免费增值模式,因为它是一个服务器端组件,当你有东西运行在他们的服务器上时,为公司构建这类产品更容易。

So when I built Vue, I didn't really think about monetization. But if you are building something with the goal of monetization from day one, I'm not saying that it doesn't work. It it definitely could work. It's just that the monetization model that you have in mind must have a good fit with the product that you're building, right, with the with the software you're building. As I discussed before, things like Sidekiq naturally, fits better with a freemium model because it's a server side component, which these companies it is easy to build for when you have something running on their servers.

Speaker 1

而像Vue这样的前端框架在这种模式下就有点难做了。但由于Vue的高曝光度,我们可以走一种众筹赞助的路线,这对服务器端项目不一定有效,对吧?所以你需要,找到这些,最好是有一个你可以效仿的相近参考项目,但很多时候也需要一些试错。所以当你说你想从一开始就做开源并以此赚钱时,肯定存在风险。事实上,如果你的目标是拥有一个成功的企业,我会考虑首先将其视为一个产品,并将开源视为补充你战略的东西,而不是说我想同时做开源和赚钱。

Whereas a front end framework like Vue is a bit harder to to do in that mode. But due to Vue's high exposure, we can go to sort of a a crowdsourced sponsorship route, which doesn't necessarily work for a server side project, right? So you need to sort of, find these, it's it's best if you have a close reference project that you can sort of model after, but a lot of times it also takes some a bit of trial and error, So there's definitely risk involved when you say you wanna start out from day one and do it open source. So in fact, if your goal is to say, have a successful business, I would consider treat it as a product first and consider open source as something that complements your strategy instead of, say, I wanna do open source and make money at the same time.

Speaker 0

这真是很棒的建议。而且我认为这个建议可以更广泛地适用于几乎所有正在创业的人。没有一本单一的剧本能确切告诉你应该如何为你的产品变现。这真的取决于你在构建什么,以及你业务的所有这些不同部分是如何相互关联的。所以你确实需要思考:我到底在构建什么?

That's really great advice. And I think it's advice that could be applied more broadly to pretty much anyone building a business. There is no one single playbook that's going to tell you exactly how you should monetize for your product. It really depends on what you're building and all of these different pieces of your business are connected. So you really have to think about what am I building?

Speaker 0

我的听众是谁?当你决定要收取多少费用以及你的商业模式将是什么的时候。总之,非常感谢你,Evan,能来参加播客。真希望能和你多聊一会儿。你能告诉听众们在哪里可以了解更多关于你、Vue以及你正在做的事情吗?

Who's my audience? When you're deciding how much you're gonna charge and what your business model is going to be. Anyway, thank you, Evan, so much for coming on the podcast. I wish I could have you for longer. Can you tell people listening where they can go to learn more about you and Vue and the things that you're up to?

Speaker 1

当然。实际上我不再更新我的个人网站了,但你可以在Twitter上关注我。我的用户名是YouYuxi。那是我中文名字的拼写。Y o u y u x i。

Sure. So I don't actually update my personal website anymore, but you can follow me on Twitter. My handle is YouYuxi. That's the spelling of my Chinese name. Y o u y u x I.

Speaker 1

Vue.js,我们的网站是vuejs.org。那里有我们的文档和所有信息。如果你的公司有兴趣赞助我们,请务必联系我们。

Vujis, our website is at vujis.org. That's where our documentation and all the information. If your company is interested in sponsoring us, please do.

Speaker 0

好的。再次感谢你,Evan。

Alright. Thanks again, Evan.

Speaker 1

谢谢你。

Thank you.

Speaker 0

如果你喜欢听这次对话,并且想用一种非常简单的方式支持这个播客,为什么不去iTunes给我们留个快速评分甚至评论呢?如果你想找个简单的方式到达那里,只需访问indiehackers.com/review,它应该会在你的电脑上打开iTunes。我几乎会阅读你们在那里留下的所有评论,这真的有助于其他人发现这个节目,所以非常感谢你们的支持。另外,如果你正在经营自己的互联网业务,或者希望有一天这样做,你应该加入我和其他许多创始人在indiehackers.com网站上。这是一个很好的地方,可以获取关于你在经营业务时可能遇到的任何问题或疑问的反馈。

If you enjoyed listening to this conversation and you want a really easy way to support the podcast, why don't you head over to iTunes and leave us a quick rating or even a review? If you're looking for an easy way to get there, just go to ndhackers.com/review, and that should open up iTunes on your computer. I read pretty much all the reviews that you guys leave over there, and it really helps other people to discover the show, so your support is very much appreciated. In addition, if you are running your own Internet business or if that's something you hope to do someday, you should join me and a whole bunch of other founders on the indiehackers.com website. It's a great place to get feedback on pretty much any problem or question that you might have while running your business.

Speaker 0

如果你经常听这个节目,你知道我非常主张从其他创始人那里获得帮助,而不是试图完全靠自己建立业务。所以你肯定会在论坛上看到我,以及我播客中不少嘉宾的身影。如果你正在寻找灵感,我们还有一个巨大的目录,里面包含了其他独立开发者构建的数百种产品,每一个都包括收入数字和一些幕后策略,讲述他们如何从零开始发展产品。一如既往,非常感谢你的收听,下次再见。

If you listen to the show, you know that I am a huge proponent of getting help from other founders rather than trying to build your business all by yourself. So you'll see me on the forum for sure, as well as more than a handful of some of the guests that I've had on the podcast. If you're looking for inspiration, we've also got a huge directory full of hundreds of products built by other indie hackers, every one of which includes revenue numbers and some of the behind the scenes strategies for how they grew their products from nothing. As always, thanks so much for listening, and I'll see you next time.

关于 Bayt 播客

Bayt 提供中文+原文双语音频和字幕,帮助你打破语言障碍,轻松听懂全球优质播客。

继续浏览更多播客