Back to templates

Template details

Domus Picturae

Multilingual Astro + Keystatic website template for contemporary art galleries with catalogue, viewing room, exhibitions and news.

About this template

Domus Picturae is an open-source, multilingual static website template for contemporary art galleries, built with Astro and Keystatic, distributed under the MIT License. It takes gallery content stored as local JSON and Markdown files and outputs a fully static site — a complete gallery presence with artists, artworks, a viewing room, a private collection, exhibitions, workshops and news — rendered in every configured language with no server to run.

What is Domus Picturae?

Domus Picturae is a multilingual Astro template for contemporary art galleries that couples a gallery-native content model with a browser-based Keystatic editor. Content lives as JSON and Markdown under src/content/, and the build produces a fully static site with English, French and German locales; the demo at domus-picturae.vercel.app uses fictional artists, artworks and events. The template is published on GitHub by mearashadowfax.

What makes Domus Picturae stand out?

  • Framework and output — built on Astro with no adapter and no runtime; the build writes a static dist/ deployable to Vercel, Netlify, Cloudflare Pages, GitHub Pages or any web server.
  • Single-source content model — the model is described once in src/content-model/collections.ts and generates both the Astro content schemas and the Keystatic admin, so editor and build cannot drift apart.
  • Multilingual by construction — English, French and German ship out of the box with typed UI strings, hreflang links and per-locale sitemap entries; each page exists once and renders for every locale.
  • Field-level localisation — every free-text field is an object with a key per locale, while images, dates, numbers and slugs are shared; long-form entries keep a Markdown body per language in body/<locale>.md.
  • Gallery-native collections — six collections (artists, artworks, news, exhibitions, workshops, pages) plus three singletons (homepage, about, site settings), covering artist estates and artwork statuses.
  • Availability routing — an artwork is available, sold or not-for-sale; available and sold works appear in the catalogue and viewing room, while not-for-sale works form the dark-themed private collection.
  • Git-based editing — Keystatic runs at /keystatic in development and writes straight to src/content/, so content ships in the same commits as code.
  • Motion and styling — GSAP (ScrollTrigger, SplitText) and Lenis drive smooth scrolling, scroll-driven reveals, a horizontal viewing room and a 3D private-collection scene; styling is a plain CSS design system with custom-property tokens, cascade layers and a token-swap dark theme, with no utility framework.
  • Working forms — newsletter and workshop registration React islands (react-hook-form, zod, honeypot) post JSON to Formspree or any webhook, and run in demo mode until one is configured.
  • SEO and quality gates — per-page metadata, Open Graph, schema.org JSON-LD, sitemap and robots.txt, plus type and content checks, Vitest specs, Prettier and a CI workflow on every pull request.

Who should use Domus Picturae?

  • Contemporary galleries and project spaces: launch a catalogue, viewing room and exhibition archive in several languages without building a backend.
  • Artist estates and private dealers: present works with clear availability status and route not-for-sale pieces into a separate private-collection area.
  • Developers delivering gallery sites: start from a typed content model, working forms and a documented i18n setup instead of wiring them from scratch.
  • Teams preferring files over a hosted CMS: edit content in Keystatic and review it in the same Git commits as the code.

What can you do with Domus Picturae?

  • Run a multilingual gallery site: edit a text field once per locale and get /artworks/alpine-echo-field, /fr/artworks/alpine-echo-field and /de/artworks/alpine-echo-field from a single entry.
  • Manage inventory presentation: change an artwork's availability to "not-for-sale" and it moves from the catalogue to /private-collection/… on the dark theme.
  • Customise the gallery: replace name, tagline, address, contact details and social links in the Site settings singleton; set the canonical URL in astro.config.mjs.
  • Add a language: follow the six-step change documented in docs/i18n.md, driven by the locale list in src/i18n/config.ts.

How does Domus Picturae work?

A new project starts by creating a repository from the GitHub template and cloning it, then running pnpm install and pnpm dev with Node.js 22.12 or newer. The site runs at http://localhost:4321 and the Keystatic admin at http://localhost:4321/keystatic, where edits are written to src/content/; pnpm build produces the static site in dist/ and pnpm preview serves it locally.

Pricing

Domus Picturae is free and open source under the MIT License.

FAQ

Is Domus Picturae free?

Yes. Domus Picturae is released under the MIT License, so you can create a repository from the GitHub template, clone it and use it for a gallery site without a license fee.

Which languages does Domus Picturae support out of the box?

The template ships with English, French and German configured on Astro's i18n routing. The locale list in src/i18n/config.ts is the single source of truth for routes, content schemas and the Keystatic admin, and adding a language is a documented six-step change.

Can I edit content in production?

The Keystatic admin needs server routes, so it is only included while running pnpm dev and production builds are static. To edit from a hosted admin, you must add an SSR adapter and switch Keystatic to GitHub storage, as described in docs/deployment.md.

Do the newsletter and workshop forms work before configuration?

Yes, but in demo mode. Until PUBLIC_FORM_NEWSLETTER and PUBLIC_FORM_WORKSHOP point to a Formspree form or JSON webhook, submissions are logged instead of delivered, so a fresh clone works before any form service exists.

Do visitors contact third-party font services?

No. Satoshi (Fontshare) and Baskervville (Google Fonts) are fetched at build time by Astro Fonts and served from /_astro/fonts/, so font files are self-hosted and visitors never contact a font CDN.

Screenshot of Domus Picturae