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.
New on 11 October: Releases, scheduled launches, Tasks and comments on every field.See the Studio
Delivery
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
@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
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
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
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
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
/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
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
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.

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