Pooya Parsa

Pooya Parsa

@pi0.io

Building opensource stuff ◦ @unjs.io ◦ @nitro.build ◦ @nuxt.com 🌱 github.com/pi0 ❌ x.com/_pi0_

5K followers801 following767 posts

Nitro v2.13.5 maintenance release is out 🚀 27 fixes for Vercel, Cloudflare, Bun, Node and Deno, faster dev error sourcemaps, and Node 24 support for more presets. More backports for the Nitro v2 line will be coming in the next minor, v2.14.

Pooya Parsa reposted

Love the website, some nice animations in there

Introducing 📦upm: 🪶A fast, tiny package manager for the npm registry. ✨Written in TypeScript, it installs at native-class speed and has a JS API, at a fraction of the size of native tools. 🤝Compatible with your existing .npmrc and lockfiles. 👉 Try at upm.sh

Did you know that the install size for packages with native dependencies (vite, rolldown, sharp, ...) varies by platform? upm web now lets you resolve packages with different platform presets to preview their install size.

In the next version of Nitro: Write tests with Vitest using the nitro/vite plugin 🧪

Dammit it even knows about all history 🫠 Maybe that's why I usually don't feel the need for many skills. It's already baked into the models for us 😅

PSA: h3 v2 is finally stable 🎉 i will soon write an article about h3's future and vision

New minimal error page for Nitro. -95 fewer files and 339 KB / −13.7% smaller dist. I will likely port this to srvx later so all HTTP layers have consistent DX. THANKS @adonisjs.com for youch for powering Nitro's error page and for the inspirations. ♥️

This took almost a week and millions of tokens to close all possible gaps from URLPattern compatibility but i believe totally worth it for sake for standards consistency. Now preparing h3 and nitro upgrades, h3 v2 stable is next in the line 🤞

🌳 rou3 v1 is finally stable! The routing toolkit powering h3 and Nitro. rou3 now has over 80% URLPattern compatibility, with deliberate differences that keep server-side HTTP routing fast and sane. Advanced patterns like /docs/**.md are now supported too.

🌳 rou3 v1 is finally stable! The routing toolkit powering h3 and Nitro. rou3 now has over 80% URLPattern compatibility, with deliberate differences that keep server-side HTTP routing fast and sane. Advanced patterns like /docs/**.md are now supported too.

I used to close my eyes, imagine code blocks, think, plan, then wake up and code it. I still close my eyes, think, and imagine. just at a much higher level now: direction and intent. The era of human coding labor is over. Mom, I’m not coding anymore. I’m herding agents. 🐑

📦 upm v1.4 is out! 🔗 overrides/resolutions and link: dependencies 🐙 github:, gitlab: and bitbucket: deps (no git needed) 🔒 21 bug fixes / 9 security fixes 🔥 fewer registry requests 🌐 upm [dot] sh improved 📊 less noisy benchmarks Still small, still native-class speed ⚡

upm.sh has become my new npm package inspector! It’s fast, reliable, and does everything in the browser! And building it was easy just use the upm API haha!

Pooya Parsa reposted

Preact 11 is out 🎉 We’ve been hard at work at making our diffing use modern features like moveBefore , leveraging ESM for tree-shaking Preact Compat and ensuring you have a great experience with resumed hydration.

unjs/obuild now supports minifyLibs and compressLibs options Selectively minify bundled deps or compress them inline into self-extracting ES modules, for when disk size matters. undici: 906 kB → 541 kB (min) → 146 kB (compressed /~5ms to extract on demand)

📦 upm 1.3: - Faster - Better hoisting - Consumes less resources on large repos - Minimal CLI progress bar + an onProgress API - Matches native-scores in independent @vltpkg benchmarks* (3.4ms/pkg => 2ms/pkg on average) *Benchmark results vary by hardware and scenario. upm is by far the smallest.

Introducing 📦upm: 🪶A fast, tiny package manager for the npm registry. ✨Written in TypeScript, it installs at native-class speed and has a JS API, at a fraction of the size of native tools. 🤝Compatible with your existing .npmrc and lockfiles. 👉 Try at upm.sh

Just published github.com/unjs/oxbox 🐂 🛠️ A tiny, portable JS library for parsing and transforming JS/TS/JSX, powered by oxc. ⚡ Optimized wasm build in a single JS chunk 🪞 Same API as oxc-parser + oxc-transform 🤝 Works in browsers and Node.js 💾 Fits on a floppy disk

View full thread

The oxbox wasm build also has a few extra perf tricks! ⚡ SIMD (simd128) across the whole build 🔗 Parser and transformer optimized together (LTO) 🧵 Multithreaded async APIs with prewarmed workers

Just published github.com/unjs/oxbox 🐂 🛠️ A tiny, portable JS library for parsing and transforming JS/TS/JSX, powered by oxc. ⚡ Optimized wasm build in a single JS chunk 🪞 Same API as oxc-parser + oxc-transform 🤝 Works in browsers and Node.js 💾 Fits on a floppy disk

The official oxc packages ship the parser and transformer as separate binaries, and since the transformer includes its own parser, much of it is duplicated. Oxbox links both into one wasm build and embeds it compressed with 🗜️ zopfli then base93-encoded to keep it small.

Introducing 📦upm: 🪶A fast, tiny package manager for the npm registry. ✨Written in TypeScript, it installs at native-class speed and has a JS API, at a fraction of the size of native tools. 🤝Compatible with your existing .npmrc and lockfiles. 👉 Try at upm.sh

View full thread

Every upm command is also a JS utility, and the store takes pluggable backends. The website runs a real upm install right in your browser tab and reinstall every time you reload it. Try it at upm.sh before installing anything!

Huge thanks to the npm and pnpm projects, whose work and ideas inspired much of upm 💛

Introducing 📦upm: 🪶A fast, tiny package manager for the npm registry. ✨Written in TypeScript, it installs at native-class speed and has a JS API, at a fraction of the size of native tools. 🤝Compatible with your existing .npmrc and lockfiles. 👉 Try at upm.sh

upm uses Node.js built-ins for worker threads, networking, compression and the filesystem, and matches the speed of Rust package managers*. * Benchmarks are mainly an indicator; results vary with project, network and hardware.

Node.js boots a few ms slower than a native binary. But on CI, size wins it back: restoring a 50–150 MB native package manager from cache takes longer than startup savings! Below you can see the measured/estimated timing.

PSA: H3 Stable and Nitro RC are imminent. Closing the last-minute gaps. Sorry for all the delays, but every single one was worth it. Nitro is becoming a MINIMAL, FAST, UNOPINIONATED/AGNOSTIC Swiss Army knife for building any web app. Your agents are gonna LOVE it.

I remember when yarn was born. It was cool and fast and fancy. then it got more complex up to a point that users couldn't keep up. Now pnpm is the star. It is getting more complex requirements to be setup "as intended" and honestly i am worried. sigh... just random thoughts.