diff --git a/CHANGELOG.md b/CHANGELOG.md
index 37ecb31..e3e1431 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,14 @@ All notable changes to this project are documented in this file. The format is b
### Added
+- Share-preview metadata on the landing page: `og:type`, `og:site_name`, `og:title`,
+ `og:description`, `og:url` (`https://play./`) and a `summary` `twitter:card` with its title
+ and description, so a shared link to `play.` unfurls with a title and description. No
+ `og:image` is set, as the repository has no image to point at.
+- `GET /robots.txt` on `play.`: `User-agent: *` / `Allow: /` as `text/plain`. Like
+ `/version.json`, it is answered on the API host only, never on a game's host, so it cannot shadow
+ a static game's own `/robots.txt`.
+
- Optional `canonical:` registry field: the game's main public page, as an https URL. When it is set,
every HTML response for the game, on its slug host and on its aliases, carries
`Link: ; rel="canonical"`. Search engines then index one address for the game instead of
diff --git a/src/arcade/landing.py b/src/arcade/landing.py
index 39fcd0c..ce0c2d5 100644
--- a/src/arcade/landing.py
+++ b/src/arcade/landing.py
@@ -16,6 +16,16 @@
CSP = "default-src 'none'; style-src 'unsafe-inline'; img-src data:; base-uri 'none'; form-action 'none'"
+# Already HTML-escaped; shared by , the description and the share-preview
+# tags (og:* and twitter:*). There is no og:image: the repository holds no image
+# to point at, and the CSP keeps the page itself free of any.
+TITLE = "Play — browser games by Daniel McCoy Stephenson"
+DESCRIPTION = "Browser games by Daniel McCoy Stephenson, served by arcade. Nothing to install."
+
+# Served at /robots.txt on the API host only. A game's host never answers it:
+# a static game may ship its own robots.txt and must not be shadowed.
+ROBOTS = "User-agent: *\nAllow: /\n"
+
_STYLE = """
:root { color-scheme: light dark; --bg: #f6f7f9; --fg: #1a1c20; --muted: #5b616b; --card: #ffffff;
--line: #dde1e7; --accent: #3758d6; --accent-fg: #ffffff; }
@@ -77,9 +87,17 @@ def render(registry, domain, portalUrl, deployed=lambda slug: True):
-Play — browser games by Daniel McCoy Stephenson
-
+%(title)s
+
+
+
+
+
+
+
+
+
@@ -99,6 +117,8 @@ def render(registry, domain, portalUrl, deployed=lambda slug: True):