← Back to docs

Galleries

Manage photos and albums without rebuilding your site. Embed every published gallery, one gallery, or a seeded random photo.

Plain HTML

The index is the lowest-maintenance embed: publishing a new gallery adds it automatically.

<script type="module"
  src="https://cdn.jsdelivr.net/npm/@jamwidgets/[email protected]/dist/gallery-elements.js">
</script>

<jamwidgets-gallery-index
  site-key="your-site-key"
  deep-link
></jamwidgets-gallery-index>

One gallery or tag

<jamwidgets-gallery site-key="your-site-key" slug="field-notes"></jamwidgets-gallery>

<jamwidgets-gallery
  site-key="your-site-key"
  slug="field-notes"
  tag="portraits"
></jamwidgets-gallery>

Random photo

Use a stable seed when you want the same photo for a page or visitor.

<jamwidgets-random-photo
  site-key="your-site-key"
  slug="field-notes"
  tag="favorites"
  seed="homepage"
></jamwidgets-random-photo>

Framework components

import { Gallery, GalleryIndex, RandomPhoto } from "@jamwidgets/react"

<GalleryIndex siteKey="your-site-key" deepLink />
<Gallery siteKey="your-site-key" slug="field-notes" tag="portraits" />
<RandomPhoto siteKey="your-site-key" slug="field-notes" seed="homepage" />

The same named exports and props are available from @jamwidgets/solid.

---
import GalleryIndex from "@jamwidgets/astro/GalleryIndex"
import Gallery from "@jamwidgets/astro/Gallery"
import RandomPhoto from "@jamwidgets/astro/RandomPhoto"
---

<GalleryIndex siteKey={import.meta.env.JAMWIDGETS_SITE_KEY} deepLink />
<Gallery siteKey={import.meta.env.JAMWIDGETS_SITE_KEY} slug="field-notes" tag="portraits" />
<RandomPhoto siteKey={import.meta.env.JAMWIDGETS_SITE_KEY} slug="field-notes" seed="homepage" />

In Astro each component has its own import path. @jamwidgets/astro/loader also exports jamwidgetsGalleriesLoader for build-time content collections.