Development documentation may include features that are not in the latest release. Read the Lawn 0.8.1 guide.
Contributing
Submit a template
Templates live in the getlawn/templates repository. This page covers the conventions and requirements for contributing a new template via pull request.
Naming Conventions
App ID — Lowercase, hyphen-separated. Must match the directory name and the id field in manifest.yaml. Use the app's commonly known name (e.g., paperless-ngx, uptime-kuma, adguard-home).
Compose filename. Use lawn-compose/compose.yaml.
Icon Requirements
Local icon files are optional when you use hosted artwork or an SF Symbol fallback. To bundle artwork, include an icon.svg (preferred), icon.png, icon.heif, or icon.pdf in the template directory. For PNG, use at least 256×256 pixels.
The required symbolFallback field in manifest.yaml names an SF Symbol used when no icon image is available. Use iconURL for hosted artwork and iconIsTemplate: true for a monochrome icon that adopts the foreground color. See the artwork reference.
Style Guidelines
- Localization — Compose configuration and extension strings (display names, descriptions, labels, notice titles) belong in
locales/en.json. App names, taglines, and descriptions remain inmanifest.yaml. - Notices — Use a maximum of 2-3 per template. Reserve them for information users genuinely need to act on: login credentials, required setup steps, or warnings about values they should not change. Use
infofor general guidance andwarningfor critical actions. - Environment values — Use required-value expressions such as
${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}for secrets. Use${VAR:-default}for nonsensitive defaults, and supply disposable secrets explicitly for standalonedocker compose configchecks. - Descriptions — Write clear, concise descriptions for variables and environment metadata. Describe what the value controls, not just what it is.
- Display ordering — Use
weightto order config variables logically. Group related settings together and put important ones first. - Volumes — Use relative paths (
./data:/app/data) for persistent data. Avoid absolute paths unless strictly necessary.
PR Checklist
These requirements apply to submissions to the official catalog. Custom catalogs use the runtime manifest format, where tagline, category, and compatibility metadata are optional.
Before submitting a template, verify each item:
Manifest
Compose File
Variables and Secrets
Localization
Health Checks
Notices
Testing
lawn template validate and lawn template test are planned and are not available in the current release.