Profile avatar
antfu.me
A ship in harbor is safe, but that is not what ships are built for. creator → @sli.dev • @unocss.dev • @vueuse.org • @vitest.dev • elk.zone core team → @nuxt.com • @vite.dev • vuejs.org maintainer → @shiki.style • eslint.style he/him → antfu.me
230 posts 10,624 followers 815 following
Regular Contributor
Active Commenter

Write async functions, get both async and sync functions with quansync and compiler magics 🪄 github.com/unplugin/unp...

It's so cool to see my name as a tester in a game I enjoyed so much - Die in the Dungeon @dieinthedungeon.bsky.social! 🤩 I helped to improve the Simplified Chinese translation. This really feels like my first OSS contribution! 😆 The game is just out on Steam: store.steampowered.com/app/2026820

I wonder if "Open Source" is the best way to refer to what we do and how we build together. It emphasizes the code's availability, but that is only one requirement. The process and people are as important. Maybe something like "Collectively Coded" could help users when interacting with the project.

Just want to say that unstorage is such an amazing project! It abstracts KV so well that it's very easy to swap storage in different scenarios. Thank you @pi0.io & @unjs.io 💛 github.com/unjs/unstorage

Deployed everything.antfu.dev to show the transitive dependencies of packages I created or maintain. To provide better transparency, while also driving myself to put the efforts into making lightweight and efficient libraries.

Made a stream integration for @shiki.style, hope it can help you to build LLM apps with high-quality highlighting!

It seems like that community prefers EPOCH * 1000 a bit more. So I have updated the number in my post to that. But also feel free to choose the multiplier that makes more sense to your projects.

I feel like I have two batteries in me. When I code, it charges the social battery. And when I do social, it charges my coding battery. Got to swap them periodically to hold up the efficiency.

Ok, this is what I end up thinking to do.

End of an era. They recorded an episode with @antfu.me and me when Vitest was just starting. It was my first podcast appearance, and they were awesome hosts. Thanks for so many JS parties ❤️

Shall we do import { shallowRef as signal } from 'vue' in our apps and the ecosystem? Thinking about doing that in @vueuse.org etc.

`require(esm)` got backported to Node 20! 🎉 When Node 18 hits EOL in less than 3 months, we can finally drop CJS builds and go ESM-only

Released ESLint Plugin De Morgan. A plugin for transforming logical expressions in JavaScript code to make them simpler and more understandable. From this: !(a && !b && c <= d) To this: !a || b || c > d github.com/azat-io/esli... ⬇️

It’s happening

Deployed a WebContainer version (still early stage). It keeps unbelievable to me that @stackblitz.com made possible to run Node.js inside the browser! node-modules.dev

New blog post! Let's move to ESM! 😈 👀 antfu.me/posts/move-o...

Three years doing Open Source at @stackblitz.com today! I'm grateful to work with and learn from awesome folks in the ecosystem. In my retrospective from last year, vite's npm weekly downloads were at the 10M mark. It will soon double that. And it once more feels like we're just getting started 💜

This has been very helpful, thank you @vercel.com vercel.com/guides/corep...

had a great catch up with @antfu.me 🙏 lots of awesome ideas floating around 👀 keep an eye on the module inspector!

We've released patches for a critical security vulnerability. We strongly encourage projects to upgrade to versions 1.6.1, 2.1.9, or 3.0.5 as soon as possible.

If you use pnpm in your projects, you can try it now with: pnpx [email protected]

Made quite some progress! (tho is not yet published on npm) If you are interested in contributing, check the repo out! github.com/antfu/node-m...

Cooking something on the trip of the holidays 👀

Is it only me, or is the recent VS Code's fs watcher kinda broken? Many times, the Git status doesn't update until I do a manual refresh. Even changes to files made by scripts don't get updated in the editor unless I close it and reopen it. Extension conflicts or something in the editor itself?

TIL you can set a successor to your GitHub account in case accidents happen. This is one of the best GitHub features I haven’t discovered for a while. Highly recommended for every open source maintainer to set it up! docs.github.com/en/account-a...