Skip to content

Plate

Plate

Pipeline Issues GitLab Release NPM Release Bundle Size Node Version License

Set the table. Your way.

Plate fetches content from a Snackbox instance, renders Markdown to HTML, and serves the result through a Handlebars theme. It is a read-only consumer — no content management, no authentication, no admin interface.

Motivation

Content management and content presentation are different concerns. Snackbox manages the content; Plate renders it. This separation means the same content can be served by multiple presentation layers, operators can fully customize the appearance by swapping themes, and the presentation layer has no write access to content — shrinking the attack surface to read-only API calls.


Features

  • Handlebars theme system with hot-reload — swap themes without restarting the server
  • Markdown → sanitized HTML via the Remark/Rehype pipeline
  • In-memory LRU cache for API responses with configurable TTL
  • Prometheus metrics endpoint for observability
  • Rate limiting and Content Security Policy out of the box
  • Structured JSON logging via pino (pretty-print in development)
  • Built-in Picnic theme — works out of the box, no configuration required
  • npx plate CLI — scaffold, validate, and preview themes without cloning the repository
  • RSS feed at /feed and XML sitemap at /sitemap.xml (requires SITE_URL)
  • robots.txt served automatically; includes a Sitemap: directive when SITE_URL is set

Getting started

Deploying Plate? See the Administrator Guide for Docker Compose and systemd deployment, full configuration reference, reverse proxy setup, and resource requirements.

Contributing or building locally? See the Developer Guide for setup, workflow, testing, and commit conventions.

Building a custom theme? See the Theme Developer Guide.


Documentation

Document Description
Administrator Guide Deployment, configuration, reverse proxy, metrics
Developer Guide Local setup, workflow, testing, releases
Architecture System design, ports, application layers
Theme Developer Guide Building and validating custom themes
Picnic Built-in theme — screenshots, settings, design details
Contributing How to contribute

License

Except otherwise noted, all work is licensed under a BSD-3-Clause License.

Contact