Skip to content

feat: photo gallery protection and favicon update - #127

Merged
jaspermayone merged 2 commits into
mainfrom
jaspermayone/photo-protection
Aug 13, 2026
Merged

jaspermayone merged 2 commits into
mainfrom
jaspermayone/photo-protection

Conversation

@jaspermayone

Copy link
Copy Markdown
Owner

Summary

Adds three layers of protection to the /photos gallery, plus a favicon refresh.

Hotlink protection (src/proxy.ts)

  • Blocks other sites from embedding /images/photography/* (raw files and /_next/image variants) with a 403 when the referer is a foreign host.
  • Requests with no referer (direct visits, the image optimizer, curl) pass through. This guards embedding, not downloading.

Casual deterrence (src/components/PhotoShield.tsx)

  • Blocks the right-click menu, drag-to-save, and text selection on the gallery.
  • draggable={false} on each image.

Watermark + copyright

  • Small © Jasper Mayone watermark on each photo tile.
  • Rights notice under the gallery intro.
  • JSON-LD ImageObject entries now carry copyrightNotice, creditText, and creator.

Favicon

  • src/app/icon.png was a mislabeled 2298x2204 JPEG of the dark portrait. It is now a proper 512x512 PNG of the light profile pic (jmlite).
flowchart LR
    A[Request for /images/photography/*] --> B{Referer header?}
    B -- none --> C[Serve image]
    B -- jaspermayone.com / vercel.app / localhost --> C
    B -- foreign host --> D[403]
Loading

@vercel

vercel Bot commented Aug 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
website Ready Ready Preview Aug 13, 2026 1:19pm

@github-actions

Copy link
Copy Markdown

React Doctor found no new issues. 🎉

Reviewed by React Doctor for commit e79df9e.

@jaspermayone
jaspermayone merged commit c0382e0 into main Aug 13, 2026
4 checks passed

This branch was successfully deployed

1 active deployment
Preview — e79df9ed Deployed Aug 13, 2026 by vercel[bot]
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