Today marks the release of kmenu v3, an entire rewrite aimed at improving the performance and compatibility of the library.
Since I launched kmenu in 2022, the response has been amazing. Back then, it led me to my first job offer in high school, and even to this day I still get emails from founders who saw the library and want to work with me, and it puts a smile on my face each time. I was literally 15 when I built it 😅
That being said, looking at the code with a fresh pair of eyes made me realize a rewrite was long overdue. Over these past few weeks, I spent time and rewrote the entire package to make it:
- Framework agnostic
- Headless
- Composable
- Faster renders
- Support for custom search algorithms
- Better type safety
- Built-in fuzzy search
- Reduced bundle size (48kB → 3.4kB)
If you’re wondering why the bundle size was 48kB, that’s because kmenu used to come bundled with Framer Motion. I feel ashamed even thinking about it now.
And also, a couple more miscellaneous things:
- Search through submenus directly
- No required grouping by category
- Unlimited submenus w/o performance hits
Begin upgrading by reading the migration guide.