41554 blogs · [ { "id": "01a0872b-aec4-70c4-8a6e-8f997702707b", "title": "Ecosystem Sponsorship Forwarding", "url": "https://antfu.me/posts/ecosystem-sponsorship-forwarding", "published_at": "2026-08-25T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9977ce8174", "title": "Categorize Your Dependencies", "url": "https://antfu.me/posts/categorize-deps", "published_at": "2025-04-28T14:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997889fa75", "title": "Hello Tokyo!", "url": "https://antfu.me/posts/hello-tokyo", "published_at": "2025-04-08T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997922f89a", "title": "Photos Page", "url": "https://antfu.me/posts/photos-page", "published_at": "2025-03-12T12:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997995294f", "title": "Async, Sync, in Between", "url": "https://antfu.me/posts/async-sync-in-between", "published_at": "2025-03-03T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997a8a8f30", "title": "Move on to ESM-only", "url": "https://antfu.me/posts/move-on-to-esm-only", "published_at": "2025-02-05T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997a90be2b", "title": "Epoch Semantic Versioning", "url": "https://antfu.me/posts/epoch-semver", "published_at": "2025-01-07T12:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997b834cca", "title": "CPU Profiling Nuxt", "url": "https://antfu.me/posts/nuxt-cpuprofile", "published_at": "2024-12-31T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997c39c7df", "title": "Introducing Nuxt Icon v1", "url": "https://antfu.me/posts/nuxt-icon-v1", "published_at": "2024-11-25T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997c733fef", "title": "Initiative on Sponsorship Forwarding", "url": "https://antfu.me/posts/sponsorship-forwarding", "published_at": "2024-04-20T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997d109905", "title": "Refreshed Nuxt ESLint Integrations", "url": "https://antfu.me/posts/refreshed-nuxt-eslint", "published_at": "2024-04-10T12:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997e023a7c", "title": "Introducing ESLint Config Inspector", "url": "https://antfu.me/posts/eslint-config-inspector", "published_at": "2024-04-05T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997edb3741", "title": "Anthony's Roads to Open Source - The Set Theory (React ver.)", "url": "https://antfu.me/posts/roads-to-oss-set-theory-react-paris-2024", "published_at": "2024-03-22T08:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f997fb1f81a", "title": "Mental Health in Open Source", "url": "https://antfu.me/posts/mental-health-oss", "published_at": "2024-03-16T12:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998026282a", "title": "The Evolution of Shiki v1.0", "url": "https://antfu.me/posts/evolution-of-shiki-v1", "published_at": "2024-03-11T12:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9980f5940d", "title": "The Magic in Shiki Magic Move", "url": "https://antfu.me/posts/shiki-magic-move", "published_at": "2024-03-04T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998131af5f", "title": "Anthony's Roads to Open Source - The Progressive Path", "url": "https://antfu.me/posts/roads-to-oss-progressive-vueams-2024", "published_at": "2024-02-29T08:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9981fbd6b3", "title": "TwoSlash with Shiki", "url": "https://antfu.me/posts/shikiji-twoslash", "published_at": "2023-12-12T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9982930248", "title": "GitHub-style Alerts", "url": "https://antfu.me/posts/github-alerts", "published_at": "2023-11-30T10:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9982fa8b91", "title": "Nuxt Devtools v1.0", "url": "https://antfu.me/posts/nuxt-devtools-v1", "published_at": "2023-11-13T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99837b3f64", "title": "Anthony's Roads to Open Source - The Set Theory", "url": "https://antfu.me/posts/roads-to-oss-set-theory-vuefesjapan-2023", "published_at": "2023-10-28T08:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9983acd707", "title": "Now, and the Future of Nuxt Devtools", "url": "https://antfu.me/posts/now-and-future-devtools-nuxt-nation-2023", "published_at": "2023-10-18T08:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998475be0a", "title": "Anthony's Roads to Open Source - The Set Theory", "url": "https://antfu.me/posts/roads-to-oss-set-theory-viteconf-2023", "published_at": "2023-10-05T08:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998518a8dc", "title": "Animated SVG Logo", "url": "https://antfu.me/posts/animated-svg-logo", "published_at": "2023-07-19T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99855c9f09", "title": "pnpm on External disk", "url": "https://antfu.me/posts/pnpm-external-disk", "published_at": "2023-07-13T12:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9985acfe50", "title": "Stable Diffusion QR Code 101", "url": "https://antfu.me/posts/ai-qrcode-101", "published_at": "2023-07-10T05:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99866f83b7", "title": "Refining AI Generated QR Code", "url": "https://antfu.me/posts/ai-qrcode-refine", "published_at": "2023-06-30T17:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9986aba770", "title": "Stylistic QR Code with Stable Diffusion", "url": "https://antfu.me/posts/ai-qrcode", "published_at": "2023-06-25T05:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998795a1ce", "title": "DX with Nuxt DevTools", "url": "https://antfu.me/posts/nuxt-dx-strasbourg-2023", "published_at": "2023-05-25T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99881f8de0", "title": "How I Manage GitHub Notifications", "url": "https://antfu.me/posts/manage-github-notifications-2023", "published_at": "2023-05-17T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99883c1720", "title": "Sliding Enter Animation", "url": "https://antfu.me/posts/sliding-enter-animation", "published_at": "2023-05-07T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99890e5f26", "title": "Introducing Nuxt Devtools", "url": "https://antfu.me/posts/introducing-nuxt-devtools", "published_at": "2023-03-27T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998915ded7", "title": "Break Lines in JS", "url": "https://antfu.me/posts/break-lines-in-js", "published_at": "2023-02-10T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9989d0d222", "title": "Development Experience with Nuxt", "url": "https://antfu.me/posts/nuxt-dx-2023", "published_at": "2023-02-09T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998a74b205", "title": "Bonjour Paris!", "url": "https://antfu.me/posts/bonjour-paris", "published_at": "2022-12-10T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998adfb281", "title": "Patterns of VueUse", "url": "https://antfu.me/posts/patterns-of-vueuse-vuefes-japan-2022", "published_at": "2022-10-16T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998b059b00", "title": "Vite, the on-demand DX", "url": "https://antfu.me/posts/vite-on-demand-dx-viteconf-2022", "published_at": "2022-10-11T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998bf3e715", "title": "Dev SSR on Nuxt with Vite", "url": "https://antfu.me/posts/dev-ssr-on-nuxt", "published_at": "2022-10-04T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998c87a5be", "title": "Why I don't use Prettier", "url": "https://antfu.me/posts/why-not-prettier", "published_at": "2022-10-01T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998d7ce636", "title": "Why Reproductions are Required", "url": "https://antfu.me/posts/why-reproductions-are-required", "published_at": "2022-05-30T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998dcecfe9", "title": "Introduction to Vitest", "url": "https://antfu.me/posts/introduction-to-vitest-vue-nation-2022", "published_at": "2022-01-26T08:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998e8ff420", "title": "Ship ESM & CJS in one Package", "url": "https://antfu.me/posts/publish-esm-and-cjs", "published_at": "2021-11-29T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f998f4eddb7", "title": "Icons in Pure CSS", "url": "https://antfu.me/posts/icons-in-pure-css", "published_at": "2021-10-31T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99900ba27a", "title": "Reimagine Atomic CSS", "url": "https://antfu.me/posts/reimagine-atomic-css", "published_at": "2021-10-26T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f999013b880", "title": "New Ways to Vue", "url": "https://antfu.me/posts/new-ways-to-vue-london-2021", "published_at": "2021-10-20T08:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9990f585a8", "title": "Range in JavaScript", "url": "https://antfu.me/posts/range-in-javascript", "published_at": "2021-09-13T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99910ed052", "title": "Journey with Icons Continues", "url": "https://antfu.me/posts/journey-with-icons-continues", "published_at": "2021-09-10T18:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9991c6178f", "title": "Isomorphic `__dirname`", "url": "https://antfu.me/posts/isomorphic-dirname", "published_at": "2021-08-30T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99921a21c0", "title": "GitHub Co-authors", "url": "https://antfu.me/posts/github-co-authors", "published_at": "2021-08-24T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9992325276", "title": "Async with Composition API", "url": "https://antfu.me/posts/async-with-composition-api", "published_at": "2021-07-16T08:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9992c3b849", "title": "Get Package Root", "url": "https://antfu.me/posts/get-package-root", "published_at": "2021-07-14T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9993946f47", "title": "Optimize Await", "url": "https://antfu.me/posts/optimize-await", "published_at": "2021-07-01T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9993b83172", "title": "About Yak Shaving", "url": "https://antfu.me/posts/about-yak-shaving", "published_at": "2021-05-19T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f999486927f", "title": "Composable Vue", "url": "https://antfu.me/posts/composable-vue-vueday-2021", "published_at": "2021-04-28T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99949ffaaa", "title": "Develop with Vite", "url": "https://antfu.me/posts/vue-beijing-2021", "published_at": "2021-03-28T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9994a56e06", "title": "Reflection of Speaking in Public", "url": "https://antfu.me/posts/reflection-of-speaking-in-public", "published_at": "2021-03-27T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99959a8775", "title": "Type your Config", "url": "https://antfu.me/posts/type-your-config", "published_at": "2021-03-24T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9996385002", "title": "Windi CSS and Tailwind JIT", "url": "https://antfu.me/posts/windicss-and-tailwind-jit", "published_at": "2021-03-18T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9996940929", "title": "Typed Provide and Inject in Vue", "url": "https://antfu.me/posts/typed-provide-and-inject-in-vue", "published_at": "2021-03-05T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9996ee4680", "title": "Color Scheme for VS Code", "url": "https://antfu.me/posts/color-scheme-for-vscode-ext", "published_at": "2021-03-01T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f999761edde", "title": "Types for Submodules", "url": "https://antfu.me/posts/types-for-sub-modules", "published_at": "2021-03-01T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9997e88740", "title": "Match Quotes in Pairs", "url": "https://antfu.me/posts/match-quotes-in-pairs", "published_at": "2021-02-28T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99980c1e11", "title": "Match Chinese Characters", "url": "https://antfu.me/posts/match-chinese-characters", "published_at": "2021-02-25T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f9998628722", "title": "Netlify Redirects", "url": "https://antfu.me/posts/netlify-redirects", "published_at": "2021-02-20T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f99991f15aa", "title": "Rewrite in Vite", "url": "https://antfu.me/posts/rewrite-in-vite", "published_at": "2021-01-31T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f999a07ab46", "title": "Destructuring... with object or array?", "url": "https://antfu.me/posts/destructuring-with-object-or-array", "published_at": "2020-10-21T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f999afa1578", "title": "Watch with @vue/reactivity", "url": "https://antfu.me/posts/watch-with-reactivity", "published_at": "2020-09-18T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f999b8e2627", "title": "Journey with Icons", "url": "https://antfu.me/posts/journey-with-icons", "published_at": "2020-08-16T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f999be30291", "title": "Make Libraries Working with Vue 2 and 3", "url": "https://antfu.me/posts/make-libraries-working-with-vue-2-and-3", "published_at": "2020-07-01T14:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f999cd1bf53", "title": "Vue 3 Migration Notes", "url": "https://antfu.me/posts/vue-3-notes", "published_at": "2020-07-01T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f999d497ac1", "title": "Type Inferencing in Vue", "url": "https://antfu.me/posts/type-inferencing-in-vue", "published_at": "2020-06-28T00:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f999db1a02f", "title": "Domain Email", "url": "https://antfu.me/posts/domain-email", "published_at": "2020-06-17T16:00:00+00:00" }, { "id": "01a0872b-aec4-70c4-8a6e-8f999e4d1514", "title": "New House", "url": "https://antfu.me/posts/new-house", "published_at": "2020-06-12T16:00:00+00:00" } ] posts Claim your blog
Back to antfu.me
Blog · corpus.blog/blogs/antfu.me/posts

antfu.me

antfu.me

2026

2025

2024

2023

2022

2021

2020