diff --git a/website/app/contributors/page.tsx b/website/app/contributors/page.tsx
index 7499fce..55ba5ae 100644
--- a/website/app/contributors/page.tsx
+++ b/website/app/contributors/page.tsx
@@ -1,6 +1,7 @@
import Image from "next/image";
import Link from "next/link";
import { getContributorStats } from "@/lib/contributors";
+import { siteConfig } from "@/config/site";
import styles from "./page.module.css";
export default function ContributorsPage() {
@@ -13,6 +14,16 @@ export default function ContributorsPage() {
Thank you to all the contributors who have documented patterns, anti-patterns, and obstacles.
+
+ Want to contribute? Read the{" "}
+
+ contribution guide
+ .
+
diff --git a/website/tests/unit/components/contributors-page.test.tsx b/website/tests/unit/components/contributors-page.test.tsx
index 6081718..725c073 100644
--- a/website/tests/unit/components/contributors-page.test.tsx
+++ b/website/tests/unit/components/contributors-page.test.tsx
@@ -2,6 +2,7 @@ import { render, screen } from '@testing-library/react'
import ContributorsPage from '@/app/contributors/page'
import { getContributorStats } from '@/lib/contributors'
import { ContributorStats } from '@/lib/contributors'
+import { siteConfig } from '@/config/site'
jest.mock('@/lib/contributors')
@@ -77,6 +78,14 @@ describe('Contributors Page', () => {
expect(description).toBeInTheDocument()
})
+ it('should link to the contribution guide in a new tab', () => {
+ render()
+ const guideLink = screen.getByRole('link', { name: /contribution guide/i })
+ expect(guideLink).toHaveAttribute('href', `${siteConfig.links.github}/blob/main/CONTRIBUTE.md`)
+ expect(guideLink).toHaveAttribute('target', '_blank')
+ expect(guideLink).toHaveAttribute('rel', 'noopener noreferrer')
+ })
+
it('should render contributor cards with avatar, name, and counts', () => {
render()