From 402cabe3fd0f1735c63f6c62386a80aa999aef8c Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 10:26:12 +1000 Subject: [PATCH 01/15] Fix style leakage on elements --- css/module/global.css | 14 ++++++++++++++ css/module/section.css | 13 ------------- pages/index.liquid | 2 +- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/css/module/global.css b/css/module/global.css index 937e5d0..d277c4f 100644 --- a/css/module/global.css +++ b/css/module/global.css @@ -127,6 +127,20 @@ hr { height: 20px; } +/* --- */ + +.u-inline-code { + margin-inline: 0.5ex; + border: 1px solid var(--theme-border); + padding: 0.1em 0.5ex; + background: var(--theme-code-bg); + border-radius: var(--radius-s); + color: var(--theme-accent); + font-family: var(--font-mono); + font-size: 0.85em; + text-wrap: nowrap; +} + /* --- Logo */ .jmap-logo { display: flex; diff --git a/css/module/section.css b/css/module/section.css index dc40729..875f8e2 100644 --- a/css/module/section.css +++ b/css/module/section.css @@ -22,19 +22,6 @@ color: var(--theme-ink); } -.section__inline-code, -code:not([class]) { - margin-inline: 0.5ex; - border: 1px solid var(--theme-border); - padding: 0.1em 0.5ex; - background: var(--theme-code-bg); - border-radius: var(--radius-s); - color: var(--theme-accent); - font-family: var(--font-mono); - font-size: 0.85em; - text-wrap: nowrap; -} - .section--card-list { padding-block: var(--space-2xl); diff --git a/pages/index.liquid b/pages/index.liquid index 85ed6de..fb90380 100644 --- a/pages/index.liquid +++ b/pages/index.liquid @@ -30,7 +30,7 @@ get_started: - title: Make your first call body: >- - POST a methodCalls array. Query, fetch, and send, all in one + POST a methodCalls array. Query, fetch, and send, all in one HTTP request. - title: Subscribe to push From 8dd299b16b641b7488eb12e06c0913d48c4b8790 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 10:37:01 +1000 Subject: [PATCH 02/15] Fix FAQ icon colour when details[open] --- css/why-jmap.css | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/css/why-jmap.css b/css/why-jmap.css index 502f528..5987687 100644 --- a/css/why-jmap.css +++ b/css/why-jmap.css @@ -53,9 +53,12 @@ border-radius: 50%; color: var(--theme-muted); } +.faq__summary:hover .faq__expand { + background: var(--theme-glass-bg); + color: var(--theme-accent); +} details[open] .faq__expand { transform: rotate(45deg); - background: var(--theme-accent-dim); border-color: var(--theme-accent); color: var(--theme-accent); } From 7da1ace1ab36222609093d8efce9964ca7b07c04 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 10:49:12 +1000 Subject: [PATCH 03/15] Move JMAP FAQ to front matter for easier editing Answers can be written in markdown --- _layouts/why-jmap.liquid | 82 ++-------------------------------------- pages/why-jmap.md | 46 ++++++++++++++++++++++ 2 files changed, 50 insertions(+), 78 deletions(-) diff --git a/_layouts/why-jmap.liquid b/_layouts/why-jmap.liquid index b216787..5e61824 100644 --- a/_layouts/why-jmap.liquid +++ b/_layouts/why-jmap.liquid @@ -19,93 +19,19 @@ scripts:
{{ content }}

Frequently asked questions

+ {% for item in page.faq %}
- What is JMAP? + {{ item.question }} {% include icons/plus.liquid %}
-

- JMAP (JSON Meta Application Protocol) is an open IETF standard for synchronising mail, calendars, and contacts between a client and server. It replaces IMAP, CardDAV, and CalDAV with a single consistent protocol built on HTTPS and JSON, with efficient batch requests and real-time push updates built in. -

-
-
-
- - Is JMAP a replacement for IMAP? - - {% include icons/plus.liquid %} - - -
-

