Skip to main content
Pull Request Deep Dives

The Community's Compass: How Our RFC-Driven Pull Requests Guide New Contributors at hqblx

This guide explores the RFC-driven pull request process at hqblx, a structured approach designed to transform new contributors into confident, effective community members. We explain why this method, centered on a Request for Comments (RFC) phase, is more than a technical gate—it's a mentorship framework that builds careers and fosters real-world application skills. You'll learn the core concepts, see anonymized scenarios of its impact, and compare it to other onboarding models. We provide a det

Introduction: The Onboarding Challenge in Open Source Communities

Joining a new open-source project can feel like walking into a bustling, unfamiliar city without a map. The codebase is vast, the social norms are unwritten, and the fear of making a "wrong" contribution is paralyzing. This is the universal pain point for new contributors, a barrier that stifles innovation and limits community growth. At hqblx, we recognized that traditional "find an issue, submit a PR" models often leave newcomers feeling isolated and unsure, leading to high drop-off rates and missed potential. Our solution was to re-engineer the contribution pathway itself, placing a structured, collaborative dialogue at its heart. This guide details our RFC-driven pull request process, explaining not just what it is, but why it functions as a powerful compass for navigation. We will focus on its profound implications for community building, career development, and the application of skills to real-world problems, demonstrating how a procedural shift can cultivate a more inclusive, skilled, and resilient contributor ecosystem.

The Core Problem: Good Intentions, Fragmented Outcomes

In a typical open-source project, a newcomer might fork a repository, make a local change, and submit a pull request (PR) directly. This often results in a rapid-fire review cycle focused solely on code correctness. The contributor might receive terse feedback, requests for changes they don't fully understand, and ultimately, a sense of transactional interaction. The human element—the why behind decisions, the project's strategic direction, the alternative approaches considered—gets lost. This process fails to onboard the contributor into the project's intellectual community. It treats the PR as an endpoint for code delivery rather than the midpoint of a learning journey. For individuals looking to build a portfolio or transition careers, this experience offers little beyond a line on a GitHub profile, missing the opportunity for deeper professional growth and network building.

Our Guiding Philosophy: Contribution as Conversation

We built our process on a simple but radical premise: the most valuable contribution is a well-understood one. The quality of the final code is inseparable from the quality of the discussion that precedes it. Therefore, we mandate a Request for Comments (RFC) document as the first formal step for any non-trivial change. This document is not a bureaucratic hurdle; it is an invitation to a structured conversation. It forces clarity of thought, exposes assumptions, and solicits diverse perspectives before a single line of code is written. This approach shifts the dynamic from "reviewer vs. contributor" to "collaborators solving a problem together." It transforms the contribution from a transaction into a relationship-building exercise, directly serving our themes of community, career development, and practical application by embedding mentorship and strategic thinking into the workflow.

Core Concepts: Deconstructing the RFC-Driven Model

To understand why the RFC-driven model works, we must dissect its core components and the psychological and practical frameworks they activate. This is not merely a workflow; it's a system designed to elicit quality, foster alignment, and reduce cognitive load for all parties. The RFC document itself is a scaffold for critical thinking. It requires the contributor to articulate the problem, research existing solutions, propose a specific approach, and consider trade-offs and alternatives. This exercise mirrors the planning phase of any serious software engineering project in a professional setting, thereby providing immediate real-world application practice. For the community, it serves as a centralized, asynchronous forum for design discussion, preventing fragmented conversations across issues, Slack, and email. The model acknowledges that collective intelligence, properly channeled, produces better outcomes than isolated effort.

The RFC Document: A Blueprint for Collaborative Thinking

The structure of our RFC template is intentional. It typically includes sections for: Summary, Motivation, Detailed Design, Drawbacks, Alternatives, and Unresolved Questions. Filling out each section is a mini-education in software design. The "Motivation" section connects the change to user or business needs, teaching contributors to think in terms of impact, not just features. The "Alternatives" section requires research and comparative analysis, a key skill for any senior engineer or architect. By the time a contributor posts an RFC, they have already done the deep thinking that turns a casual participant into a invested stakeholder. This process builds career-relevant skills directly: technical writing, systems analysis, and persuasive communication.

