Files
einfach-produktiv/scratch/seiten-inventar.html
T

556 lines
24 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<title>Seiten-Inventar</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap">
<style>
:root {
--bg: #F3F5F3;
--surface: #FFFFFF;
--surface-alt: #EAEEEA;
--border: #D7DED9;
--text: #16201C;
--text-muted: #55625B;
--text-faint: #8B968F;
--accent: #2F6E5C;
--accent-soft: #E4EFEA;
--accent-ink: #1E4B3E;
--ok: #2874A6;
--ok-soft: #E4EEF6;
--warn: #97650A;
--warn-soft: #F5EAD4;
--off: #5B6B66;
--off-soft: #E9ECE9;
--shadow: 0 1px 2px rgba(20, 30, 25, 0.06);
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--bg: #10150F;
--surface: #171D18;
--surface-alt: #1D2420;
--border: #2A332C;
--text: #E7EDE9;
--text-muted: #9EAAA1;
--text-faint: #6C7871;
--accent: #5FBF9E;
--accent-soft: #17332A;
--accent-ink: #A9E6C9;
--ok: #7DB8E8;
--ok-soft: #17293A;
--warn: #E0AA55;
--warn-soft: #362B15;
--off: #93A39B;
--off-soft: #212822;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
}
:root[data-theme="dark"] {
--bg: #10150F;
--surface: #171D18;
--surface-alt: #1D2420;
--border: #2A332C;
--text: #E7EDE9;
--text-muted: #9EAAA1;
--text-faint: #6C7871;
--accent: #5FBF9E;
--accent-soft: #17332A;
--accent-ink: #A9E6C9;
--ok: #7DB8E8;
--ok-soft: #17293A;
--warn: #E0AA55;
--warn-soft: #362B15;
--off: #93A39B;
--off-soft: #212822;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
* { box-sizing: border-box; }
body {
margin: 0;
background: var(--bg);
color: var(--text);
font-family: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
font-size: 15px;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
.wrap {
max-width: 78rem;
margin: 0 auto;
padding: 2.75rem 1.5rem 5rem;
}
header.doc-head {
display: flex;
flex-direction: column;
gap: 0.4rem;
margin-bottom: 1.75rem;
}
.eyebrow {
font-family: "IBM Plex Mono", ui-monospace, monospace;
font-size: 0.72rem;
letter-spacing: 0.11em;
text-transform: uppercase;
color: var(--accent);
}
h1 {
font-family: "Barlow Condensed", ui-sans-serif, sans-serif;
font-weight: 700;
font-size: clamp(2rem, 4vw, 2.7rem);
letter-spacing: -0.01em;
margin: 0;
text-wrap: balance;
}
.dek {
color: var(--text-muted);
max-width: 46rem;
margin: 0.15rem 0 0;
font-size: 0.98rem;
}
.stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
gap: 0.75rem;
margin: 1.75rem 0 2.5rem;
}
.stat {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 8px;
padding: 0.9rem 1.05rem;
box-shadow: var(--shadow);
}
.stat .n {
font-family: "IBM Plex Mono", ui-monospace, monospace;
font-size: 1.55rem;
font-weight: 500;
color: var(--text);
font-variant-numeric: tabular-nums;
}
.stat .l {
font-size: 0.78rem;
color: var(--text-muted);
margin-top: 0.15rem;
}
.note {
background: var(--accent-soft);
border: 1px solid var(--accent);
border-radius: 8px;
padding: 0.85rem 1.1rem;
font-size: 0.88rem;
color: var(--accent-ink);
margin-bottom: 2.5rem;
line-height: 1.55;
}
.note strong { font-weight: 600; }
section.cat {
margin-bottom: 2.25rem;
}
.cat-head {
display: flex;
align-items: baseline;
gap: 0.6rem;
margin-bottom: 0.7rem;
flex-wrap: wrap;
}
.cat-head h2 {
font-family: "Barlow Condensed", ui-sans-serif, sans-serif;
font-weight: 600;
font-size: 1.35rem;
margin: 0;
}
.cat-count {
font-family: "IBM Plex Mono", ui-monospace, monospace;
font-size: 0.76rem;
color: var(--text-faint);
}
.cat-desc {
flex-basis: 100%;
font-size: 0.85rem;
color: var(--text-muted);
}
.table-scroll {
overflow-x: auto;
border: 1px solid var(--border);
border-radius: 8px;
background: var(--surface);
box-shadow: var(--shadow);
}
table {
width: 100%;
border-collapse: collapse;
min-width: 34rem;
}
thead th {
text-align: left;
font-size: 0.72rem;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--text-faint);
font-weight: 500;
padding: 0.55rem 0.9rem;
border-bottom: 1px solid var(--border);
background: var(--surface-alt);
white-space: nowrap;
}
tbody td {
padding: 0.55rem 0.9rem;
border-bottom: 1px solid var(--border);
vertical-align: top;
}
tbody tr:last-child td { border-bottom: none; }
tbody tr:hover { background: var(--surface-alt); }
.path {
font-family: "IBM Plex Mono", ui-monospace, monospace;
font-size: 0.83rem;
color: var(--text);
white-space: nowrap;
}
.title-cell { color: var(--text-muted); }
.title-cell .sub { color: var(--text-faint); font-size: 0.78rem; }
.pill {
display: inline-block;
font-family: "IBM Plex Mono", ui-monospace, monospace;
font-size: 0.72rem;
padding: 0.15rem 0.5rem;
border-radius: 99px;
white-space: nowrap;
border: 1px solid transparent;
}
.pill.ok { background: var(--ok-soft); color: var(--ok); border-color: color-mix(in srgb, var(--ok) 35%, transparent); }
.pill.warn { background: var(--warn-soft); color: var(--warn); border-color: color-mix(in srgb, var(--warn) 35%, transparent); }
.pill.off { background: var(--off-soft); color: var(--off); border-color: color-mix(in srgb, var(--off) 35%, transparent); }
.src { color: var(--text-faint); font-size: 0.82rem; white-space: nowrap; }
details.api {
border: 1px solid var(--border);
border-radius: 8px;
background: var(--surface);
box-shadow: var(--shadow);
}
details.api > summary {
cursor: pointer;
padding: 0.75rem 1.1rem;
font-family: "Barlow Condensed", ui-sans-serif, sans-serif;
font-weight: 600;
font-size: 1.1rem;
list-style: none;
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
}
details.api > summary::-webkit-details-marker { display: none; }
details.api > summary .cat-count { font-family: "IBM Plex Mono", ui-monospace, monospace; font-weight: 400; }
details.api > summary::after {
content: "▸";
color: var(--text-faint);
transition: transform 0.15s ease;
font-size: 0.85rem;
}
details.api[open] > summary::after { transform: rotate(90deg); }
.api-grid {
padding: 0.3rem 1.1rem 1rem;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
gap: 0.2rem 1.2rem;
}
.api-grid div {
font-family: "IBM Plex Mono", ui-monospace, monospace;
font-size: 0.78rem;
color: var(--text-muted);
padding: 0.2rem 0;
border-bottom: 1px dashed var(--border);
}
footer.doc-foot {
margin-top: 3rem;
padding-top: 1.25rem;
border-top: 1px solid var(--border);
color: var(--text-faint);
font-size: 0.8rem;
}
@media (prefers-reduced-motion: reduce) {
details.api > summary::after { transition: none; }
}
</style>
<div class="wrap">
<header class="doc-head">
<span class="eyebrow">einfach produktiv. — Frontend</span>
<h1>Seiten-Inventar</h1>
<p class="dek">Alle Routen der App, kategorisiert nach Sichtbarkeit und Quelle. Stand: 29.08.2026 — nach Einführung von <code style="font-family:'IBM Plex Mono',monospace">app/sitemap.ts</code>.</p>
</header>
<div class="stats">
<div class="stat"><div class="n">49</div><div class="l">Frontend-Seiten gesamt</div></div>
<div class="stat"><div class="n">28</div><div class="l">in sitemap.xml, indexierbar</div></div>
<div class="stat"><div class="n">15</div><div class="l">noindex / intern</div></div>
<div class="stat"><div class="n">34</div><div class="l">API-Routen (kein UI)</div></div>
</div>
<div class="note">
<strong>Automatisierung:</strong> Statische Routen sind fest in <code style="font-family:inherit">app/sitemap.ts</code> hinterlegt. Die drei Payload-Collections darunter — Pages, Posts — werden bei jedem Sitemap-Aufruf live abgefragt (stündliches Revalidate), neue CMS-Seiten oder Blog-Artikel erscheinen also ohne Code-Änderung. <code style="font-family:inherit">robots.txt</code> verweist auf die Sitemap und sperrt Konto-/Checkout-Bereiche explizit aus.
</div>
<section class="cat">
<div class="cat-head">
<h2>Startseite &amp; Marketing</h2>
<span class="cat-count">1 Seite</span>
<span class="cat-desc">Öffentlich, indexierbar, statischer Code.</span>
</div>
<div class="table-scroll">
<table>
<thead><tr><th>Pfad</th><th>Beschreibung</th><th>Status</th><th>Quelle</th></tr></thead>
<tbody>
<tr><td class="path">/</td><td class="title-cell">Startseite</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
</tbody>
</table>
</div>
</section>
<section class="cat">
<div class="cat-head">
<h2>Content &amp; Werkzeuge</h2>
<span class="cat-count">7 Seiten</span>
<span class="cat-desc">Blog-Übersicht, Shop, Newsletter-Anmeldung, eigenständige Tool-Seiten.</span>
</div>
<div class="table-scroll">
<table>
<thead><tr><th>Pfad</th><th>Beschreibung</th><th>Status</th><th>Quelle</th></tr></thead>
<tbody>
<tr><td class="path">/blog</td><td class="title-cell">Blog-Übersicht</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/shop</td><td class="title-cell">Produktkatalog</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/newsletter</td><td class="title-cell">Impulse &amp; Tipps — Anmeldung</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/die-sieben</td><td class="title-cell">Die Sieben — Monatsritual</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/einfach-anfangen</td><td class="title-cell">Einfach anfangen</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/7-tage-klarheits-check</td><td class="title-cell">7-Tage-Klarheits-Check</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/sticker</td><td class="title-cell">Sticker-Landingpage (QR-Ziel)</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
</tbody>
</table>
</div>
</section>
<section class="cat">
<div class="cat-head">
<h2>Produktseiten</h2>
<span class="cat-count">3 Seiten</span>
<span class="cat-desc">Bespoke Produktdetailseiten — kein generisches PDP-Template.</span>
</div>
<div class="table-scroll">
<table>
<thead><tr><th>Pfad</th><th>Beschreibung</th><th>Status</th><th>Quelle</th></tr></thead>
<tbody>
<tr><td class="path">/der-eine</td><td class="title-cell">Produktseite „Der Eine.“</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/tasse-die-pause</td><td class="title-cell">Produktseite „Tasse Die Pause“</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/todo-cards</td><td class="title-cell">Produktseite ToDo-Karten</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
</tbody>
</table>
</div>
</section>
<section class="cat">
<div class="cat-head">
<h2>CMS-Seiten (Payload Pages)</h2>
<span class="cat-count">3 Seiten</span>
<span class="cat-desc">Über den Page-Builder erstellt, laufen über den generischen <span style="font-family:'IBM Plex Mono',monospace">app/[slug]</span>-Catch-all. Wächst automatisch mit jeder neuen Payload-Seite.</span>
</div>
<div class="table-scroll">
<table>
<thead><tr><th>Pfad</th><th>Titel</th><th>Zuletzt geändert</th><th>Status</th><th>Quelle</th></tr></thead>
<tbody>
<tr><td class="path">/ueber-mich</td><td class="title-cell">Über mich</td><td class="src">27.08.2026</td><td><span class="pill ok">indexiert</span></td><td class="src">Payload: Pages</td></tr>
<tr><td class="path">/3x3-system</td><td class="title-cell">Das 3×3-System</td><td class="src">27.08.2026</td><td><span class="pill ok">indexiert</span></td><td class="src">Payload: Pages</td></tr>
<tr><td class="path">/lebensuhr</td><td class="title-cell">Lebensuhr</td><td class="src">27.08.2026</td><td><span class="pill ok">indexiert</span></td><td class="src">Payload: Pages</td></tr>
</tbody>
</table>
</div>
</section>
<section class="cat">
<div class="cat-head">
<h2>Blog-Artikel (Payload Posts)</h2>
<span class="cat-count">12 Artikel</span>
<span class="cat-desc">Nur <code style="font-family:inherit">status: published</code>. Wächst automatisch mit jedem neuen Artikel.</span>
</div>
<div class="table-scroll">
<table>
<thead><tr><th>Pfad</th><th>Titel</th><th>Veröffentlicht</th><th>Status</th></tr></thead>
<tbody>
<tr><td class="path">/blog/produktivitat-alltag-leben</td><td class="title-cell">Warum zu viel Optimierung im Alltag oft das Gegenteil bewirkt</td><td class="src">26.08.2026</td><td><span class="pill ok">indexiert</span></td></tr>
<tr><td class="path">/blog/produktivitaets-system-familie-alltag</td><td class="title-cell">Was passiert, wenn weniger Entscheidungen im Alltag plötzlich zu gut funktionieren</td><td class="src">12.08.2026</td><td><span class="pill ok">indexiert</span></td></tr>
<tr><td class="path">/blog/warum-ich-die-sieben-gestartet-habe</td><td class="title-cell">Deshalb habe ich Die Sieben gestartet</td><td class="src">29.07.2026</td><td><span class="pill ok">indexiert</span></td></tr>
<tr><td class="path">/blog/entscheidungsstress-alltag</td><td class="title-cell">Warum gute Entscheidungen im Alltag trotzdem oft verloren gehen</td><td class="src">15.07.2026</td><td><span class="pill ok">indexiert</span></td></tr>
<tr><td class="path">/blog/warum-todo-listen-oft-nicht-funktionieren</td><td class="title-cell">Warum ToDo-Listen oft nicht funktionieren</td><td class="src">01.07.2026</td><td><span class="pill ok">indexiert</span></td></tr>
<tr><td class="path">/blog/3x3-system</td><td class="title-cell">Das 3×3-System: Warum du nicht zu wenig schaffst, sondern zu viel willst</td><td class="src">17.06.2026</td><td><span class="pill ok">indexiert</span></td></tr>
<tr><td class="path">/blog/produktivitaet-mit-kindern-was-sich-veraendert</td><td class="title-cell">Produktivität mit Kindern</td><td class="src">02.06.2026</td><td><span class="pill ok">indexiert</span></td></tr>
<tr><td class="path">/blog/warum-ich-abends-immer-die-spuelmaschine-anschalte</td><td class="title-cell">Warum ich abends immer die Spülmaschine anschalte</td><td class="src">01.10.2025</td><td><span class="pill ok">indexiert</span></td></tr>
<tr><td class="path">/blog/die-3-apps</td><td class="title-cell">Die 3 Apps</td><td class="src">17.09.2025</td><td><span class="pill ok">indexiert</span></td></tr>
<tr><td class="path">/blog/der-feierabend-knopf</td><td class="title-cell">Der Feierabend-Knopf</td><td class="src">10.09.2025</td><td><span class="pill ok">indexiert</span></td></tr>
<tr><td class="path">/blog/3minuten</td><td class="title-cell">Die 3-Minuten-Morgenroutine, die mir den Tag rettet</td><td class="src">20.08.2025</td><td><span class="pill ok">indexiert</span></td></tr>
<tr><td class="path">/blog/promodoro-technik</td><td class="title-cell">Effektives Zeitmanagement mit einer Prise Tomate</td><td class="src">13.08.2025</td><td><span class="pill ok">indexiert</span></td></tr>
</tbody>
</table>
</div>
</section>
<section class="cat">
<div class="cat-head">
<h2>Rechtliches</h2>
<span class="cat-count">5 Seiten</span>
<span class="cat-desc">Pflichtseiten, statisch, indexierbar.</span>
</div>
<div class="table-scroll">
<table>
<thead><tr><th>Pfad</th><th>Beschreibung</th><th>Status</th><th>Quelle</th></tr></thead>
<tbody>
<tr><td class="path">/agb</td><td class="title-cell">AGB</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/datenschutz</td><td class="title-cell">Datenschutz</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/impressum</td><td class="title-cell">Impressum</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/versand</td><td class="title-cell">Versand &amp; Lieferung</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/widerruf</td><td class="title-cell">Widerrufsrecht</td><td><span class="pill ok">indexiert</span></td><td class="src">statisch</td></tr>
</tbody>
</table>
</div>
</section>
<section class="cat">
<div class="cat-head">
<h2>Konto-Bereich</h2>
<span class="cat-count">8 Seiten</span>
<span class="cat-desc">Personalisiert, hinter Login oder rein transaktional — bewusst <code style="font-family:inherit">noindex</code>.</span>
</div>
<div class="table-scroll">
<table>
<thead><tr><th>Pfad</th><th>Beschreibung</th><th>Status</th><th>Quelle</th></tr></thead>
<tbody>
<tr><td class="path">/konto/login</td><td class="title-cell">Login</td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/konto/registrieren</td><td class="title-cell">Registrierung</td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/konto/passwort-vergessen</td><td class="title-cell">Passwort vergessen</td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/konto/passwort-zuruecksetzen</td><td class="title-cell">Passwort zurücksetzen</td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/konto/profil</td><td class="title-cell">Profil</td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/konto/bestellungen</td><td class="title-cell">Bestellübersicht</td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/konto/bestellungen/[orderNumber]</td><td class="title-cell">Bestelldetail<div class="sub">dynamisch je Bestellnummer</div></td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/konto/merkliste</td><td class="title-cell">Merkliste / Wishlist</td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
</tbody>
</table>
</div>
</section>
<section class="cat">
<div class="cat-head">
<h2>Transaktions-Flow</h2>
<span class="cat-count">5 Seiten</span>
<span class="cat-desc">Warenkorb, Checkout und die beiden Bestätigungsseiten — spiegeln jeweils einen konkreten Vorgang, kein indexierbarer Inhalt.</span>
</div>
<div class="table-scroll">
<table>
<thead><tr><th>Pfad</th><th>Beschreibung</th><th>Status</th><th>Quelle</th></tr></thead>
<tbody>
<tr><td class="path">/cart</td><td class="title-cell">Warenkorb</td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/checkout</td><td class="title-cell">Checkout</td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/checkout/verarbeitung</td><td class="title-cell">Zahlung wird verarbeitet</td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/bestellbestaetigung</td><td class="title-cell">Bestellbestätigung<div class="sub">explizit auf Wunsch geprüft — bleibt noindex, siehe Hinweis oben</div></td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/newsletter-confirmed</td><td class="title-cell">Newsletter-Anmeldung bestätigt<div class="sub">Double-Opt-in-Landing, dasselbe Prinzip</div></td><td><span class="pill warn">noindex</span></td><td class="src">statisch</td></tr>
</tbody>
</table>
</div>
</section>
<section class="cat">
<div class="cat-head">
<h2>Redirect-Ziele &amp; interne Tools</h2>
<span class="cat-count">4 Seiten</span>
<span class="cat-desc">Kein eigener Inhalt (reine Weiterleitung) bzw. nicht kundenseitig.</span>
</div>
<div class="table-scroll">
<table>
<thead><tr><th>Pfad</th><th>Beschreibung</th><th>Status</th><th>Quelle</th></tr></thead>
<tbody>
<tr><td class="path">/sticker/[code]</td><td class="title-cell">QR-Code-Weiterleitung<div class="sub">leitet aktuell auf /sticker um</div></td><td><span class="pill off">intern</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/r/[code]</td><td class="title-cell">Kurzlink-Weiterleitung (Redirects-Collection)</td><td><span class="pill off">intern</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/company-settings-preview</td><td class="title-cell">Vorschau der Firmeneinstellungen</td><td><span class="pill off">intern</span></td><td class="src">statisch</td></tr>
<tr><td class="path">/email-preview/[type]</td><td class="title-cell">E-Mail-Template-Vorschau</td><td><span class="pill off">intern</span></td><td class="src">statisch</td></tr>
</tbody>
</table>
</div>
</section>
<section class="cat">
<details class="api">
<summary>
<span>API-Endpunkte <span class="cat-count">34 Routen · kein UI, nicht in Sitemap/Robots-Sinn relevant</span></span>
</summary>
<div class="api-grid">
<div>/api/account/cart</div>
<div>/api/account/check-email</div>
<div>/api/account/delete</div>
<div>/api/account/export</div>
<div>/api/account/forgot-password</div>
<div>/api/account/login</div>
<div>/api/account/logout</div>
<div>/api/account/me</div>
<div>/api/account/orders</div>
<div>/api/account/orders/[orderNumber]</div>
<div>/api/account/orders/[orderNumber]/correction-invoice</div>
<div>/api/account/orders/[orderNumber]/invoice</div>
<div>/api/account/orders/[orderNumber]/switch-to-stripe</div>
<div>/api/account/password</div>
<div>/api/account/profile</div>
<div>/api/account/register</div>
<div>/api/account/resend-verification</div>
<div>/api/account/reset-password</div>
<div>/api/account/verify-email</div>
<div>/api/account/wishlist</div>
<div>/api/checkout</div>
<div>/api/checkout/autocomplete-address</div>
<div>/api/checkout/status</div>
<div>/api/checkout/validate-dhl-postnumber</div>
<div>/api/checkout/validate-vat</div>
<div>/api/discount/redeem</div>
<div>/api/discount/validate</div>
<div>/api/health</div>
<div>/api/muster-widerrufsformular</div>
<div>/api/newsletter/subscribe</div>
<div>/api/preview</div>
<div>/api/products</div>
<div>/api/search</div>
<div>/api/stock-notifications</div>
<div>/api/webhooks/stripe</div>
<div>/api/webhooks/stripe/test-confirm</div>
</div>
</details>
</section>
<footer class="doc-foot">
Quelle: <code style="font-family:inherit">next build</code>-Routenbaum + <code style="font-family:inherit">app/sitemap.ts</code> + Live-Abfrage von payload.mk360.de (Pages/Posts, Tenant „einfach-produktiv“), 29.08.2026.
</footer>
</div>