- Yes. JMAP covers everything IMAP does — reading, - searching, moving, flagging, and even sending email — with a much cleaner and more efficient API. JMAP also replaces POP3, client-side SMTP, CardDAV, and CalDAV. -

-

- JMAP does not replace server-to-server SMTP. Email servers still use SMTP to route messages between domains. -

-
-
-
- - Which email providers support JMAP? - - {% include icons/plus.liquid %} - - -
-

- Fastmail is the largest JMAP provider and was instrumental in developing the standard — their web, desktop, and mobile clients all run on JMAP. -

-

Stalwart Mail Server is a modern open-source server with complete JMAP support. Apache James and Cyrus IMAP also both support JMAP. -

-
-
-
- - Is JMAP stable enough to build on? - - {% include icons/plus.liquid %} - - -
-

- Yes. RFC 8620 (Core), RFC 8621 (Mail), and RFC 9610 (Contacts) are published IETF standards and will not change in backwards-incompatible ways. Fastmail has been running their entire production email service on JMAP since 2019. -

-
-
-
- - How does JMAP handle authentication? - - {% include icons/plus.liquid %} - - -
-

- JMAP deliberately does not define its own authentication mechanism, it just uses standard HTTP authentication. In practice, that's often OAuth 2.0 with Bearer tokens. This means JMAP works with your existing identity infrastructure without any changes. -

-
-
-
- - How does JMAP perform compared to IMAP? - - {% include icons/plus.liquid %} - - -
-

- JMAP performs as well or better than IMAP in all tested scenarios. The white paper contains detailed benchmarks. -

-

- Modern IMAP with all extensions enabled can get a lot closer to JMAP's efficiency, but this requires both the client and server to implement the right extensions — which is rarely the case in practice. -

