← Back to list

Five Packages Later, Everything Started Feeling Easier

Building Kivex Flutter and Kivex React Native taught me that every challenge you conquer prepares you for the next one.

Joseph N. Aburu in Bouncin’ and Behavin’ Blogs · 2026-07-16 15:09 · 0 claps · 4.1 min read paywalled
#open-source #software-engineering #programming #flutter #react-native
Open on Medium ↗
Wiki topics: 💻 · Programming 🌐 · Web Development 📱 · Mobile Development 🔓 · Open Source

Five Packages Later, Everything Started Feeling Easier

Building Kivex Flutter and Kivex React Native taught me that every challenge you conquer prepares you for the next one.

There is something I have noticed ever since I started working on the Kivex ecosystem.

The more challenges I conquer, the easier the next challenge becomes.

When I first started building packages for Kivex, everything felt new. Every step came with questions. Every challenge required investigation. I had to understand the architecture before writing any code because I have always believed that before writing code, you must first understand the problem.

That was exactly how I approached Kivex React.

I spent time understanding the architecture, asking questions, discussing different ideas, and making sure we were completely aligned before implementation. Looking back now, I realize that process gave me much more than a completed package. It laid the foundation for everything that came after it.

After completing Kivex React, I moved into Kivex Solid.

It was surprisingly quick for me to complete almost ninety percent of the package. Then I reached the remaining ten percent.

That little ten percent became the biggest challenge.

I spent more than eight hours diagnosing my code. I started around 12:00 PM and didn’t finish until about 4:00 AM the next day. At first, I thought the problem was my icon generator. Then I suspected my exports. After that, I checked my package structure, my TypeScript configuration, my workspace setup, and even my IconBase component.

Everything looked correct.

Direct imports worked perfectly, but importing from the package entry caused the entire page to go blank without any useful error.

After hours of investigation, I finally discovered that the problem wasn’t my code at all.

It was my build tool.

The moment I changed the build pipeline, everything snapped into place.

That experience taught me something I don’t think I’ll ever forget.

Sometimes the bug isn’t in your code. Sometimes it lives in your tooling.

That lesson stayed with me.

After that came Kivex Svelte.

To my surprise, I completed that package in less than twenty-four hours.

I remember sitting back and asking myself, “Why was this one so much faster?”

The answer became obvious.

The previous challenges had already taught me what I needed to know.

I wasn’t starting from zero anymore.

Every mistake I had made while building React helped me build Solid.

Every lesson I learned while building Solid helped me build Svelte.

Everything was beginning to connect.

Recently, I completed two more packages.

Kivex Flutter and Kivex React Native.

These two packages are among the fastest packages I have ever created since I started working on the Kivex ecosystem.

So far, so good.

The experience has really been worth it.

I’m genuinely enjoying what is happening.

I’m genuinely enjoying what I’m doing.

Everything seems easier for me right now whenever I want to build something for Kivex.

The journey has been so good.

One thing I noticed is that Kivex React, Kivex Solid, Kivex Svelte, and Kivex React Native all share huge similarities.

Once I understood the architecture behind one package, I found myself applying the same engineering principles to the others.

It wasn’t about copying code.

It was about understanding the pattern.

Flutter, however, was different.

This was me stepping out of the JavaScript ecosystem and moving into the Dart ecosystem.

Everything had to be written in Dart.

The package structure was different.

The language was different.

The ecosystem was different.

Even though everything looked different, something interesting happened.

I wasn’t intimidated by it.

Instead, I found myself approaching it the same way I had approached every other package.

First, understand the architecture.

Then design the solution.

Then build one piece at a time.

That experience gave me something valuable.

It reminded me that programming languages are different, but good software engineering principles remain the same.

Architecture still matters.

Communication still matters.

Thinking before coding still matters.

Building for the developer experience still matters.

Those principles don’t belong to JavaScript.

They don’t belong to Dart either.

They belong to software engineering.

Looking back now, I don’t think the biggest achievement is creating five packages.

The biggest achievement is the person I am becoming through the process.

Every package has stretched my thinking.

Every debugging session has improved the way I investigate problems.

Every obstacle has taught me something I didn’t know before.

The more challenges I conquer, the more confidence I gain.

The more confidence I gain, the faster I become.

That doesn’t mean future projects won’t have challenges.

They certainly will.

It simply means I no longer panic when they come.

I trust the process.

I know that every difficult problem has a solution.

Sometimes it takes minutes.

Sometimes it takes hours.

Sometimes it takes an entire day.

What matters is staying with the problem long enough to understand it.

One thing this journey has reminded me is that growth is rarely dramatic.

Most of the time, it happens quietly.

You solve one problem.

Then another.

Then another.

One day you look back and realize that what once felt impossible has become something you can build with confidence.

That has been my experience throughout the Kivex ecosystem.

I started with one package.

Today, I have successfully built wrappers for React, SolidJS, Svelte, Flutter, and React Native.

The journey has been amazing.

Most importantly, it has reminded me that the more challenges you conquer, the easier the next challenge becomes.

Join the Journey

One thing this experience has reminded me is that open source is one of the best places to learn software engineering.

Every contribution teaches you something.

Every review makes you better.

Every challenge stretches your thinking.

If you’ve been thinking about contributing to an open source project, I’d encourage you to start.

Whether you enjoy building features, fixing bugs, improving documentation, refining the developer experience, or simply learning by contributing, there is always room for one more contributor.

GitHub Repository

[embed]GitHub - MotionMind2007/Kivex: A lightweight, pixel-perfect, and dynamic icon library for web… A lightweight, pixel-perfect, and dynamic icon library for web developers. - MotionMind2007/Kivexgithub.com

My own journey started with a simple Facebook message.

Today, that journey has grown into building wrappers across five different ecosystems.

Yours might begin with a single pull request.


메타데이터
post_id
aebac7b90ab2
slug
five-packages-later-everything-started-feeling-easier-aebac7b90ab2
url
https://medium.com/bouncin-and-behavin-blogs/five-packages-later-everything-started-feeling-easier-aebac7b90ab2
canonical_url
https://medium.com/bouncin-and-behavin-blogs/five-packages-later-everything-started-feeling-easier-aebac7b90ab2
author_url
https://medium.com/@josephyala
status
ok
fetched_at
2026-07-17 04:42:44