0tokens

Topic / how to contribute to asyncapi as gsoc student

How to Contribute to AsyncAPI as GSoC Student: A Guide

Learn how to contribute to AsyncAPI as a GSoC student. This guide covers project selection, technical prerequisites, and tips for a winning proposal.


The Google Summer of Code (GSoC) is a prestigious global program that provides university students and open-source enthusiasts the opportunity to work on real-world software projects. For those interested in event-driven architectures (EDA), APIs, and developer tooling, the AsyncAPI Initiative is one of the most rewarding organizations to join.

Contributing to AsyncAPI isn't just about writing code; it’s about shaping the industry standard for defining asynchronous APIs. As an organization that prioritizes community growth and mentorship, AsyncAPI provides a structured environment for GSoC students to make a lasting impact. This guide explores the technical prerequisites, contribution workflow, and strategy to secure a GSoC slot with AsyncAPI.

What is AsyncAPI and Why Contribute?

Before diving into the "how," it is crucial to understand the "what." AsyncAPI is an open-source initiative that provides a specification for defining asynchronous, message-driven APIs. Much like how OpenAPI (Swagger) is the standard for REST APIs, AsyncAPI is the standard for systems using protocols like Kafka, RabbitMQ, MQTT, and WebSockets.

For a GSoC student, contributing to AsyncAPI offers:

  • Deep Technical Exposure: You will work with TypeScript, Go, Rust, or React, depending on the toolset.
  • Industry Standards: You’ll learn the nuances of API specification and schema validation.
  • Global Networking: You will collaborate with maintainers from top tech companies who are building the future of EDA.

Identifying GSoC Project Ideas at AsyncAPI

AsyncAPI usually maintains a dedicated repository or a section in their community forum for GSoC project ideas. To start:

1. Visit the Projects Repository: Look for the `community` or `gsoc` repositories on the AsyncAPI GitHub organization.
2. Filter by Difficulty and Language: Projects range from building CLI tools and documentation generators (React/Markdown) to complex parsers (Go/TypeScript) and IDE plugins.
3. Evaluate Your Skills: If you are proficient in web development, look at the AsyncAPI Studio or UI components. If you prefer systems programming or backend logic, focus on the Parser-JS or Gherkin-based testing suites.

The Technical Contribution Workflow

Successful GSoC candidates don't wait for the application period to start. They begin contributing months in advance. Follow this technical roadmap:

1. Set Up the Development Environment

Clone the repositories you are interested in. Most AsyncAPI tools require Node.js or Docker.

  • Prerequisite: Ensure you have a strong grasp of Git. Familiarize yourself with "Signing off" commits (DCO - Developer Certificate of Origin), as AsyncAPI strictly enforces this for legal compliance.

2. Solve "Good First Issues"

Navigate to the GitHub issues tab of your chosen repository and filter by the `good-first-issue` or `help-wanted` labels.

  • Task Type: These usually involve fixing a bug in the CLI, updating documentation, or adding a small feature to the code generator.
  • Pro Tip: Don't just pick an issue and disappear. Comment on the issue asking to be assigned, and briefly describe your intended approach.

3. Understand the Specification

You cannot effectively contribute to AsyncAPI tools without understanding the AsyncAPI Specification. Read through the spec documentation. Understand the difference between `channels`, `messages`, and `bindings`. This foundational knowledge will make your GSoC proposal significantly stronger.

Crafting a Winning GSoC Proposal for AsyncAPI

Your proposal is the most critical document in your application. For AsyncAPI, a technical, data-driven proposal wins over a generic one.

  • Detailed Timeline: Break your 12-week GSoC period into weekly milestones. Include "buffer weeks" for testing and documentation.
  • Implementation Plan: Don't just say "I will build the feature." Describe the architecture. Which libraries will you use? How will you handle edge cases? Will you need to update the Parser?
  • Proof of Competence: Include links to your previous PRs (Pull Requests) within the AsyncAPI ecosystem. A candidate who has already landed 2-3 PRs is 10x more likely to be selected than someone with no history.

Communication: The AsyncAPI Community Pitch

AsyncAPI is a "community-first" organization. They communicate primarily through:

  • Slack: Join the AsyncAPI Slack workspace. Introduce yourself in the `#gsoc` channel.
  • GitHub Discussions: Participate in architectural discussions. If you have an idea for a project that isn't on the list, propose it here.
  • Public Meetings: AsyncAPI holds regular community meetings. Attending these (and even speaking) shows your commitment level.

Common Pitfalls to Avoid

  • Ghosting: If you are assigned an issue, finish it. If you can't, communicate it early.
  • Ignoring the Styling Guides: Every AsyncAPI repo has a `CONTRIBUTING.md` file. Read it. Ensure your code style matches their linting rules and your commits are properly formatted.
  • Lack of Tests: AsyncAPI maintainers value reliability. Any PR that adds a feature without corresponding unit or integration tests is likely to be rejected or stalled.

Summary Checklist for GSoC Applicants

1. Join the Slack: Be active and ask smart questions.
2. Study the Spec: Understand the core of what AsyncAPI does.
3. Contribute Early: Aim for at least 2-4 merged PRs before the application deadline.
4. Draft Early: Share your proposal draft with potential mentors for feedback at least two weeks before the deadline.

FAQ

Q: Do I need to be an expert in Kafka or RabbitMQ to contribute?
A: No. While understanding message brokers helps, many projects focus on tooling (CLI, UI, SDK generation) where general software engineering skills are more valuable.

Q: Which programming languages are most common in AsyncAPI?
A: JavaScript/TypeScript is the most prevalent, especially for the parser and UI tools. However, there are projects in Go, Java, and Python.

Q: Can I propose my own project idea?
A: Yes, AsyncAPI encourages innovative ideas. However, you must discuss it with maintainers on Slack or GitHub Discussions before the application period starts to ensure it aligns with the roadmap.

Apply for AI Grants India

Are you an Indian developer or founder building innovative tools in the AI or developer productivity space? AI Grants India provides the resources and mentorship needed to take your project from a prototype to a scalable product. Start your journey today and apply for funding at https://aigrants.in/.

Building in AI? Start free.

AIGI funds Indian teams shipping AI products with credits across compute, models, and tooling.

Apply for AIGI →