+ {{ item.answer | markdownify }}
+ {% endfor %}
{% endcapture %} diff --git a/pages/why-jmap.md b/pages/why-jmap.md index 1feee42..2acd25d 100644 --- a/pages/why-jmap.md +++ b/pages/why-jmap.md @@ -14,6 +14,52 @@ hero: difficult to implement and deploy. JMAP makes it vastly easier to build and deploy modern email apps, reduce server costs, and increase performance and battery life. +faq: + - question: What is JMAP? + answer: | + JMAP (JSON Meta Application Protocol) is an open IETF standard for + synchronising mail, calendars, and contacts between a client and + server. It replaces IMAP, CardDAV, and CalDAV with a single consistent + protocol built on HTTPS and JSON, with efficient batch requests and + real-time push updates built in. + - question: Is JMAP a replacement for IMAP? + answer: | + Yes. JMAP covers everything IMAP does — reading, searching, moving, + flagging, and even sending email — with a much cleaner and more + efficient API. JMAP also replaces POP3, client-side SMTP, CardDAV, + and CalDAV. + + JMAP does not replace server-to-server SMTP. Email servers still use + SMTP to route messages between domains. + - question: Which email providers support JMAP? + answer: | + **[Fastmail](https://www.fastmail.com)** is the largest JMAP provider + and was instrumental in developing the standard — their web, desktop, + and mobile clients all run on JMAP. + + **Stalwart Mail Server** is a modern open-source server with complete + JMAP support. **Apache James** and **Cyrus IMAP** also both + support JMAP. + - question: Is JMAP stable enough to build on? + answer: | + Yes. RFC 8620 (Core), RFC 8621 (Mail), and RFC 9610 (Contacts) are + published IETF standards and will not change in backwards-incompatible + ways. Fastmail has been running their entire production email service + on JMAP since 2019. + - question: How does JMAP handle authentication? + answer: | + JMAP deliberately does not define its own authentication mechanism, it + just uses standard HTTP authentication. In practice, that's often + OAuth 2.0 with Bearer tokens. This means JMAP works with your existing + identity infrastructure without any changes. + - question: How does JMAP perform compared to IMAP? + answer: | + JMAP performs as well or better than IMAP in all tested scenarios. The + white paper contains detailed benchmarks. + + Modern IMAP with all extensions enabled can get a lot closer to JMAP's + efficiency, but this requires both the client and server to implement + the right extensions — which is rarely the case in practice. --- ## JMAP is simpler than IMAP From 74a00f761deb3f7a22465fb3dd48719a1b1ff730 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 11:12:41 +1000 Subject: [PATCH 04/15] Remove whitepaper mentioned in FAQs Not available for publication as of yet --- pages/why-jmap.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pages/why-jmap.md b/pages/why-jmap.md index 2acd25d..63302d9 100644 --- a/pages/why-jmap.md +++ b/pages/why-jmap.md @@ -54,8 +54,7 @@ faq: identity infrastructure without any changes. - question: How does JMAP perform compared to IMAP? answer: | - JMAP performs as well or better than IMAP in all tested scenarios. The - white paper contains detailed benchmarks. + JMAP performs as well or better than IMAP in all tested scenarios. Modern IMAP with all extensions enabled can get a lot closer to JMAP's efficiency, but this requires both the client and server to implement From aee8a3be782f29fa5c43edf1919e4a1401e86182 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 11:13:37 +1000 Subject: [PATCH 05/15] Remove unused JMAP samples --- _includes/jmap-samples/request.liquid | 6 ------ _includes/jmap-samples/response.liquid | 5 ----- 2 files changed, 11 deletions(-) delete mode 100644 _includes/jmap-samples/request.liquid delete mode 100644 _includes/jmap-samples/response.liquid diff --git a/_includes/jmap-samples/request.liquid b/_includes/jmap-samples/request.liquid deleted file mode 100644 index ed1bd46..0000000 --- a/_includes/jmap-samples/request.liquid +++ /dev/null @@ -1,6 +0,0 @@ -{% highlight json %} -{ "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ], "methodCalls": [ [ "Email/query", { -"accountId": "u12345", "filter": { "inMailbox": "inbox" }, "sort": [ { "property": "receivedAt", "isAscending": false } -], "limit": 20 }, "r1" ], [ "Email/get", { "accountId": "u12345", "#ids": { "resultOf": "r1", "name": "Email/query", -"path": "/ids" } }, "r2" ] ] } -{% endhighlight %} diff --git a/_includes/jmap-samples/response.liquid b/_includes/jmap-samples/response.liquid deleted file mode 100644 index 413c40d..0000000 --- a/_includes/jmap-samples/response.liquid +++ /dev/null @@ -1,5 +0,0 @@ -{% highlight json %} -{ "sessionState": "75128aab4b1b", "methodResponses": [ [ "Email/query", { "total": 347, "queryState": "d2a4562c", "ids": -[ "M001", "M002", "M003" ] }, "r1" ], [ "Email/get", { "list": [ { "id": "M001", "subject": "Hello from JMAP" } ] }, -"r2" ] ] } -{% endhighlight %} From b8b98e9f1743518cc20b6c72394dc0d54a613695 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 11:23:16 +1000 Subject: [PATCH 06/15] Rename script directory so it is auto ignored --- Dockerfile.rfc | 2 +- README.md | 10 +++++----- _bin/generate-rfcs | 4 ++-- _config.yml | 1 - {scripts => _scripts}/fetch-rfc-xml.js | 0 {scripts => _scripts}/generate-og-images.js | 2 +- {scripts => _scripts}/generate-rfc-templates.js | 0 {scripts => _scripts}/og-image.html | 0 package.json | 2 +- 9 files changed, 10 insertions(+), 11 deletions(-) rename {scripts => _scripts}/fetch-rfc-xml.js (100%) rename {scripts => _scripts}/generate-og-images.js (98%) rename {scripts => _scripts}/generate-rfc-templates.js (100%) rename {scripts => _scripts}/og-image.html (100%) diff --git a/Dockerfile.rfc b/Dockerfile.rfc index 7f5128d..bb3d251 100644 --- a/Dockerfile.rfc +++ b/Dockerfile.rfc @@ -17,4 +17,4 @@ RUN python3 -m venv .venv \ COPY package.json package-lock.json ./ RUN npm ci -COPY scripts ./scripts +COPY _scripts ./_scripts diff --git a/README.md b/README.md index dcb298c..d17156c 100644 --- a/README.md +++ b/README.md @@ -40,13 +40,13 @@ _bin/generate-rfcs The pipeline is two steps: ```sh -node scripts/fetch-rfc-xml.js # fetches RFC and draft XMLs into _tmp/rfc-xml/ -node scripts/generate-rfc-templates.js # runs xml2rfc and writes Liquid templates + ToC includes +node _scripts/fetch-rfc-xml.js # fetches RFC and draft XMLs into _tmp/rfc-xml/ +node _scripts/generate-rfc-templates.js # runs xml2rfc and writes Liquid templates + ToC includes ``` The list of source documents (RFCs and active drafts) lives at the top of -`scripts/fetch-rfc-xml.js` — update it there when a new RFC or draft revision is -published. +`_scripts/fetch-rfc-xml.js` — update it there when a new RFC or draft revision +is published. ## Generating OG images @@ -54,7 +54,7 @@ published. _bin/generate-og-images ``` -This uses Playwright to screenshot `scripts/og-image.html` for each page in +This uses Playwright to screenshot `_scripts/og-image.html` for each page in `pages/` and writes the results to `images/og/`. ## Linting and formatting diff --git a/_bin/generate-rfcs b/_bin/generate-rfcs index a16fe75..a87c420 100755 --- a/_bin/generate-rfcs +++ b/_bin/generate-rfcs @@ -14,6 +14,6 @@ docker run --rm \ -it \ jmapio-rfc \ bash -c ' - node scripts/fetch-rfc-xml.js - node scripts/generate-rfc-templates.js + node _scripts/fetch-rfc-xml.js + node _scripts/generate-rfc-templates.js ' diff --git a/_config.yml b/_config.yml index 95cf3f0..7cc4c04 100644 --- a/_config.yml +++ b/_config.yml @@ -8,7 +8,6 @@ esbuild: exclude: - _tmp - _bin - - scripts - vendor - package.json - package-lock.json diff --git a/scripts/fetch-rfc-xml.js b/_scripts/fetch-rfc-xml.js similarity index 100% rename from scripts/fetch-rfc-xml.js rename to _scripts/fetch-rfc-xml.js diff --git a/scripts/generate-og-images.js b/_scripts/generate-og-images.js similarity index 98% rename from scripts/generate-og-images.js rename to _scripts/generate-og-images.js index 30d0615..3504c47 100644 --- a/scripts/generate-og-images.js +++ b/_scripts/generate-og-images.js @@ -73,7 +73,7 @@ const collectPages = async () => { // --- const htmlTemplate = await fs.readFile( - path.join(ROOT, 'scripts', 'og-image.html'), + path.join(ROOT, '_scripts', 'og-image.html'), { encoding: 'utf8' }, ); diff --git a/scripts/generate-rfc-templates.js b/_scripts/generate-rfc-templates.js similarity index 100% rename from scripts/generate-rfc-templates.js rename to _scripts/generate-rfc-templates.js diff --git a/scripts/og-image.html b/_scripts/og-image.html similarity index 100% rename from scripts/og-image.html rename to _scripts/og-image.html diff --git a/package.json b/package.json index 09693a5..93e73e1 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "node": "24" }, "scripts": { - "generate-og": "node scripts/generate-og-images.js", + "generate-og": "node _scripts/generate-og-images.js", "lint-prettier": "prettier --check .", "lint-stylelint": "stylelint 'css/**/*.css'" }, From 6d937cbcab09830b08b0ca54bbdc4a88eb2c2464 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 11:23:26 +1000 Subject: [PATCH 07/15] Update server guide OG image --- images/og/server.png | Bin 43063 -> 44878 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/og/server.png b/images/og/server.png index 1c366311aa1461ad60be0428c0c2db2c836ae16d..5cb9962d5fbaed50999201da8dd8dcd0e4d854ae 100644 GIT binary patch literal 44878 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%0DjcKX{y*4C6Z}69E>t!jx{$B<19rH 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 From 0d3542639854a72c1a5699712d45af56da769f17 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 11:25:20 +1000 Subject: [PATCH 08/15] Update jekyll excludes Removes unnecessary excludes --- _config.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/_config.yml b/_config.yml index 7cc4c04..2eedf3b 100644 --- a/_config.yml +++ b/_config.yml @@ -6,10 +6,8 @@ lightningcss: esbuild: target: es2022 exclude: - - _tmp - - _bin - - vendor - package.json - package-lock.json - prettier.config.mjs - stylelint.config.js + - README.md From 7d89f0bbefbb07a32fd2a62c1fd41f084670224a Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 11:35:47 +1000 Subject: [PATCH 09/15] Improve ToC FAB layout --- css/toc.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/css/toc.css b/css/toc.css index e6ddd6f..f80d811 100644 --- a/css/toc.css +++ b/css/toc.css @@ -127,8 +127,8 @@ ul.u-toc > li > p > a { position: fixed; align-items: center; justify-content: center; - right: var(--space-l); - bottom: var(--space-l); + right: calc(env(safe-area-inset-right, 0) + var(--space-l)); + bottom: calc(env(safe-area-inset-bottom, 0) + var(--space-s)); border: 1px solid var(--theme-border-strong); width: 52px; height: 52px; From 8ca3c1a14de101ac74aa2f9dfaf05aa6dea56d39 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 11:46:28 +1000 Subject: [PATCH 10/15] Update close icon svg --- _includes/icons/close.liquid | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/_includes/icons/close.liquid b/_includes/icons/close.liquid index d075302..78dc6d5 100644 --- a/_includes/icons/close.liquid +++ b/_includes/icons/close.liquid @@ -1,14 +1,11 @@ From 80230f1f1b9e5e7f16cf9956d1339b5ac0cc38e2 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 11:48:06 +1000 Subject: [PATCH 11/15] Fix close icon not appearing on Safari Tweak close button styles as well --- css/toc.css | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/css/toc.css b/css/toc.css index f80d811..83e9db4 100644 --- a/css/toc.css +++ b/css/toc.css @@ -243,16 +243,19 @@ ul.u-toc > li > p > a { display: flex; align-items: center; justify-content: center; - width: 24px; - height: 24px; - background: transparent; + color: var(--theme-button-standard-fg); cursor: pointer; - font-size: 1.4rem; - stroke: var(--theme-muted); -} -.toc-drawer__close:hover { - color: var(--theme-accent); + &:hover { + background: var(--theme-button-standard-bg-hover); + color: var(--theme-button-standard-fg-hover); + } + + > svg { + flex-basis: 24px; + width: 24px; + height: 24px; + } } .toc-drawer__nav .u-toc { From 5e4beb1e7ec16c7665792a8245a9ba092b2b244d Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 12:24:42 +1000 Subject: [PATCH 12/15] a11y improvements for mobile nav drawer --- _includes/components/toc-fab.liquid | 4 ++-- _layouts/article-rfc.liquid | 4 ++-- _layouts/article-toc.liquid | 4 ++-- _layouts/why-jmap.liquid | 4 ++-- css/toc.css | 7 +++++++ js/toc.js | 24 +++++++++++++----------- 6 files changed, 28 insertions(+), 19 deletions(-) diff --git a/_includes/components/toc-fab.liquid b/_includes/components/toc-fab.liquid index 75c923e..bf5f1f7 100644 --- a/_includes/components/toc-fab.liquid +++ b/_includes/components/toc-fab.liquid @@ -18,9 +18,9 @@ hidden >
-
+
- Contents +

Table of Contents

diff --git a/_layouts/article-rfc.liquid b/_layouts/article-rfc.liquid index 4cddf04..4157af7 100644 --- a/_layouts/article-rfc.liquid +++ b/_layouts/article-rfc.liquid @@ -25,6 +25,8 @@ scripts: sub=page.description %} +{% include components/toc-fab.liquid %} +
- -{% include components/toc-fab.liquid %} diff --git a/_layouts/article-toc.liquid b/_layouts/article-toc.liquid index 5f06e32..5a434a6 100644 --- a/_layouts/article-toc.liquid +++ b/_layouts/article-toc.liquid @@ -17,6 +17,8 @@ scripts: %} {% endif %} +{% include components/toc-fab.liquid %} +
- -{% include components/toc-fab.liquid %} diff --git a/_layouts/why-jmap.liquid b/_layouts/why-jmap.liquid index 5e61824..0feef73 100644 --- a/_layouts/why-jmap.liquid +++ b/_layouts/why-jmap.liquid @@ -35,6 +35,8 @@ scripts:
{% endcapture %} +{% include components/toc-fab.liquid %} +
- -{% include components/toc-fab.liquid %} diff --git a/css/toc.css b/css/toc.css index 83e9db4..8f885f7 100644 --- a/css/toc.css +++ b/css/toc.css @@ -221,6 +221,13 @@ ul.u-toc > li > p > a { transform: translateY(0); } +.toc-drawer__panel:focus, +.toc-drawer__panel:focus-visible, +.toc-drawer__title:focus, +.toc-drawer__title:focus-visible { + outline: none; +} + .toc-drawer__header { display: flex; align-items: center; diff --git a/js/toc.js b/js/toc.js index 4cc04e3..87f8ed1 100644 --- a/js/toc.js +++ b/js/toc.js @@ -52,6 +52,7 @@ if (toc) { const drawerNav = document.getElementById('toc-drawer-nav'); if (fab && drawer && drawerNav) { + const drawerPanel = drawer.querySelector('.toc-drawer__panel'); drawerNav.appendChild(toc.cloneNode(true)); const mql = window.matchMedia('(max-width: 768px)'); @@ -90,9 +91,8 @@ if (toc) { drawer.classList.add('is-open'); document.body.style.overflow = 'hidden'; - const closeBtn = drawer.querySelector('.toc-drawer__close'); - if (closeBtn) { - closeBtn.focus(); + if (drawerPanel) { + drawerPanel.focus(); } document.addEventListener('keydown', onDrawerKeydown); @@ -107,8 +107,7 @@ if (toc) { document.body.style.overflow = ''; document.removeEventListener('keydown', onDrawerKeydown); - const panel = drawer.querySelector('.toc-drawer__panel'); - panel.addEventListener( + drawerPanel.addEventListener( 'transitionend', () => { drawer.hidden = true; @@ -134,16 +133,19 @@ if (toc) { return; } - const focusable = drawer.querySelectorAll( - 'a[href], button:not([disabled])', + const focusable = Array.from( + drawer.querySelectorAll('a[href], button:not([disabled])'), ); const first = focusable[0]; const last = focusable[focusable.length - 1]; + const isInFocusable = focusable.includes(document.activeElement); - if (e.shiftKey && document.activeElement === first) { - e.preventDefault(); - last.focus(); - } else if (!e.shiftKey && document.activeElement === last) { + if (e.shiftKey) { + if (!isInFocusable || document.activeElement === first) { + e.preventDefault(); + last.focus(); + } + } else if (!isInFocusable || document.activeElement === last) { e.preventDefault(); first.focus(); } From d4fe48bff42347aee6f714cbe68a41a1b67bce23 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 12:29:03 +1000 Subject: [PATCH 13/15] Fix invalid html lists --- pages/software.liquid | 36 +++++++++++++++++++----------------- pages/spec.liquid | 18 ++++++++++-------- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/pages/software.liquid b/pages/software.liquid index e6aa1b1..e9493dc 100644 --- a/pages/software.liquid +++ b/pages/software.liquid @@ -331,23 +331,25 @@ sections:
    {%- for item in section.items -%} - {% assign eyebrow = item.languages | default: '' | array_to_sentence_string: '&' %} - {% capture card_children %} - {% if item.license %} -
    - {{ item.license }} -
    - {% endif %} - {% endcapture %} - {% - include components/link-card.liquid - eyebrow=eyebrow - title=item.title - body=item.body - href=item.href - children=card_children - class=item.class - %} +
  • + {% assign eyebrow = item.languages | default: '' | array_to_sentence_string: '&' %} + {% capture card_children %} + {% if item.license %} +
    + {{ item.license }} +
    + {% endif %} + {% endcapture %} + {% + include components/link-card.liquid + eyebrow=eyebrow + title=item.title + body=item.body + href=item.href + children=card_children + class=item.class + %} +
  • {% endfor %}
diff --git a/pages/spec.liquid b/pages/spec.liquid index ad5279d..d0d631f 100644 --- a/pages/spec.liquid +++ b/pages/spec.liquid @@ -158,14 +158,16 @@ specs:
    {%- for item in section.items -%} - {% - include components/link-card.liquid - eyebrow=item.eyebrow - title=item.title - body=item.body - href=item.href - class=item.class - %} +
  • + {% + include components/link-card.liquid + eyebrow=item.eyebrow + title=item.title + body=item.body + href=item.href + class=item.class + %} +
  • {% endfor %}
From cadd4849a330dba55c7100da2aceb64ab445f9a2 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 12:31:40 +1000 Subject: [PATCH 14/15] Fix skipped heading level on home page --- pages/index.liquid | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/pages/index.liquid b/pages/index.liquid index fb90380..928f7d0 100644 --- a/pages/index.liquid +++ b/pages/index.liquid @@ -93,10 +93,10 @@ explore: {% include icons/bell.liquid %} Real-time push -

+

Instant updates.
Zero overhead. -

+
Get instant push via EventSource — one connection, all mailboxes. Or use WebPush for mobile-compatible push, no permanent connection required. @@ -123,10 +123,10 @@ explore: {% include icons/device-mobile-phone.liquid %} Mobile battery life
-

+

Efficiency that
matters. -

+
2–3× less power usage than IMAP, measured on real devices.
@@ -162,10 +162,10 @@ explore: {% include icons/arrow-path.liquid %} Performance -

+

Rock solid sync.
Every time. -

+
Sync changes more easily, more efficiently, and much, much faster. A single HTTP roundtrip is often all that's required. @@ -195,10 +195,10 @@ explore: {% include icons/rocket-launch.liquid %} Standard HTTP + JSON
-

+

Deployment
made easy. -

+
JMAP works natively with existing infrastructure like nginx, Cloudflare, WAFs, load balancers, and DDoS protection — no specialist IMAP tooling required. And it works just as great for webmail as native @@ -227,7 +227,7 @@ explore: {% include icons/check-badge.liquid %} RFC
-

An open IETF standard.

+

An open IETF standard.

No patents. No fees. Fully documented. JMAP is an open standard any organisation can implement, not more proprietary lock-in from big tech companies. @@ -247,10 +247,10 @@ explore: {% include icons/puzzle-piece.liquid %} Spec complexity -

+

So. Much.
Simpler. -

+
5× smaller than IMAP
51k vs 272k words @@ -280,10 +280,10 @@ explore: {% include icons/code-bracket.liquid %} Running code
-

+

A fast-growing
ecosystem. -

+
Webmail Rust library From 647c949f6be56682a16edaee44b578f1deef8477 Mon Sep 17 00:00:00 2001 From: Callum Skeet Date: Fri, 24 Apr 2026 12:38:43 +1000 Subject: [PATCH 15/15] Skip deploy job if we're on a fork --- .github/workflows/deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9b238c2..36351c3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -16,6 +16,7 @@ concurrency: jobs: build: + if: github.repository == 'jmapio/jmapio.github.io' runs-on: ubuntu-latest steps: - uses: actions/checkout@v6