Why It Works: Reducing Friction and Building Trust

The mechanism works because it de-risks contribution for everyone. For the maintainer, reviewing a well-structured RFC is faster and less frustrating than reviewing a fully implemented PR that may be architecturally misaligned. It's easier to redirect a 2-page document than to request major changes to 500 lines of code. For the contributor, they receive design feedback when their investment is low (just the document) rather than high (completed code). This creates psychological safety, encouraging bolder and more innovative proposals. Furthermore, the public discussion on the RFC serves as a living knowledge base for future contributors, continuously strengthening the community's shared understanding. The trust built through this respectful, upfront dialogue is the foundation of a healthy, sustainable project.

Method Comparison: RFC-Driven PRs vs. Other Onboarding Paths

To appreciate the RFC-driven model, it's helpful to compare it to other common approaches for integrating new contributors. Each model has its place, depending on project size, maturity, and community goals. The choice of model signals what a project values: speed, scale, or depth of integration. Below is a comparison of three prevalent approaches.

ModelCore ProcessProsConsBest For
Direct PR (Traditional)Contributor finds a "good first issue," codes a fix, and submits a PR for review.Very low barrier to initial action; fast for trivial, unambiguous fixes.High risk of misalignment and rework; poor learning transfer; feels transactional.Micro-fixes, typo corrections, or very mature projects with extremely well-scoped bugs.
Mentorship-FirstNew contributor is paired with a dedicated mentor who guides them through an issue.Provides high-touch support and direct relationship building; excellent for learner confidence.Extremely resource-intensive for maintainers; does not scale well with many newcomers.Small, curated programs like Google Summer of Code or small, close-knit teams.
RFC-Driven (Our Model)Contributor writes an RFC for feedback before any significant implementation begins.Builds design skills and project context; scales discussions asynchronously; de-risks major work.Higher initial time investment; can feel slow for those seeking quick wins.Projects valuing design cohesion, complex features, and building a community of informed contributors.

The RFC-driven model strategically occupies a middle ground. It is more scalable than pure mentorship but far more engaging and educational than the direct PR model. It explicitly trades a bit of initial speed for massive gains in quality, alignment, and contributor retention. For individuals using open source for career development, the RFC model provides demonstrable skills in design and communication that are highly attractive to employers, moving beyond mere code commits.

Choosing the Right Path for Your Goals

A contributor should choose their approach based on their personal goals. If the goal is simply to get a quick commit for a profile, a direct PR on a well-marked "good first issue" might suffice. However, if the goal is to deeply understand a codebase, build a reputation within a community, and develop professional-grade design skills, the RFC path is unequivocally more valuable. For project maintainers, the choice hinges on what they need most: many small fixes (favoring direct PR) or thoughtful, sustainable growth on complex areas (favoring RFCs). At hqblx, our focus on substantial, integrated projects makes the RFC model the cornerstone of our community strategy.

A Step-by-Step Guide: Navigating the RFC-Driven Contribution Journey

This section provides a detailed, actionable walkthrough of the entire RFC-driven contribution process at hqblx. We'll follow the journey of a hypothetical newcomer, Alex, who wants to add a new data export feature. Treat this as your map; each step is designed to build confidence and competence incrementally.

Step 1: Discovery and Preliminary Discussion

Alex begins not by coding, but by exploring. They read the project's README, contribution guidelines, and browse existing RFCs to understand the tone and scope of discussions. They identify a need for a new export format based on user forum feedback. Before writing anything formal, Alex searches existing issues and perhaps posts a short, informal question in the project's discussion forum: "I've seen requests for JSON export; is this a feature the team would consider?" This lightweight touchpoint gauges interest and prevents wasted effort. It's the first step in community engagement—listening and asking before doing.

Step 2: Drafting the Request for Comments (RFC)

