Jiahan Chen

Jiahan Chen

@chenjiahan.bsky.social

Creator of Rstack & Vant · Rstack lead @rspack.dev · Building JS tooling at ByteDance

260 followers167 following248 posts

Jiahan Chen reposted

🚀 Rstest 0.12.4 adds screenshot assertions. Catch visual regressions for pages and elements in Browser Mode. Compare against PNG baseline and inspect pixel diffs on mismatch.

Jiahan Chen reposted

We moved the Zephyr Cloud dashboard (1 host + 7 Module Federation remotes) from Rspack to Rsbuild 2, then let Rsdoctor 2 drive the cleanup. First load: −30% gzip Build: 112s → 90s 15-route journey: −39% Numbers 🧵

In the next release, Rspack will support `codeFilter` for loaders ⚡ Run a loader only on modules containing specific code, such as a "use foo" directive. Skip unnecessary transforms and speed up your builds

Rspack now powers massive codebases at some of the world’s largest companies, and feedback from these teams keeps making it better. Engineers at Microsoft and OpenAI have contributed over 100 PRs and issues. Thank you for all the contributions!

We’re also pushing Rstack and MF further within ByteDance, where we continually find and address bottlenecks in codebases with 10M+ lines of code

We started Rsdoctor by visualizing build data for human developers. Now AI agents do much of the optimization work, so we’re making Rsdoctor more agent-friendly by giving them access to that data through our CLI

Rspack@rspack.dev

🦀 Rsdoctor 2.0 is here! ⚡ 40–60% faster analysis 📦 56% smaller install size 🤖 Agent-driven build analysis 🧩 One report for multi-compiler builds Explore what’s new 👇 rsdoctor.rs/blog/release...

Jiahan Chen reposted

Rspack 1.0 is only two years old, but these numbers make it feel a generation behind 🫢 I hope we’ll say the same about 2.x when 3.0 ships

Looks like Bun uses its own Rust type checker for type-aware linting. We built Rslint on typescript-go for fewer type-checking surprises. That’s why Rslint is mostly written in Go. I wish TypeScript native were written in Rust. It’d make the tooling ecosystem more unified

Jiahan Chen reposted

Less duplicate code. Smaller bundles. 📦 We've improved Rspack's chunking algorithm to reduce duplicate modules across chunks. In a large production project, this change resulted in: • -2.53% raw JS size • -1.51% chunks

Lots of “OSS is dead” talk lately. Being a maintainer can feel like more stress than fun, so seeing these numbers grow is a nice little boost to keep going

Rspack@rspack.dev

A small milestone: 10M weekly downloads for Rspack Thank you for building with us ❤️

Jiahan Chen reposted

A small milestone: 10M weekly downloads for Rspack Thank you for building with us ❤️

We’re putting more focus on memory usage in Rspack and Rsbuild, especially for large codebases or when running multiple agents in parallel. Recent optimizations reduced peak dev memory by 19.5% in one large project, with faster startup and rebuilds too

Rspack's code splitting balances bundle size, chunk count, and build time. The next release adds `splitChunks.dedupDepth` to spend more time finding shared code and reducing duplication. In one real-world app with many routes, using this option cut total output size by 9.9%

Jiahan Chen reposted

🦀 Rstest 0.12 is out! More you can test, and faster ways to run it. 🎭 E2E testing with @rstest/playwright 🧩 Test Module Federation remotes ⚡ vmThreads / vmForks: 9.5× faster on a 2,400-file suite 📦 jsdom / happy-dom load faster out of the box 🛠️ New JavaScript API for tools

We recently upgraded an internal monorepo from Rspack v1 to v2. Build time dropped ~45% Then we noticed the repo had added 4 million lines over the past 6 months. About 80% was TS, mostly written by agents Still plenty to do to keep Rspack and JS tooling fast enough for agents

Great to see Vercel contributing to React Compiler's Rust implementation! Official crates are now available, so SWC and Rspack have switched from forked crates to the official ones.

