feat: add a centralized contributors page
This PR adds a new /community/contributors page to the AsyncAPI website.
Ive discussed everything about it in #4658 , So i would urge y'all to check it out.π
Changes made:
working (Do watch this 50 Secondrecording of the final working version):
https://github.com/user-attachments/assets/d80585d3-5c29-4734-93d4-78b0a4d1683b
Note:
- Installed/Added a dependecy:
framer-motion. - Added an Icon :
GitFork: coz no icon was related to this. - I guess there needed a screenshot of the resultant page like in the newsroom and all, so taken screenshot of the contributors page and added in the
/public/img/social/community-contributors.webp
And now i would love to know tweakings and changes from maintainers and the community π
Thankyou!
Related issue(s): #4658
Summary by CodeRabbit
-
New Features
- Added a Contributors page under Community with navigation entry.
- Searchable, paginated list of AsyncAPI repositories showing name, description, stars, forks and last updated.
- View contributors for each repository with avatars and client-side username filtering.
- Responsive layouts with smooth animations and enhanced header/hero visuals.
βοΈ Tip: You can customize this high-level summary in your review settings.
Deploy Preview for asyncapi-website ready!
Built without sensitive environment variables
| Name | Link |
|---|---|
| Latest commit | 555072280449a08351729cb6fbea5b0b74ffcf45 |
| Latest deploy log | https://app.netlify.com/projects/asyncapi-website/deploys/6941be3d00449d000892e6c9 |
| Deploy Preview | https://deploy-preview-4682--asyncapi-website.netlify.app |
| Preview on mobile | Toggle QR Code...Use your smartphone camera to open QR code link. |
To edit notification comments on pull requests, go to your Netlify project configuration.
[!IMPORTANT]
Review skipped
Review was skipped due to path filters
:no_entry: Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.jsonCodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including
**/dist/**will override the default block on thedistdirectory, by removing the pattern from both the lists.You can disable this status message by setting the
reviews.review_statustofalsein the CodeRabbit configuration file.
Walkthrough
Adds a new Contributors feature: a React page that lists AsyncAPI GitHub repositories with search and pagination, lets users select a repo to load its contributors (with client-side username filtering), plus a new Git fork icon, navigation entry, Next.js page, and framer-motion dependency.
Changes
| Cohort / File(s) | Summary |
|---|---|
Contributors UI & page components/contributors/Contributors.tsx, pages/community/contributors.tsx |
New React component (default export) that fetches AsyncAPI repositories (pagination, search), loads per-repo contributors (with client-side username filter), handles loading/errors, and is wrapped by a Next.js page using GenericLayout. |
Icon components/icons/GitFork.tsx |
New SVG React component IconGitFork (default export) rendering a git fork icon with optional className and style props. |
Navigation components/navigation/communityItems.tsx |
Added a "Contributors" navigation item linking to /community/contributors and imported the users icon. |
Dependencies package.json |
Added framer-motion dependency (version ^12.23.25) for animations. |
Sequence Diagram(s)
sequenceDiagram
participant User
participant Browser
participant Page as Contributors Page
participant GH as GitHub API
participant UI as UI Renderer
User->>Browser: Navigate to /community/contributors
Browser->>Page: mount
Page->>GH: fetch repositories (page, per_page)
GH-->>Page: repositories list + metadata
Page->>UI: render repositories list (search, pagination controls)
User->>UI: Search or change page
UI->>Page: update filters/pagination
Page->>Page: filter repos (client-side) / fetch new page
User->>UI: Select repository
UI->>Page: request contributors for repo
Page->>GH: fetch contributors for repo
GH-->>Page: contributors list
Page->>UI: render contributors (with avatar, counts)
User->>UI: Filter contributors by username
UI->>Page: apply contributor filter
Page->>UI: render filtered contributors
Estimated code review effort
π― 3 (Moderate) | β±οΈ ~20 minutes
- Pay attention to: repo/contributor fetch logic and pagination, error/loading states, GitHub API rate/error handling, framer-motion usage in UI.
Possibly related issues
- asyncapi/website#4658 β Implements the Contributors page and related components; appears directly related.
Possibly related PRs
- asyncapi/website#4127 β Related changes to community navigation entries; overlaps in communityItems modifications.
Suggested reviewers
- derberg
- devilkiller-ag
- akshatnema
- sambhavgupta0705
- vishvamsinh28
- anshgoyalevil
- asyncapi-bot-eve
- Mayaleeeee
Poem
π°
I hopped to fetch the repos bright,
Listed stars and forks in light,
I nudged the nav and drew a fork,
Called contributors after the fork,
Happy hops β the communityβs in sight!
Pre-merge checks and finishing touches
β Passed checks (3 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | β Passed | Check skipped - CodeRabbitβs high-level summary is enabled. |
| Title check | β Passed | The title accurately and concisely summarizes the main change: adding a new centralized contributors page to the AsyncAPI website. |
| Docstring Coverage | β Passed | Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. |
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands and usage tips.
β‘οΈ Lighthouse report for the changes in this PR:
| Category | Score |
|---|---|
| π΄ Performance | 36 |
| π’ Accessibility | 98 |
| π’ Best practices | 92 |
| π’ SEO | 100 |
| π΄ PWA | 33 |
Lighthouse ran on https://deploy-preview-4682--asyncapi-website.netlify.app/
hey maintainers, ive tried my best to fix the issues, now can you guide me what else i should do from here.. is it good to go?? @derberg @akshatnema @anshgoyalevil