Introducing kmenu v3

August 14, 2025

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.