TanStack Start + Rsbuild keeps getting faster 🚀 @CongCongPan optimized import-protection reporting, making SSR builds 23.4% faster and client builds 10% faster in a real-world project

We originally built Rslib to unify ByteDance’s web apps and JS libs around Rspack. Getting there wasn’t easy. Rspack inherited an architecture primarily designed for bundling apps, so we made many improvements to produce clean ESM for libs.

Rspack@rspack.dev

🦀 Rslib 1.0 is here! 📦 Multiple output formats, including Module Federation 🔀 Bundled or bundleless ⚛️ Component libraries across frameworks 🎨 Built-in CSS and asset support 🔵 TypeScript 7 support for fast declarations See what's new in Rslib 1.0 👇 rslib.rs/blog/v1-0

Jiahan Chen reposted

🦀 Rslib 1.0 is here! 📦 Multiple output formats, including Module Federation 🔀 Bundled or bundleless ⚛️ Component libraries across frameworks 🎨 Built-in CSS and asset support 🔵 TypeScript 7 support for fast declarations See what's new in Rslib 1.0 👇 rslib.rs/blog/v1-0

rslib.rsAnnouncing Rslib 1.0 - RslibRslib 1.0 is here, focusing on library build capabilities across use cases and the developer experience, with upgrade guidance and a look at what's next.

Excited that TypeScript will finally support module types based on import attributes! Bundlers and frameworks can now provide accurate types for custom imports:

Interesting to see ESLint exploring a unified JS/TS parsing toolkit. Our approach in Rslint is to treat the TS 7 parser/compiler as the single source of truth. Linting and type checking share the same program, so each file only needs to be parsed once, and its AST can be reused

ESLint@eslint.org

The RFC 'feat: New JavaScript/TypeScript parsing toolkit' is now in the Initial Commenting phase. https://github.com/eslin...

Cool to see Sentry already trying Rspack 2.2's new compact ID strategy, cutting gzipped JS by 152KiB. If all goes well, it'll be the default in a future minor release. We made a silly API typo and used "compat" instead of "compact". Guess we'll support both names😂

Rspack@rspack.dev

🦀 Rspack 2.2.0 is out! 30+ performance optimizations: ⚡ Production build ~5% faster 🎨 CSS parsing 3.7× faster 📁 CopyRspackPlugin 3–4× faster 🔥 HMR skips unnecessary CSS ~385 → ~6 ms rspack.rs/blog/announc...

And Rstack ecosystem keeps shipping: 🦀 Rsbuild — Solid v2 support, Octane template 🦀 Rstest — Playwright E2E, Module Federation 🦀 Rslint — 500+ native rules, JS API 🦀 Rslib — TypeScript 7 support, v1.0 soon 🦀 Rspress — 100/100 agent-friendly score

Rspack@rspack.dev

🦀 Rspack 2.2.0 is out! 30+ performance optimizations: ⚡ Production build ~5% faster 🎨 CSS parsing 3.7× faster 📁 CopyRspackPlugin 3–4× faster 🔥 HMR skips unnecessary CSS ~385 → ~6 ms rspack.rs/blog/announc...

In the next release, Rsbuild will enable chunk splitting by default for Node.js builds. This reduces duplicate code across chunks and makes SSR apps more efficient. The benchmark below is a TanStack Start stress test case with many routes and shared modules:

Already using the Rstack Agent Plugin. Nice to see Codex automatically reach for the Rspress custom theme skill when I asked it to tweak my site’s UI

Rspack@rspack.dev

Meet the Rstack Agent Plugin. 🔌 Built on Agent Plugins 1.0, it works across supported agent clients, including: 👉 GitHub Copilot
 👉 Codex 👉 Cursor
and more Install one plugin to get the complete collection of Rstack skills 🦀

Just noticed that Slack is using Rspack v2 Less than 4 months since launch, v2 already accounts for 30% of Rspack downloads and 40% of Rsbuild downloads Adoption is moving fast 🚀