Index: src/views/pages/paid-gate.ejs
===================================================================
--- src/views/pages/paid-gate.ejs	(revision 928d1c7ba5c6f2dd3d97312711ad81f25f420cdd)
+++ src/views/pages/paid-gate.ejs	(revision 928d1c7ba5c6f2dd3d97312711ad81f25f420cdd)
@@ -0,0 +1,36 @@
+<div class="container pg-navwrap">
+  <%- include('../partials/post-nav', { newerPost: (typeof newerPost !== 'undefined' ? newerPost : null), olderPost: (typeof olderPost !== 'undefined' ? olderPost : null) }) %>
+</div>
+
+<article class="pg-page">
+  <% if (typeof pgTitle !== 'undefined' && pgTitle) { %><h1 class="pg-title"><%= pgTitle %></h1><% } %>
+
+  <% if (typeof pgTeaser !== 'undefined' && pgTeaser) { %>
+    <div class="pg-teaser"><p><%= pgTeaser %></p></div>
+  <% } %>
+
+  <section class="pg-card">
+    <div class="pg-lock">💶</div>
+    <h2 class="pg-h2">Voor supporters</h2>
+    <p class="pg-sub">
+      Deze post is voor supporters van deze site. Steun je de maker op Patreon
+      <% if (typeof pgCents !== 'undefined' && pgCents) { %>(vanaf &euro;<%= (pgCents/100).toFixed(2) %>)<% } %>,
+      dan ontgrendel je 'm met je passkey. Geen account, geen cookie.
+    </p>
+    <p class="pg-soon">Ontgrendelen met je Patreon-passkey komt eraan.</p>
+  </section>
+</article>
+
+<style>
+  .pg-navwrap { max-width: 720px; margin: 0.5rem auto 1.5rem; padding: 0 1rem; }
+  .pg-page { max-width: 720px; margin: 0 auto 3rem; padding: 0 1rem; }
+  .pg-title { font-family: var(--font-display, serif); font-size: clamp(1.6rem, 4vw, 2.2rem); margin: 0 0 1rem; }
+  .pg-teaser { font-family: var(--font-body, serif); font-size: 1.1rem; line-height: 1.7; color: var(--ink); opacity: .95;
+    -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent); mask-image: linear-gradient(180deg, #000 55%, transparent); }
+  .pg-card { margin: 1.5rem 0 0; border: 1px solid color-mix(in srgb, var(--ink, #000) 16%, transparent); border-radius: 18px; padding: 30px 26px; text-align: center; }
+  .pg-lock { font-size: 38px; margin-bottom: 6px; }
+  .pg-h2 { font-size: 22px; margin: 0 0 8px; }
+  .pg-sub { opacity: .85; line-height: 1.6; margin: 0 auto 12px; max-width: 34em; }
+  .pg-soon { display: inline-block; padding: 10px 18px; border-radius: 10px; font-weight: 600;
+    background: color-mix(in srgb, var(--accent, #6b8f71) 14%, transparent); color: var(--ink, inherit); }
+</style>
Index: src/views/pages/post-edit.ejs
===================================================================
--- src/views/pages/post-edit.ejs	(revision 61e3daf1227ad67cd38c4a5e9e79cfeb1ea92121)
+++ src/views/pages/post-edit.ejs	(revision 928d1c7ba5c6f2dd3d97312711ad81f25f420cdd)
@@ -367,4 +367,18 @@
             <span>🔒 <%= t('pedit.fan_only_label') %></span>
           </label>
+          <label class="pe-checkbox" style="margin-top:8px">
+            <input type="checkbox" name="paid" value="1" id="pe-paid" <%= post.paid ? 'checked' : '' %>>
+            <span>💶 Betaalde post (supporters ontgrendelen met Patreon)</span>
+          </label>
+          <div id="pe-paid-price" style="margin:6px 0 0 26px;<%= post.paid ? '' : 'display:none' %>">
+            <label style="font-size:.85rem;opacity:.8">Vereist steunbedrag (euro, leeg = standaard)
+              <input type="text" name="paid_min_eur" inputmode="decimal" style="width:100px"
+                     value="<%= post.paid_min_cents ? (post.paid_min_cents/100).toFixed(2) : '' %>">
+            </label>
+          </div>
+          <script nonce="<%= cspNonce %>">
+            (function(){ var p=document.getElementById('pe-paid'), box=document.getElementById('pe-paid-price');
+              if (p&&box&&!p.__wired){ p.__wired=true; p.addEventListener('change', function(){ box.style.display=p.checked?'':'none'; }); } })();
+          </script>
           <% var _scheduled = !!(post.publish_at && (post.status === 'scheduled' || Date.parse(String(post.publish_at).replace(' ', 'T')) > Date.now())); %>
           <label class="pe-checkbox" style="margin-top:8px">
