Rethinking Dependencies: Why Building from Scratch Builds Better Engineers When you’re building software and need to implement a new feature, what’s the first thing you usually do? For most of us, the instinct is simple: search for a package or library that already exists. At first, this feels efficient. Why reinvent the wheel when someone else has already solved the problem? But that’s exactly where the trap begins. One dependency leads to another, and soon your project becomes a fragile tower of third-party code . Every upgrade, every breaking change, every security patch adds complexity. Instead of moving faster, your project starts to slow down. Instead of gaining control, you begin to lose it. That’s why some of the best software projects take a different approach, they build their core features in-house, even if it takes longer. Breaking Out of The Fear I used to fall into the same pattern. If I needed a feature, I’d grab a library. The real reason wasn’t efficiency, it was fear. I was scared of building something from scratch. Scared I’d fail. Scared I wasn’t “good enough” to figure it out. But something shifted during my internship. Beyond the technical lessons, what I really gained was confidence. The belief that I could attempt things, even if I didn’t always succeed. I learned that failing while trying teaches more than succeeding by plugging in someone else’s code. From Editor.js to Building Our Own At Monkeys , when we first chose Editor.js for our editor, it seemed like a no-brainer. It worked, it was open source, and it let us get started quickly. But as we went deeper, we ran into limitations. Things we couldn’t customize. Issues we couldn’t fully control. Eventually, we realized we needed something more flexible. Instead of patching over the cracks, we decided to fork it, and now, we’re building our own version. That’s the beauty of open source: it’s not just about using other people’s code, it’s about experimenting, adapting, and making it your own. The Real Lesson For me, the biggest shift has been simple: don’t be afraid to try. The essence of engineering isn’t about avoiding mistakes, it’s about experimenting, exploring, and figuring things out along the way. In other words, “fuck around and find out” isn’t just a phrase, it’s pretty much the job description.