Building Successful Open Source Projects

Building Successful Open Source Projects

I chatted with Brian (aka bdougie) about Hacktoberfest, building OpenSauced, and making successful open-source projects.

Original: codingcat.dev/podcast/building-successful-o..

Introduction to OpenSauced

CodingCat.dev: Welcome back to CodingCat.dev podcast. Today on the show, we've got Brian, also known as bdougie. What's up?

Brian: Hey, glad to be back!

CodingCat.dev: It's been a while. We last had you on in December of '22. With Hacktoberfest kicking off, it’s the perfect time to discuss open source. Let's start with a refresher for everyone. What’s new with OpenSauced since our last chat?

Brian: Sure! OpenSauced initially started as a way for contributors to track and manage their open-source contributions. It has evolved significantly since then. We raised a seed round, scaled up the team to ten members, and our focus is now on making more open-source projects successful through data-driven insights.

Origin and Evolution of OpenSauced

To give you a bit more context, OpenSauced is a project that found its roots in GitHub. I previously worked at Netlify, creating a CRM-like platform for open source contributions. It was designed to gather insights and PR data in one place, streamlining the process for contributors and maintainers alike.

After participating in Techstars and raising seed funding, our goal solidified: identify what makes open source projects successful and replicate those achievements through data analysis and centralized dashboards.

"The goal really is to identify what success in open source looks like. So trying to repeat those through data for projects, and then we have another opportunity for folks to look at their own personal profile and contributions."

Understanding Metrics in Open Source Projects

A critical aspect of OpenSauced’s platform is to provide metrics and analytics that help identify successful projects and contributors. Let's break down some of these insights:

Confidence Scores

We evaluate the "Confidence" score, which assesses the likelihood of someone contributing to a project. For instance, projects with high star and fork counts typically indicate higher engagement and confidence. With projects like Supabase showing that 40% of its stars and forks convert into contributions, it's evident that these metrics are integral for assessing community involvement and contribution patterns.

"Confidence is the ability for somebody to make a contribution to this project."

Case Study: TypeScript

TypeScript, backed by Microsoft, demonstrates different engagement levels. For TypeScript, only 16% of the community's stars and forks convert into contributions. This variance shows the challenges and complexities in contributing to more intricate projects like TypeScript.

Business Side of Open Source

Open-source projects often require backing from companies to succeed. Opensauced embarked on this journey by providing data for Hacktoberfest and raising seed rounds to further their efforts. This transition underscored the necessity of understanding business dynamics within the open-source ecosystem.

CodingCat.dev: Can you talk a bit about the seed round and what it took to make open source a viable business?

Brian: It's interesting. Initially, our goal was to make people successful in open source. At GitHub, I aimed to get developers to use the platform more effectively. The business side required us to identify specific metrics and stats that indicate project health and success. For example, partnering with companies like Vercel and Sanity helps us understand the ethos of open source and cater to varying needs.

The Role of Data in Open Source Success

Collecting and analyzing data from various repositories is crucial for identifying patterns of success in open source projects. Opensauced tracks metrics like contributions, issue creation/resolution, and PR reviews to create a comprehensive understanding of project health.

For instance, the introduction of the "OSCR" (Open Source Contributor Rating) provides a numerical evaluation of a contributor’s impact based on diverse activities. It balances confidence and sway (engagement through issues and PRs) to provide a non-gamifiable, comprehensive score.

"The Oscar is like a metric based on not only confidence but also quality...Sway is the ability of generating conversation within contributions."

Demo: The Opensauced Platform

Let's take a closer look at how the Opensauced platform functions:

  1. Repository Insights: By examining repositories like Supabase, Opensauced tracks contributions and engagement rates. For example, despite high star counts, the engagement might vary, indicating different levels of community involvement. 2. Contributor Analysis: Identifying prominent contributors through metrics like engagement and contribution quality helps streamline the onboarding process for new contributors.

Addressing Challenges in Open Source Contribution

One notable challenge is that large projects like TypeScript often rely heavily on contributions from employees of the sponsoring company, like Microsoft. This internal contribution tendency skews the general participation metrics and makes it trickier for new contributors to navigate.

CodingCat.dev: What about contributors for large projects?

Brian: It's true. For projects like TypeScript, contributions are predominantly from employees. Identifying and engaging with external contributors becomes essential to maintain a diverse and active community.

Tackling the Gamification Issue

A significant focus for Opensauced is ensuring that the metrics and scores provided cannot be gamified. This authenticity ensures that the scores are a true reflection of actual contributions and engagement.

CodingCat.dev: How do you ensure that the scores can’t be gamed?

Brian: We try to construct a score that requires participation across various domains. Gamifying such a score is challenging as it demands consistent, meaningful activity across multiple areas.

Future of Opensauced: Vision and Goals

Looking forward, Opensauced aims to enhance its capabilities by leveraging AI and machine learning to provide even more granular insights into contributions and project success. This includes expanding features like the code OWNERS file automation and exploring broader integrations with enterprise solutions.

CodingCat.dev: Where do you see Opensauced in the next 2-3 years?

Brian: We're actively working on partnerships and embedding our product within larger ecosystems. Our vision is to orchestrate developer culture, ensuring smooth contributions and project management both in open-source and enterprise environments.

"We see ourselves having a footprint on how folks are transferring knowledge and orchestrating their culture."

Community and Contributor Growth

The future involves empowering contributors and maintaining strong community engagement. Tools like vectorized search for issues and discussions are designed to facilitate better project management and contributor onboarding.

Final Thoughts

Opensauced is driving the way forward in optimizing open source project management through data-driven insights and community-focused solutions. By addressing the unique challenges faced by contributors and maintainers, Opensauced helps create successful and sustainable open source ecosystems.

Whether you're an individual contributor looking to make your mark in open source or an enterprise seeking to streamline your open source involvement, Opensauced offers invaluable tools and insights. Visit OpenSauce today and see how you can make a difference.

Resources

Code Snippets and Examples

// Example function to fetch contribution data from Opensauced API
async function fetchContributions(repo) {
    const response = await fetch(`https://api.opensauced.pizza/repo/${repo}/contributions`);
    const data = await response.json();
    console.log(data);
}

// Usage

fetchContributions('octocat/Spoon-Knife');
# Python script to analyze issue trends in a repository
import requests
def fetch_issues(repo):response = requests.get(f'https://api.opensauced.pizza/repo/{repo}/issues')
issues = response.json()
return issues

# Example usage
issues = fetch_issues('octocat/Hello-World')
print(issues)

Quote Highlight

"Confidence is the ability for somebody to make a contribution to this project, and the way we've been marking this is like folks who star and fork. Like if you look at Supabase, I think it is like seventy thousand stars."

Did you find this article valuable?

Support CodingCat.dev by becoming a sponsor. Any amount is appreciated!