back to writing

Why I Built EasyUI

Suraj Maurya2026

I kept building the same kind of UI again and again. A button here. A modal there. A tooltip. A dropdown. A card with some animation. Then a few weeks later, I would start another project and end up writing almost the same thing again.

At some point I thought, why not keep the good ones in one place? That was the starting point of EasyUI. I did not start it with a big plan to build a component library. I mainly wanted a place where I could experiment with UI and keep the things that I liked.

I wanted something I would actually use. There are already a lot of great component libraries out there. I have used many of them myself. But when I was building personal projects, I often wanted something slightly different. I wanted components that had a bit more movement. Not huge animations that get in the way. Just small details that make an interaction feel better. A button that reacts when you press it. A menu that does not suddenly appear. A card that has a small movement when you interact with it. A component can work perfectly without these things, but I enjoy paying attention to them. So I started making my own.

Then the list started growing. One component became five. Five became twenty. Then I started trying different ideas just because I wanted to see if they worked. Some were good. Some were terrible. Some looked great in my head and felt completely wrong once I put them on a real page. That was actually one of my favorite parts. EasyUI slowly became a collection of those experiments. Today it has grown into a much bigger project with reusable React components, TypeScript, Tailwind CSS and Framer Motion. But the reason I started it is still pretty simple: I wanted to build UI that I enjoyed using.

I learned more than I expected. Building components sounds easy until you try to make the same component work in different situations. You start thinking about things you normally ignore. What should the component accept? What happens if the text is longer? What happens on a small screen? What happens with keyboard navigation? What happens if someone wants to change the styling? What happens when the animation is disabled? A component that looks good in one example is easy. A component that someone else can actually reuse is much harder. That changed how I think about frontend development. I started paying more attention to the small decisions behind a component instead of only thinking about how the final screen looked.

I am still building it. EasyUI is not something I consider finished. There are still components I want to improve, interactions I want to rethink and ideas I have not built yet. I also want to keep the project open so other developers can look at the code, use the components and hopefully find something useful. For me, EasyUI started as a place to stop rebuilding the same things. It turned into one of the projects where I have learned the most about frontend development. And I am still figuring it out as I go.

EasyUI: https://www.easyui.site