New on 11 October: Releases, scheduled launches, Tasks and comments on every field.See the Studio

Find it in the docs

Type a word from any heading, such as key, webhook or beacon.

29 headings in both guides.

Delivery

Publish here, and your site follows

A read-only key, one URL and about fifteen minutes put a Next.js or Astro site on the desk. Any other site can read the same API.

Client package

Fetch With Types

@galley/client wraps every endpoint in types and brings no dependencies of its own. Ask for /about and you get the published page. Add the site’s preview token and you get the draft.

Adapters

Own the Adapter

The Next.js and Astro adapters are ordinary files you copy into the site and keep. Next.js revalidates when you Publish. Astro rebuilds through a deploy hook.

Your site draws a block with its own component when it has one. Every other block falls back to the plain renderer in @galley/react, so nothing on the page goes missing.

Publishing

Go Live Together

A Release gathers several pages, posts and entries and publishes them in one transaction. If one cannot go, none does. A schedule takes a document live at the time you set, checked every five minutes.

Both end the same way: Galley calls your site’s revalidate URL or deploy hook, and your site shows the change.

Webhooks

Hear Every Publish

Add a webhook URL and Galley posts to it on each publish, signed with HMAC-SHA256 in the x-galley-signature header, so your server can check who sent it. Galley waits five seconds for an answer and writes every delivery to a log you can read. A failed delivery is logged and not retried.

Query

Ask Exact Questions

GET or POST /api/v1/query takes a type, such as page or post, and filters on its fields with eight operators, among them eq, contains and gte. You get up to 100 results from a request of at most 16 KB. The Query console in the Studio runs the same questions on screen first.

Images

Crop Around the Subject

/api/v1/image serves webp, avif, jpeg or png at any width from 1 to 4,000 pixels. With fit=crop it keeps the point you name with fp_x and fp_y in frame, and the result is cached for a year.

Locales

Serve Every Language

Add ?locale= to a page or post read and Galley returns that language. Leave it off and you get the site’s default. Ask for a locale the site does not have, and the 400 names the ones it does.

Analytics

Count Views, Keep Nothing

One script tag of about 600 bytes counts views and visitors per path, per day. It sets no cookie and stores nothing on the visitor’s device. A visitor is a salted one-way hash of connection, browser and date, thrown away at midnight. Crawlers are recognised and left out.

The Galley overview for one site, painted-agency: four tally cards, its live address, the one-line script to add and empty charts, set on a sky proof margin.

Your first site

Wire Your First Site

Five steps and about fifteen minutes for a Next.js or Astro site, with every command written out.