Receiving positive signals, Alex clones the RFC template repository and begins drafting. They spend substantial time on the Motivation section, linking to specific forum posts to ground the feature in real user needs. For the Detailed Design, they diagram the proposed flow, naming specific existing functions that would be modified and new ones to be created. Crucially, in Alternatives, Alex researches and describes two other implementation paths, noting why their chosen approach is preferred. They also candidly lists Drawbacks, such as increased bundle size, and Unresolved Questions, like naming conventions for the new API endpoint. This draft is their application of professional software design principles.

Step 3: Submitting and Iterating on the RFC

Alex submits the RFC as a pull request to the project's RFCs repository (or a dedicated discussion forum). The title is clear: "RFC: Add JSON export functionality for report data." For the next week, community members and maintainers review the document. Feedback might include: "Have you considered streaming for large datasets?" or "This design aligns with our pattern in module X, please reuse component Y." Alex engages with each comment, updating the RFC document directly. This public, text-based dialogue is the core of the learning experience. Alex learns the project's design patterns and constraints not from a static style guide, but through active, applied discussion.

Step 4: RFC Acceptance and Implementation Planning

Once the discussion converges and a maintainer labels the RFC as "Accepted," Alex has a green light and, more importantly, a vetted blueprint. The unresolved questions are now resolved, and the design has community buy-in. Alex can now create a new issue in the main code repository, linking back to the accepted RFC as the source of truth. This issue becomes the implementation tracking ticket. At this stage, Alex may break the work down into smaller, actionable subtasks—a practice that mirrors professional project management and is invaluable for career development.

Step 5: Coding and Submitting the Implementation PR

Only now does Alex begin writing the bulk of the implementation code. Because the design is settled, they can code with confidence. The resulting pull request to the main repository references both the tracking issue and the accepted RFC. In the PR description, Alex can succinctly state: "This implements the design agreed upon in RFC #45." Reviewers' jobs are now easier: they are verifying that the code correctly implements the approved design, not debating the design itself. Reviews tend to be faster and more focused on code quality, edge cases, and tests.

Step 6: Review, Finalize, and Merge

The code review proceeds, but with a shared context that eliminates major philosophical debates. Feedback might be about performance optimizations, test coverage, or error handling details. Alex makes the necessary commits. Once approved, a maintainer merges the PR. The cycle is complete. Alex has not just added a feature; they have been integrated into the project's decision-making fabric, built relationships with maintainers, and created a public record of their design thinking—a career asset far beyond the code commit.

Real-World Application Stories: The Impact Beyond Code

The true test of any process is its impact on people. Here, we present two anonymized, composite scenarios inspired by the patterns we've observed at hqblx and similar communities. These stories illustrate how the RFC-driven model translates into tangible benefits for community health and individual careers.

Scenario A: The Career Transitioner

Sam, a support engineer looking to move into a backend developer role, chose to contribute to hqblx to build a portfolio. Sam started with an RFC for improving API error messaging. The process of writing the Detailed Design forced Sam to deeply understand the existing HTTP middleware stack. During the RFC review, a senior maintainer suggested a more extensible design pattern using a new library. Sam researched this library, updated the RFC, and implemented it. The resulting PR was merged. Months later, in a job interview, Sam didn't just show the GitHub commit; they walked the interviewers through the RFC discussion thread, demonstrating their ability to absorb complex feedback, research alternatives, and adapt a design. The hiring manager noted this evidence of collaborative design skill was the deciding factor. The RFC process had provided the narrative structure for Sam's career story.

Scenario B: The Feature Advocate & Community Pillar

A team at a small startup was using hqblx's platform and needed a specific integration feature. Rather than forking privately, their developer, Jordan, proposed it via the RFC process. The RFC sparked a significant community debate, revealing that three other organizations had similar but slightly different needs. Jordan facilitated the discussion, synthesizing comments and proposing a more flexible, generic design that could serve all use cases. The resulting implementation was broader and more robust than Jordan's original idea. Jordan became the de facto expert on that module. Over time, they were invited to triage related issues and eventually granted commit access. Jordan's path from user to contributor to maintainer was paved by the trust and clarity built through that initial RFC dialogue. The community gained a powerful new feature and a dedicated maintainer, while Jordan's professional network and reputation expanded significantly.

