link: https://www.youtube.com/watch?v=rquGUir-MBI&t=499s

How to Set Up a GitHub Repo for an Amazing Developer Experience

  1. Clear and Descriptive README:

    • The README is the landing page for your repo and should answer the question: “Why should I care?”
    • Include a project mission, goal, and why it exists.
    • Provide a quick-start guide and installation instructions.
    • Ensure links to documentation and contribution guidelines are visible.
    • Add a license link for clarity on usage rights.
  2. Create a Contributing File:

    • Explain how to contribute, report issues, and suggest features.
    • Include steps on setting up the project and running tests to ensure smooth contributions.
    • Focus on removing friction for new contributors.
  3. Improve Discoverability:

    • Use a descriptive tagline and fill in relevant topics (keywords) for better GitHub search results.
    • Topics should include technology, languages, frameworks, patterns, etc.
  4. Use Issue and Pull Request Templates:

    • Create templates for feature requests and bug reports to collect relevant information.
    • Offer links for additional support, like community forums or Stack Overflow.
  5. Add a License File:

    • Always include a license (MIT or Apache 2 recommended for simplicity).
    • The license file ensures others know their rights when using the project.
  6. Add a Code of Conduct:

    • Establish rules for community behavior.
    • Provide instructions for reporting misconduct.
  7. Use Tags, Releases, and Versioning:

    • Keep a changelog and tag releases for clear version tracking.
    • Versioning helps users understand changes between releases.
  8. Provide Well-Organized Documentation:

    • Documentation should have:
      • A detailed introduction to the project’s mission and features.
      • A clear “Getting Started” section with installation and quick start steps.
      • Guides for specific use cases and a comprehensive reference section.
    • Use GitHub wikis or static site generators to organize documentation.
  9. Create Awareness:

    • List your project in curated lists for related tools (e.g., Kafka, PostgreSQL).
    • Write articles for popular publications explaining how to solve problems using your project.