Returning to WrenAI

Returning to WrenAI

A Journey Beyond Code

Introduction

This time in my open-source journey, I revisited WrenAI, a project I first contributed to during Hacktoberfest. You can find the repository here. The community behind WrenAI left a lasting impression on me - not just because they sent swag as a token of appreciation, but also because of their kindness and collaborative spirit.

My initial contribution during Hacktoberfest involved fixing a minor React issue that took about an hour to resolve. However, my latest experience with the project was vastly different. Though my task again involved a seemingly minor frontend fix, it turned into a deep dive that spanned hours of effort, learning, and collaboration.

This blog post talks about the highs and lows of my journey, emphasizing the depth of knowledge I gained and the meaningful connections I made along the way.

The Challenge: Recreating the Issue

The task at hand was a frontend bug in which saved views weren't correctly displaying their return status. For context, WrenAI allows users to generate prompts, query their databases, and save specific views so that repeated prompts return the same results. Despite the code being present for displaying these saved views, something wasn’t working as expected.

My first challenge? Setting up the project locally. This turned out to be far more difficult than I anticipated. WrenAI is a complex system with multiple components, including an engine and a service layer, which I needed to understand to fix the UI. While I was only tackling a frontend issue, understanding the architecture was critical to debugging effectively.

I started by following the project’s documentation, which describes how the system works in detail (WrenAI docs). Despite this, my local setup refused to work. Hours of debugging later, I turned to the project’s Discord community for help.

Reaching Out: Support from the Community

One of the maintainers, Jimmy (GitHub), generously offered to hop on a call to help me. We discovered that my setup issues stemmed from outdated documentation due to recent updates to the project. With Jimmy’s guidance, I finally got my development environment up and running.

During our call, we discussed more than just the technical setup. Jimmy shared insights about his journey as a developer, the company behind WrenAI (Canner), and its global team - New York-based but with a predominantly Vietnamese workforce. Despite the time difference (it was 2:30 AM in Canada!), we had a fascinating conversation about career opportunities and open source.

Jimmy mentioned that while WrenAI isn’t hiring currently, they plan to prioritize their most active contributors when they do. Inspired, I committed to opening issues to improve their developer documentation and contributing further to the project.

Diving Into the Codebase

Once my local environment was ready, I began exploring the codebase. Tracking down the issue required me to understand not only the frontend logic but also the backend API, which uses GraphQL - a technology I was unfamiliar with.

The syntax and structure of GraphQL initially overwhelmed me, but I persevered, learning about the system’s architecture, logs, and workflows. Every step brought new insights, but it was a slow process.

After pulling an all-nighter and spending countless hours debugging, I hit a wall. Frustrated and exhausted, I reached out to Jimmy again. I felt guilty for asking for more of his time, but he was incredibly supportive.

The Breakthrough

During our second call, Jimmy and I debugged the issue together for about 30 minutes before pinpointing the problem. The fix? A single line of code. Despite the simplicity of the change, the journey to that line was anything but straightforward.

I added Jimmy as a co-author to my commit because of his invaluable help. Through our collaboration, we discussed ways to improve the project further. Jimmy even offered to mentor me in backend development, promising short sessions to walk me through WrenAI’s architecture.

Lessons Learned

On the surface, this contribution might seem small—a minor UI fix in a single file. However, the experience was transformative. I gained:

  • Technical skills: Understanding GraphQL, debugging large codebases, and navigating complex architectures.

  • Community support: The WrenAI team’s kindness and willingness to help were invaluable.

  • A new mentor: Jimmy’s offer to guide me in backend development was a highlight of this journey.

  • Perspective: Open source isn’t just about code; it’s about connections and collaboration.

The Contribution

Here are the links to my issue and pull request:

Conclusion

This contribution was about more than just fixing a bug. It was about building meaningful relationships, learning from others, and growing as a developer. The WrenAI community has inspired me to stick with this project, dive deeper into its codebase, and continue contributing.

I’m excited to see where this journey takes me next - both in open source and in my career. For now, I’m grateful for the lessons learned and the friends made along the way. 😊