Skip to content

feat: add IndieHunt footer badge - #85

Merged
andrewzolotukhin merged 1 commit into
mainfrom
feat/indiehunt-footer-badge
Jul 27, 2026
Merged

feat: add IndieHunt footer badge#85
andrewzolotukhin merged 1 commit into
mainfrom
feat/indiehunt-footer-badge

Conversation

@andrewzolotukhin

@andrewzolotukhin andrewzolotukhin commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Original request

Add an IndieHunt badge to the site using the supplied light and dark theme SVG snippets, follow the $pr-workflow, and do not create a blog post.

What changed

  • Added a themed IndieHunt badge to the public landing-page footer.
  • Linked the badge to https://indiehunt.io/project/xpenser in a new tab with rel="noopener".
  • Used the supplied 265×58 light and dark SVG assets with the light image shown in light mode and the dark image shown in dark mode.
  • Added component coverage for the destination, external-link attributes, image sources, dimensions, and theme classes.
  • Added Playwright coverage for light/dark visibility on the public index.

Reasoning

The implementation follows the existing footer badge convention: both theme images live inside one accessible, keyboard-focusable link so users see a single badge and a single focus target. The supplied URLs, alt text, dimensions, and link attributes are preserved exactly.

Blog post

Skipped. This is a small footer badge addition, and the original request explicitly asked for no blog post.

Screenshots / Preview

Preview: https://xpenser-pr-085.cleverbrush.com

Light theme asset Dark theme asset
IndieHunt light badge IndieHunt dark badge

Manual preview QA at 1440×1000 confirmed:

  • The IndieHunt badge fits the existing footer badge grid without overflow or overlap.
  • Light mode shows only the light SVG; dark mode shows only the dark SVG.
  • Both variants render at 265×58.
  • The accessible link targets https://indiehunt.io/project/xpenser with _blank and noopener.
  • Browser runtime reported no page errors.

Validation

  • npm run lint — 359 files checked
  • npm run typecheck — 11 tasks passed
  • npm test — 95 files and 520 tests passed
  • Focused apps/web/components/landing-page.test.tsx — 1 test passed
  • Lint and test GitHub check
  • Deploy PR environment GitHub check
  • Playwright e2e GitHub check
  • Preview QA in light and dark themes
  • SigNoz checked for service.name = xpenser-web-pr-85; no matching log, trace, or http.server.duration.count resources were available, so telemetry is explicitly recorded as unavailable for this static footer preview rather than reported as a pass.

Checklist

  • I kept the change focused.
  • I updated docs or tests where needed.
  • I checked for secrets, local env files, and generated build output.
  • API changes keep contracts, endpoint metadata, and handlers aligned (not applicable; no API changes).

@andrewzolotukhin
andrewzolotukhin temporarily deployed to pr-85 July 27, 2026 07:30 — with GitHub Actions Inactive
@andrewzolotukhin
andrewzolotukhin merged commit c26b9b3 into main Jul 27, 2026
4 checks passed
@andrewzolotukhin
andrewzolotukhin deleted the feat/indiehunt-footer-badge branch July 27, 2026 07:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant