About Me: đ A Craftsman in the Vite Ecosystem â
For those who don't know me, you can find me in almost any corner of the Anthony Fu ecosystem. My passion is pushing performance and developer experience to the absolute limit. Here are some of my Open Source contributions:
- Maintainer of Vite PWA.
- Maintainer of Vuetify Nuxt module.
- Core Contributor to: unplugin-icons, unplugin-auto-import, UnoCSS, vite-plugin-inspect, unplugin ecosystem, vite-ssg...
I'm a core team member of UnoCSS, Vitest, Vue, elk.zone, TresJS, Vuetify, and a Nuxter.
You can find me on GitHub, BlueSky or Mastodon.
The Philosophy: The Network is the Enemy â
I'm often asked why I prefer certain tech stacks. My analogy is simple:
- A Kotlin (Java) backend is an industrial kitchen. It requires a serious setup, but once it's running, it's a robust, scalable, and predictable machine.
- A JavaScript/Node backend is like a fast-food franchise. It's incredibly quick to set up, but scaling and maintaining consistent quality under high pressure can be a challenge.
But not even the best kitchen in the world can solve the true bottleneck of the modern web. The problem isn't the client or the server. The problem is the network.
The goal of this odyssey was simple: to reduce the navigation payload by orders of magnitude and declare war on latency.
My 25-Year Odyssey to an Instant Web â
My journey with the web, like that of many others, is an odyssey spanning over two decades. It began back in 2000, in the era of CGIs, Servlets, and a JavaScript that was more of a battlefield (IE, Netscape...) than a tool of pleasure.
Around 2016, Vue arrived. For the first time, building interfaces was elegant. But we were still stuck in the SPA model with Webpack: fantastic on a good connection, but a nightmare on a device with a slow CPU, where the initial "hydration" would freeze the experience.
The turning point came in 2020 with an application for the public administration of Colombia. The performance requirements were non-negotiable. My usual stack wasn't enough. It was then that I discovered Vite, and it was love at first sight. But the real revelation, the moment that ignited all my "dead" neurons, was a small flag in a library: hydration: true
in vite-ssg, and that wasn't that long ago.
Until then, my attempts at SSR were naive in my Kotlin backend: I would serve HTML from the backend, but Vue's createApp()
would annihilate it only to repaint everything on the client. It was good for SEO, but not for the user. Seeing how the server's HTML and the client's SPA could merge was a vision of paradise.
This architecture isn't about creating static blogs. It's about building complex, dynamic web applications that feel as instantaneous as a static document. The problem was never really the server or the client; it was always the network. This is the story of how, by using an intelligent SSG and a Service Worker, we can deliver a death blow to latency.