diff --git a/apps/web/components/landing-page.test.tsx b/apps/web/components/landing-page.test.tsx
index 861e53d..4d9b2ab 100644
--- a/apps/web/components/landing-page.test.tsx
+++ b/apps/web/components/landing-page.test.tsx
@@ -176,6 +176,31 @@ describe('LandingPage', () => {
expect(auraPlusPlusDarkBadgeImage?.getAttribute('height')).toBe('58');
expect(auraPlusPlusDarkBadgeImage?.className).toContain('hidden');
expect(auraPlusPlusDarkBadgeImage?.className).toContain('dark:block');
+
+ const openHuntsBadgeLink = screen.getByRole('link', {
+ name: /OpenHunts Club Member/i
+ });
+ expect(openHuntsBadgeLink).toHaveProperty(
+ 'href',
+ 'https://openhunts.com/'
+ );
+ expect(openHuntsBadgeLink.getAttribute('target')).toBe('_blank');
+ expect(openHuntsBadgeLink.getAttribute('rel')).toBe(
+ 'noopener noreferrer'
+ );
+ expect(openHuntsBadgeLink.getAttribute('title')).toBe('OpenHunts Club');
+
+ const openHuntsBadgeImage = screen.getByAltText(
+ 'OpenHunts Club Member'
+ );
+ expect(openHuntsBadgeImage.getAttribute('src')).toBe(
+ 'https://cdn.openhunts.com/badges/club.webp'
+ );
+ expect(openHuntsBadgeImage.getAttribute('width')).toBe('486');
+ expect(openHuntsBadgeImage.getAttribute('height')).toBe('105');
+ expect(openHuntsBadgeImage.getAttribute('style')).toBe(
+ 'height: auto; width: 195px;'
+ );
expect(
screen.getByText(
/read or manage vendors, categories, and transactions/i
diff --git a/apps/web/components/landing-page.tsx b/apps/web/components/landing-page.tsx
index 0f703de..b66e9e5 100644
--- a/apps/web/components/landing-page.tsx
+++ b/apps/web/components/landing-page.tsx
@@ -195,6 +195,15 @@ const auraPlusPlusBadge = {
width: 265
} as const;
+const openHuntsBadge = {
+ alt: 'OpenHunts Club Member',
+ height: 105,
+ href: 'https://openhunts.com',
+ src: 'https://cdn.openhunts.com/badges/club.webp',
+ title: 'OpenHunts Club',
+ width: 486
+} as const;
+
const apiCurlExample = `curl ${openApiSpecPath}
curl ${mcpEndpointPath} \\
-H "Authorization: Bearer \${XPENSER_API_KEY}"`;
@@ -599,6 +608,27 @@ function AuraPlusPlusBadge() {
);
}
+function OpenHuntsBadge() {
+ return (
+
+ {/* biome-ignore lint/performance/noImgElement: OpenHunts provides this hosted badge snippet, and next/image would need remote config for a tiny footer badge. */}
+
+
+ );
+}
+
function FooterBadges() {
return (