---
title: Contributing to Vite+ Inside Stories
tags: 
author: [Naoki Haba](https://www.docswell.com/user/naokihaba)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/47QY9Q8NEP.jpg?width=480
description: https://vuefes.jp/2026/speaker/naokihaba
published: October 24, 26
canonical: https://www.docswell.com/s/naokihaba/K4N7JN-2026-10-15-132213
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/47QY9Q8NEP.jpg)

Contributing to Vite+
Inside Stories
Naoki Haba
Vue Fes Japan 2026
October 24, 2026


# Page. 2

![Page Image](https://bcdn.docswell.com/page/KE4WXN23J1.jpg)

In This Talk
How my journey with Vite+ began
Moving from bug fixes to shaping core behavior
Getting started with open source in the age of AI


# Page. 3

![Page Image](https://bcdn.docswell.com/page/L71YN5MZJG.jpg)

Naoki Haba
ANDPAD, Inc.
Vite+ Core Team Member
Vue Fes Japan Core Team


# Page. 4

![Page Image](https://bcdn.docswell.com/page/G7WG4536E2.jpg)

What is Vite+?
The Unified Toolchain for the Web


# Page. 5

![Page Image](https://bcdn.docswell.com/page/4JZL2NVRE3.jpg)

One CLI to rule them all


# Page. 6

![Page Image](https://bcdn.docswell.com/page/YE6WV851EV.jpg)

How I Got Started
Picked an issue I could reproduce
Read the code until it made sense


# Page. 7

![Page Image](https://bcdn.docswell.com/page/GE5MD9YLE4.jpg)

My First Contribution
Added an early check for clearer error messages
Before
After
github.com/voidzero-dev/vite-plus/pull/1055


# Page. 8

![Page Image](https://bcdn.docswell.com/page/972982G3JR.jpg)

Getting into Migration
Wanted to adopt Vite+ at work
Jumped into vp migrate to smooth the path
It wasn’t as simple as I expected


# Page. 9

![Page Image](https://bcdn.docswell.com/page/DJY46YV87M.jpg)

Node.js Version Migration
Vite+ used .node-version
Many projects use .nvmrc
github.com/voidzero-dev/vite-plus/pull/1159


# Page. 10

![Page Image](https://bcdn.docswell.com/page/V7NYZPM9E8.jpg)

What About node?


# Page. 11

![Page Image](https://bcdn.docswell.com/page/YJ9PZ3N373.jpg)

Beyond Fixing Bugs
The code worked either way
The real question was: how should Vite+ behave?


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GJ8D1MKLJD.jpg)

Adding Nushell Support
Brought Nushell support to vp env
Barely knew Rust, but dove into the codebase
anyway
github.com/voidzero-dev/vite-plus/pull/1312


# Page. 13

![Page Image](https://bcdn.docswell.com/page/LJLMQ3ZQER.jpg)

Beyond Vite+
Understanding Vite+ wasn&#039;t enough
Had to understand how Nushell works, too


# Page. 14

![Page Image](https://bcdn.docswell.com/page/47MY1D4K7W.jpg)

Digging Deeper
I followed the rabbit hole
Vite+ → Rust → Nushell


# Page. 15

![Page Image](https://bcdn.docswell.com/page/P7R9L4W6E9.jpg)

Joining the Vite+ Team
Just one month after my first PR.
I never saw it coming.


# Page. 16

![Page Image](https://bcdn.docswell.com/page/PJXQW2PD7X.jpg)

After Joining the Team
As a Contributor
One issue at a time.
As a Team Member
Connecting the issues
“Does my fix work?”
“Does this fit Vite+?”


# Page. 17

![Page Image](https://bcdn.docswell.com/page/3JK9VMDDJD.jpg)

Migrating from tsdown
tsdown/client was scattered across three places.


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LE3WMYRPE5.jpg)

Beyond the Project: CI
Migration doesn&#039;t end with the code.
Teams need Vite+ in CI, too.
But setup-vp was GitHub Actions-only.
github.com/voidzero-dev/setup-vp


# Page. 19

![Page Image](https://bcdn.docswell.com/page/8EDK65Y37G.jpg)

Before Writing Code
I started with an RFC, not an implementation.
github.com/voidzero-dev/setup-vp/pull/97


# Page. 20

![Page Image](https://bcdn.docswell.com/page/V7PKYG6PJ8.jpg)

Is It Vite+?
vp preview broke with SolidStart v2.
Turns out, plain Vite failed the exact same way.


# Page. 21

![Page Image](https://bcdn.docswell.com/page/2JVVG63VJQ.jpg)

Where Should We Fix It?
The bug surfaced in Vite+,
but the fix belonged in SolidStart.


# Page. 22

![Page Image](https://bcdn.docswell.com/page/5EGL8N31JL.jpg)

Asking Different Questions


# Page. 23

![Page Image](https://bcdn.docswell.com/page/4JQY9Q5N7P.jpg)

Enter AI
AI transformed how we write and read code.
In OSS, I saw both sides of the coin.


# Page. 24

![Page Image](https://bcdn.docswell.com/page/K74WXN93E1.jpg)

How I Use AI
When exploring Vite+&#039;s Rust code,
I used AI to explain the details.
It helped me understand faster—
not skip understanding.


# Page. 25

![Page Image](https://bcdn.docswell.com/page/LJ1YN5KZEG.jpg)

Maintainer&#039;s POV
Sometimes a PR arrives
before the discussion is even finished.
Writing code got easier.
Understanding it didn&#039;t.


# Page. 26

![Page Image](https://bcdn.docswell.com/page/GJWG45D672.jpg)

Using AI to Understand
An open issue doesn&#039;t always mean
&quot;please implement this.&quot;
Before opening a PR,
use AI to understand the context.


# Page. 27

![Page Image](https://bcdn.docswell.com/page/4EZL2NGR73.jpg)

What I Was Really Building
I wasn&#039;t just collecting PRs.
I was building a real understanding of the project.


# Page. 28

![Page Image](https://bcdn.docswell.com/page/Y76WV8Y17V.jpg)

More Than Code
OSS contribution isn&#039;t just about code.
Star a repo, share your thoughts, or fix the docs.
Or simply be here, at events like Vue Fes Japan.


# Page. 29

![Page Image](https://bcdn.docswell.com/page/G75MD9GL74.jpg)

Baby Steps
You don&#039;t have to begin with a PR.
Start by understanding just one thing.
That&#039;s how my journey began.


# Page. 30

![Page Image](https://bcdn.docswell.com/page/9J2982Y3ER.jpg)

OSS is more than code. 
It’s people.


