Index: src/views/pages/admin-migrate.ejs
===================================================================
--- src/views/pages/admin-migrate.ejs	(revision 861c228ab92d14eec6f839d5157dfaba09749127)
+++ src/views/pages/admin-migrate.ejs	(revision e9128bc5aab022193bf90a325fb16b03b9d6540f)
@@ -5,4 +5,21 @@
   <% if (typeof success !== 'undefined' && success) { %><div class="alert alert-success"><%= success %></div><% } %>
   <% if (typeof error !== 'undefined' && error) { %><div class="alert alert-error"><%= error %></div><% } %>
+
+  <%# ── Je oude account claimen (FEP-7628 alsoKnownAs) ─────────── %>
+  <%# Bewust als EERSTE: zonder deze claim weigert de oude instantie de Move
+      met no_backreference, en kan de ophaalknop hieronder ook niets. Dit stond
+      op de site-bewerkpagina tussen de kleuren; daar zoekt niemand het als hij
+      aan het verhuizen is. %>
+  <section class="mig-card">
+    <h2><%= t('mig.alias_title') %></h2>
+    <p class="form-hint"><%= t('mig.alias_hint') %></p>
+    <form method="post" action="/admin/migrate/aliases">
+      <label for="mig-alias"><%= t('mig.alias_label') %></label>
+      <textarea id="mig-alias" name="ap_aliases" rows="3" class="mig-input"
+        placeholder="@oud@mastodon.social&#10;https://oude-klonkt.nl/ap/users/jij"><%= aliassen || '' %></textarea>
+      <p class="form-hint"><%= t('mig.alias_note') %></p>
+      <button type="submit" class="btn"><%= t('mig.alias_btn') %></button>
+    </form>
+  </section>
 
   <%# ── Exporteren ─────────────────────────────────────────────── %>
@@ -182,4 +199,26 @@
   </section>
 
+  <%# ── De verhuizing aankondigen (FEP-7628 Move) ──────────────── %>
+  <%# ONDERAAN, en met een rode knop. Dit is de enige knop op deze pagina die
+      de fediverse in gaat en niet terug te draaien is: je volgers verhuizen
+      mee en dit account gaat op slot. Alles hierboven kun je overdoen. %>
+  <section class="mig-card mig-card-danger">
+    <h2><%= t('mig.move_title') %></h2>
+    <p class="form-hint"><%= t('mig.move_hint') %></p>
+    <% if (movedTo) { %>
+      <p class="alert alert-error"><%= t('mig.move_done') %> <code><%= movedTo %></code></p>
+    <% } else { %>
+      <form method="post" action="/admin/sites/<%= site.slug %>/move"
+            onsubmit="return confirm('<%= t('mig.move_confirm') %>');">
+        <input type="hidden" name="next" value="/admin/migrate">
+        <label for="mig-move"><%= t('mig.move_label') %></label>
+        <input type="text" id="mig-move" name="move_target" class="mig-input"
+               placeholder="@nieuw@andere-server.nl" required>
+        <p class="form-hint mig-warn"><%= t('mig.move_warn') %></p>
+        <button type="submit" class="btn btn-danger"><%= t('mig.move_btn') %></button>
+      </form>
+    <% } %>
+  </section>
+
   <%# ── Wie je volgt ────────────────────────────────────────────── %>
   <section class="mig-card">
@@ -206,4 +245,6 @@
   .mig-report code { word-break: break-all; font-size: .88rem; }
   .mig-warn { color: var(--accent); }
+  .mig-card-danger { border-color: color-mix(in srgb, var(--accent, #c33) 45%, var(--rule)); }
+  textarea.mig-input { font-family: inherit; resize: vertical; }
   .mig-report { border-left: 3px solid var(--accent); padding: .8rem 1rem; margin-bottom: 1.2rem;
                 background: color-mix(in srgb, var(--ink, #000) 4%, transparent); border-radius: 0 8px 8px 0; }