Scenario C: The Avoided Disaster and Lessons Learned

Not all stories end with a merged feature, and that's a strength. A contributor once submitted a well-intentioned RFC proposing a major refactor to "modernize" a core module. The RFC discussion, involving several long-time maintainers, surfaced critical but obscure dependencies on the old structure that the contributor had missed. The consensus was that the cost and risk outweighed the benefits. The RFC was politely closed as "not accepted." While disappointing, this outcome was a positive learning experience. The contributor gained an invaluable, low-stakes lesson in system complexity and legacy code stewardship—a lesson that would have been far more painful learned after weeks of coding and an rejected PR. The community maintained stability, and the contributor, by engaging respectfully, remained a valued member for future, better-scoped contributions.

Common Questions and Concerns (FAQ)

Adopting or participating in an RFC-driven process naturally raises questions. Here we address the most common concerns we hear from both new contributors and project maintainers considering this model.

Isn't this too slow and bureaucratic for small fixes?

Absolutely. The RFC process is explicitly for "non-trivial" changes. For typo fixes, dependency updates, or obvious bug fixes matching a clear template, a direct PR is perfectly appropriate and encouraged. Our guidelines help contributors distinguish between a "trivial" change (correcting a broken link) and a "substantial" one (adding a new configuration option). The key is judgment and clear communication in the project's CONTRIBUTING.md file.

As a newcomer, I'm intimidated to write a formal design document. What if my idea is wrong?

This is the most common fear, and the process is designed to alleviate it. The RFC is a starting point for discussion, not a final exam. Its purpose is to uncover what's "wrong" or incomplete early, in a supportive setting. Many contributors find that starting with a rough draft and asking for early feedback in the project's chat forum (e.g., "Can someone glance at my WIP RFC on topic X?") is a great way to reduce anxiety. Remember, an RFC showing flawed thinking that is improved through collaboration is seen as a success, not a failure.

How do we, as maintainers, prevent RFC discussions from stalling or becoming endless debates?

This requires gentle facilitation. Designate a maintainer to shepherd RFC discussions. Their role is to summarize consensus, ask clarifying questions, and nudge the conversation toward closure. Setting expectations is key: an RFC should be open for a standard review period (e.g., 7-10 days). After that, the shepherd can propose a decision: accept, accept with modifications, or close. The goal is a decision, not perfection.

Does this process discourage spontaneous or drive-by contributions?

It can reshape them, but not necessarily discourage. A drive-by contributor with a major change idea will be guided to the RFC process. Some may choose not to participate, which is okay—it filters for contributors interested in the long-term health of the project. For those who do engage, it often converts a one-time drive-by into a more meaningful, though possibly longer, engagement. For minor changes, the direct path remains open.

What tools do you use to manage RFCs?

There are several effective approaches. Some projects use a dedicated `rfcs` repository with issues or pull requests. Others use a specific category in their discussion forum (e.g., GitHub Discussions). The tool is less important than the consistent template and process. The critical feature is that the discussion is asynchronous, public, and linked from the main project.

Conclusion: Building a Compass, Not Just a Gate

The RFC-driven pull request model at hqblx is far more than a quality gate for code. It is a community-building engine, a career-development platform, and a practical simulator for professional software design. By front-loading design discussion, we replace uncertainty with clarity, isolation with collaboration, and transactions with relationships. For the individual contributor, it builds a portfolio of demonstrable thought process. For the community, it creates a scalable, knowledge-preserving culture of inclusive design. For the project, it results in more coherent, sustainable architecture. While it demands more initial investment than the traditional PR model, the returns in quality, contributor retention, and shared understanding are profound. It transforms the contribution process from a maze into a guided journey, providing a reliable compass for anyone who wishes to find their way and leave their mark.

About the Author

This article was prepared by the editorial team for this publication. We focus on practical explanations and update articles when major practices change.

Last reviewed: April 2026

Share this article:

Comments (0)

No comments yet. Be the first to comment!