Skip to content

Creator of Vue.js and Vite: Evan You's Journey From Google Engineer to Open Source Pioneer

In this episode of "Just Ship It," Evan You, the creator of Vue.js and Vite, discusses his journey to becoming an independent open-source developer. His dedication to Vue.js and (and now Vite) since 2016 has made him a prominent figure in the open-source community. This conversation highlights Evan's transition to full-time open-source work, the growth of Vue.js, and his aspirations for the future.

Evan shares his journey toward becoming a full-time open-source developer and the challenges and factors that facilitated this shift. Evan attributes his success to a combination of luck and persistence. He elaborates on his experiences while developing Vue.js, emphasizing his passion for solving intriguing problems. He outlines his approach to API-driven development, where he designs how things should work before implementing them.

Evan explains that Vue.js initially attracted users through platforms like Hacker News and Chinese social networks, thanks to its bottom-up approach and user-friendly documentation. This is in stark contrast to larger frameworks like React and Angular, which often gain enterprise-level adoption due to corporate backing.

Evan reflects on Vue.js's evolution, highlighting the turning point when it gained prominence in the Laravel community, solidifying its reputation as a dependable framework for production projects. He discusses how Vue.js particularly appeals to back-end developers, as it seamlessly integrates with traditional back-end frameworks.

The conversation touches on Vue.js's adoption in different regions, particularly in Asia, attributing its success to Evan's active participation in Chinese social networks. Additionally, Evan underscores the importance of high-quality Chinese documentation.

The episode concludes with Evan sharing the pace and satisfaction he found in working on Vue.js during its early stages, contrasting it with the more complex decision-making processes required as the project grew. Evan's work on Vue.js and Vite has had a significant impact on the web development landscape, and his commitment to fostering a thriving open-source community continues to shape the future of front-end development.

This Dot Labs is a development consultancy that is trusted by top industry companies, including Stripe, Xero, Wikimedia, Docusign, and Twilio. This Dot takes a hands-on approach by providing tailored development strategies to help you approach your most pressing challenges with clarity and confidence. Whether it's bridging the gap between business and technology or modernizing legacy systems, you’ll find a breadth of experience and knowledge you need. Check out how This Dot Labs can empower your tech journey.

You might also like

Mastering Performance: How Misko Hevery is Transforming Development! cover image

Mastering Performance: How Misko Hevery is Transforming Development!

Open source software has become an integral part of the tech industry, powering countless applications and frameworks that developers rely on daily. In a recent episode, Tracy Lee chatted with Misko Hevery, known for his work on Qwik and Angular, about his insights into open source development. The episode began with a discussion of Qwik, a framework designed to simplify lazy loading and enhance performance. Misko highlighted the problem developers face when optimizing large applications and emphasized the importance of frameworks taking the responsibility of making applications faster. Qwik aims to do just that by providing a seamless lazy loading experience for developers, eliminating the need for extensive optimization efforts. They also touched on the challenge of convincing stakeholders to prioritize performance improvements over new features, a common struggle for developers. Misko shared valuable advice for aspiring open source contributors, emphasizing the significance of deeply caring about the problems you aim to solve. He also stressed the importance of aligning the mental model of a framework with developers, making it easier for them to get started and be productive from day one. This aligns with the success of popular frameworks like React, which are known for their straightforward mental models. The conversation shifted into the evolving landscape of open source sustainability. Misko pointed out that open source is not entirely free and that contributors need to be compensated for their time and effort. While there has been progress in this area, with platforms like Patreon and GitHub Sponsors enabling developers to receive funding, the culture surrounding financial support for open source projects is still evolving. Vue.js, a framework backed by a strong community and creator Evan You, was mentioned as a standout example of open source success. Misko highlighted that Vue.js is unique because it is not backed by a corporation, unlike many other frameworks. This independence has allowed Vue.js to thrive and become a leading framework in the front-end world. The episode wrapped up with a call to action for the industry to better support sustainable open source projects. Misko encouraged companies benefiting from open source projects to find ways to contribute back to the community. He expressed the need for the ecosystem to mature and develop a culture of financial support for open source maintainers....

Get 100k Followers by Teaching TypeScript, with Matt Pocock, Author of Total Typescript cover image

Get 100k Followers by Teaching TypeScript, with Matt Pocock, Author of Total Typescript

In this episode of "Just Ship It," Tracy Lee welcomes Matt Pocock, the author of "Total TypeScript," to discuss his journey in the world of development and open source. Tracy and Matt talk about his rise to popularity as the author of "Total TypeScript" and his transition from being a singing voice teacher to a web developer. Matt's journey into the world of web development began in 2017 while he was working on his thesis. Bored with the thesis writing, he decided to explore JavaScript, marking the beginning of his development adventure. He soon found himself experimenting with ambitious projects like using the Web Audio API to analyze voice quality and other complex web applications. It was during this time that he realized his passion for coding and building things that could change the world. In 2018, Matt transitioned to full-time web development. He initially worked for a company that created monitoring devices for elderly people, which required him to handle various frontend tasks. Despite leaving the job after just five months due to financial difficulties at the company, Matt's passion for development continued to grow. He went on to work for different agencies, gaining experience in various development environments and technologies. Matt's journey eventually led him to the world of open source, where he made a significant impact. He became involved with XState, a state machine and state chart library, and even joined its core team. His contributions to XState led to his involvement in the founding of a new company, Stately, which grew out of the XState core team. This transition marked a pivotal moment in his career, as he found himself contributing to a project that later became the foundation for a new venture. One of Matt's standout accomplishments in the tech community is Total TypeScript. This comprehensive TypeScript course covers advanced topics, such as type transformations, generics, and complex type patterns. Matt's teaching style, which emphasizes practicality and real-world applications, resonated with developers looking to level up their TypeScript skills....

