Openfeed

Add your site to the ring

Paste your feed URL — or any photo page, and the feed will be discovered.

Don't have a feed yet?

Your site stays yours — it just needs to publish a small JSON feed of your photos. Copy the brief below and paste it into your AI agent (Claude Code, Cursor, whatever you use) in your site's repo; it contains everything needed to set it up. Then come back and submit your URL above.

Set up (or extend) my photo site so it can join a photo webring. The ring
reads a feed from my site; nothing is uploaded anywhere else. Requirements:

1. Serve a JSON Feed 1.1 at /photo/feed.json on my domain:
{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "My Name — Photos",
  "home_page_url": "https://MY-DOMAIN/photo/",
  "feed_url": "https://MY-DOMAIN/photo/feed.json",
  "authors": [{
    "name": "My Name",
    "url": "https://MY-DOMAIN",
    "avatar": "https://MY-DOMAIN/avatar.jpg"
  }],
  "_photoring": { "ring": "openfeed-demo", "creator": "my-stable-handle" },
  "items": [{
    "id": "https://MY-DOMAIN/photo/some-photo/",
    "url": "https://MY-DOMAIN/photo/some-photo/",
    "image": "https://MY-DOMAIN/photo/some-photo/full.jpg",
    "date_published": "2026-07-04T18:30:00Z"
  }]
}
   - authors: all three fields are required (name, url, avatar).
   - _photoring.ring must be exactly "openfeed-demo"; creator is my permanent
     handle in the ring — pick once, never change.
   - One item per photo, newest first. Each item needs ONLY id + url (the
     photo's permalink page on my site), image (the FULL-SIZE file), and
     date_published (RFC 3339, taken from the photo's EXIF DateTimeOriginal).
   - No captions, no thumbnails — the ring generates its own sizes.
   - OPTIONAL but recommended: shooting metadata per item, read from each
     photo's EXIF at build time (the ring shows it as an info card). If my
     image pipeline strips EXIF from exported files, this is the only way
     the ring can show it:
     "_photoring": { "exif": {
       "camera": "Fujifilm X-E5", "lens": "XF35mmF1.4 R",
       "shutter": "1/6400", "aperture": "f/1.4", "iso": "250", "focal": "35mm"
     } }
     (all fields optional strings, formatted for display)

2. Every photo page should include this in its <head> so the feed is
   discoverable from any page URL:
   <link rel="alternate" type="application/feed+json"
         href="https://MY-DOMAIN/photo/feed.json">

3. The feed must be REGENERATED by my site's build whenever I add a photo —
   never hand-edited. Publishing a photo should be: drop the image file,
   run one build command, deploy.

When it's deployed, I'll submit my feed URL at https://openfeed.photo/join/ to enter the ring.