Testing a Fastify app with the NodeJS test runner cover image

Testing a Fastify app with the NodeJS test runner

Introduction Node.js has shipped a built-in test runner for a couple of major versions. Since its release I haven’t heard much about it so I decided to try it out on a simple Fastify API server application that I was working on. It turns out, it’s pretty good! It’s also really nice to start testing a node application without dealing with the hassle of installing some additional dependencies and managing more configurations. Since it’s got my stamp of approval, why not write a post about it? In this post, we will hit the highlights of the testing API and write some basic but real-life tests for an API server. This server will be built with Fastify, a plugin-centric API framework. They have some good documentation on testing that should make this pretty easy. We’ll also add a SQL driver for the plugin we will test. Setup Let's set up our simple API server by creating a new project, adding our dependencies, and creating some files. Ensure you’re running node v20 or greater (Test runner is a stable API as of the 20 major releases) Overview `index.js` - node entry that initializes our Fastify app and listens for incoming http requests on port 3001 `app.js` - this file exports a function that creates and returns our Fastify application instance `sql-plugin.js` - a Fastify plugin that sets up and connects to a SQL driver and makes it available on our app instance Application Code A simple first test For our first test we will just test our servers index route. If you recall from the app.js` code above, our index route returns a 501 response for “not implemented”. In this test, we're using the createApp` function to create a new instance of our Fastify app, and then using the `inject` method from the Fastify API to make a request to the `/` route. We import our test utilities directly from the node. Notice we can pass async functions to our test to use async/await. Node’s assert API has been around for a long time, this is what we are using to make our test assertions. To run this test, we can use the following command: By default the Node.js test runner uses the TAP reporter. You can configure it using other reporters or even create your own custom reporters for it to use. Testing our SQL plugin Next, let's take a look at how to test our Fastify Postgres plugin. This one is a bit more involved and gives us an opportunity to use more of the test runner features. In this example, we are using a feature called Subtests. This simply means when nested tests inside of a top-level test. In our top-level test call, we get a test parameter t` that we call methods on in our nested test structure. In this example, we use `t.beforeEach` to create a new Fastify app instance for each test, and call the `test` method to register our nested tests. Along with `beforeEach` the other methods you might expect are also available: `afterEach`, `before`, `after`. Since we don’t want to connect to our Postgres database in our tests, we are using the available Mocking API to mock out the client. This was the API that I was most excited to see included in the Node Test Runner. After the basics, you almost always need to mock some functions, methods, or libraries in your tests. After trying this feature, it works easily and as expected, I was confident that I could get pretty far testing with the new Node.js core API’s. Since my plugin only uses the end method of the Postgres driver, it’s the only method I provide a mock function for. Our second test confirms that it gets called when our Fastify server is shutting down. Additional features A lot of other features that are common in other popular testing frameworks are also available. Test styles and methods Along with our basic test` based tests we used for our Fastify plugins - `test` also includes `skip`, `todo`, and `only` methods. They are for what you would expect based on the names, skipping or only running certain tests, and work-in-progress tests. If you prefer, you also have the option of using the describe` → `it` test syntax. They both come with the same methods as `test` and I think it really comes down to a matter of personal preference. Test coverage This might be the deal breaker for some since this feature is still experimental. As popular as test coverage reporting is, I expect this API to be finalized and become stable in an upcoming version. Since this isn’t something that’s being shipped for the end user though, I say go for it. What’s the worst that could happen really? Other CLI flags —watch` - https://nodejs.org/dist/latest-v20.x/docs/api/cli.html#--watch —test-name-pattern` - https://nodejs.org/dist/latest-v20.x/docs/api/cli.html#--test-name-pattern TypeScript support You can use a loader like you would for a regular node application to execute TypeScript files. Some popular examples are tsx` and `ts-node`. In practice, I found that this currently doesn’t work well since the test runner only looks for JS file types. After digging in I found that they added support to locate your test files via a glob string but it won’t be available until the next major version release. Conclusion The built-in test runner is a lot more comprehensive than I expected it to be. I was able to easily write some real-world tests for my application. If you don’t mind some of the features like coverage reporting being experimental, you can get pretty far without installing any additional dependencies. The biggest deal breaker on many projects at this point, in my opinion, is the lack of straightforward TypeScript support. This is the test command that I ended up with in my application: I’ll be honest, I stole this from a GitHub issue thread and I don’t know exactly how it works (but it does). If TypeScript is a requirement, maybe stick with Jest or Vitest for now 🙂...