Files
dogfather-universe/tt-muddi.html
T
DogFatherGitandClaude Opus 5 51c3d4402b Audit des Creator Workspace, App-Symbole fuer alle Apps der Domain
AUDIT (Auftrag: vollstaendiger Durchgang, Fehler direkt beheben)

Ausgangslage waren 40 Pruefungen mit 1616 Einzelpunkten, alle gruen.
Acht neue Pruefungen kamen dazu; sie haben gefunden, was die alten nicht
sehen konnten.

Der schwerste Fund: Die Zugangsschranke verglich req.path EXAKT gegen
eine Liste. Express raeumt Punkt-Segmente selbst weg, mehrfache
Schraegstriche aber nicht. Damit kam //workspace/start.html OHNE
Anmeldung mit HTTP 200, und ein Creator bekam ueber
/workspace//personen.html die Verwaltungsseite. Die DATEN waren nie
betroffen (nachgemessen: 404 bzw. 401). Behoben durch Normalisierung
UND eine Umkehr der Logik -- jetzt ist jede .html geschuetzt ausser der
Anmeldeseite, statt nur die in der Liste. Eine vergessene neue Seite
steht damit nicht mehr versehentlich offen.

Weiter behoben:
  * Kaputter/abgebrochener Rumpf ergab 500 in HTML statt 400 in JSON --
    die Oberflaeche ruft ueberall a.json() und lief in einen zweiten
    Fehler; der Knopf hing ohne Meldung.
  * POST /zustand/sichern war der einzige von 60 schreibenden Wegen
    ohne Herkunftspruefung.
  * workspace-sicherung.js gab interne Pfade in Fehlermeldungen nach
    aussen; alle 23 anderen Module antworten neutral.
  * admin_notiz war als einziges von 14 Feldern ohne <label>.
  * Der aktive Filter hatte keinen sichtbaren Fokus (CSS-Spezifitaet
    0,3,0 schlug 0,2,0) -- genau der Knopf, auf dem man steht.
  * h1 -> h3 ohne Zwischenstufe auf zwei Seiten.
  * HSTS ging auch ueber http mit (RFC 6797, 7.2 verbietet das).
  * upgrade-insecure-requests galt auch auf 127.0.0.1 -- dadurch war
    WebKit/Safari ueberhaupt nicht pruefbar, also der Browser, den
    jedes iPhone benutzt.
  * pruef-grosscheck las readdirSync(".") und pruefte aus server/
    gestartet NULL oeffentliche Seiten -- meldete aber "ok".

Neue Pruefungen: struktur, schranke, haerte, alle-wege,
barrierefrei-workspace, breiten, tempo-workspace, browser.
Jede mit Gegenprobe und mit der geprueften Anzahl in der Bedingung.
Vier davon sind beim Bauen durch die eigene Gegenprobe aufgeflogen und
haetten sonst dauerhaft gruen gemeldet, ohne etwas zu messen.

APP-SYMBOLE (Wunsch: alle Apps der Domain, jede anders, ausser
safeaddress)

Zehn Apps, zehn Stile, zehn in OKLCH gerechnete Farben. Zusammen haelt
sie dasselbe Logo, dieselbe Eckenrundung und eine gemeinsame gedeckte
Farbreihe. Beim Bauen wird gemessen, ob sich das Logo vom Grund abhebt
(19 bis 58 Helligkeitsstufen).

Dabei aufgefallen: Das Kundenportal hatte kein eigenes Manifest und
trug Namen und Symbol der Webdesign-Seite. Der Workspace hatte gar
keins und war als App nicht installierbar. Beide haben jetzt eins.

Geaendert wurde AUSSCHLIESSLICH das Symbol. Ein Zwischenstand hatte
auch die Themenfarben gesetzt; das war mehr als bestellt und wurde
zurueckgenommen.

Werkzeuge: tools/logo-freistellen.mjs, tools/app-symbole.mjs,
tools/app-symbole-einbinden.mjs -- alles im Browser gerechnet, kein
Bildprogramm, keine neue Abhaengigkeit.

Gitea und Nextcloud sind bereits live und nachgeprueft.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-05 11:42:17 +02:00

161 lines
11 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.
<!DOCTYPE html>
<html lang="de" data-theme="dogfather">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tili — meine TikTok-Muddi — DOGFATHER UNIVERSE</title>
<meta name="description" content="Eine persönliche Widmung von Dogi an Tili — seine TikTok-Muddi, die erste und bis heute einzige Streamerin, die ihm all die Zeit treu geblieben ist." />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/universe-32.png" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/universe-180.png" />
<link rel="manifest" href="/manifest.json" />
<meta name="theme-color" content="#0b0d10" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="DOGFATHER UNIVERSE" />
<meta property="og:title" content="Tili — meine TikTok-Muddi — DOGFATHER UNIVERSE" />
<meta property="og:description" content="Eine persönliche Widmung von Dogi an Tili — seine TikTok-Muddi, die erste und bis heute einzige Streamerin, die ihm all die Zeit treu geblieben ist." />
<meta property="og:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<meta property="og:url" content="https://dogfather-universe.com/tt-muddi.html" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Tili — meine TikTok-Muddi — DOGFATHER UNIVERSE" />
<meta name="twitter:description" content="Eine persönliche Widmung von Dogi an Tili — seine TikTok-Muddi, die erste und bis heute einzige Streamerin, die ihm all die Zeit treu geblieben ist." />
<meta name="twitter:image" content="https://dogfather-universe.com/assets/img/og-cover.jpg" />
<link rel="stylesheet" href="assets/css/main.css?v=20260828e" />
<link rel="stylesheet" href="assets/css/theme-dogfather.css?v=20260828e" />
<link rel="stylesheet" href="assets/css/theme-hasidog.css?v=20260828e" />
<link rel="stylesheet" href="assets/css/theme-spicymedia.css?v=20260828e" />
<style>
/* Gleiche Anpassung wie vanvan.html: der site-weit etwas größere
Fließtext wirkt bei einem so langen persönlichen Brief zu wuchtig —
hier gezielt etwas kleiner, ohne main.css global zu verändern. */
main p { font-size: 1.14rem; line-height: 1.78; }
main .lead { font-size: 1.28rem; }
main .quote { font-size: 1.25rem; }
main h2 { font-size: clamp(1.6rem, 3.4vw, 2.3rem); }
.tm-signatur { margin-top: 2rem; }
.tm-signatur strong { font-size: 1.15rem; }
</style>
</head>
<body class="mit-hintergrund" style="--page-bg:url('/assets/img/bg-tt-muddi.jpg');--page-bg-mobile:url('/assets/img/bg-tt-muddi.jpg');">
<div id="site-header"></div>
<main>
<section class="hero page-bg">
<div class="hero-banner"><img src="/assets/img/bg-tt-muddi.jpg" alt="Tili und Dogfather" loading="eager" /></div>
<div class="container">
<span class="eyebrow" data-i18n="tm_eyebrow">🩵 Familie</span>
<h1 data-i18n="tm_h1">Tili – meine TikTok-Muddi und ein ganz besonderer Teil meines Lebens 🩵</h1>
</div>
</section>
<section class="section-tight">
<div class="container grid grid-2" style="align-items:center;grid-template-columns:1fr 1.25fr;">
<div class="collage-photo" style="aspect-ratio:3/4;border-radius:var(--radius);">
<img src="assets/img/tt-muddi-1.jpg" alt="Tili und Dogfather" style="width:100%;height:100%;object-fit:cover;" />
</div>
<div>
<p class="lead worlds" data-i18n="tm_lead" style="margin-bottom:1.2rem;">Eine persönliche Widmung von Dogi an eine seiner wichtigsten Vertrauenspersonen.</p>
<a class="btn-tiktok" href="https://www.tiktok.com/@tili07069" target="_blank" rel="noopener" style="margin-bottom:1.2rem;"><span class="btn-tiktok-note" aria-hidden="true">♪</span><span class="btn-tiktok-text">TikTok</span></a>
<p data-i18n="tm_1">Es gibt Menschen, die einem nicht einfach nur begegnen. Sie treten in das eigene Leben und hinterlassen etwas, das sich nur schwer in Worte fassen lässt. Sie geben einem Kraft, schenken Vertrauen und erinnern einen daran, dass es selbst in schwierigen Zeiten noch ehrliche und gute Menschen gibt.</p>
<p class="quote" data-i18n="tm_quote1" style="margin-top:1.4rem;"><strong>Für mich ist Tili genau so ein Mensch.</strong></p>
</div>
</div>
</section>
<section class="section-tight">
<div class="container" style="max-width:70ch;">
<p data-i18n="tm_2">Tili ist nicht nur eine Streamerin, die mich von Anfang an begleitet hat. Sie ist die erste und bis heute einzige Streamerin, die mir über all die Zeit hinweg treu geblieben ist. Während sich Wege verändert, Menschen entfernt und viele Versprechen irgendwann ihre Bedeutung verloren haben, war sie weiterhin da.</p>
<p data-i18n="tm_3a" style="margin-top:1.2rem;">Nicht nur dann, wenn alles gut lief.</p>
<p data-i18n="tm_3b">Nicht nur dann, wenn es etwas zu feiern gab.</p>
<p data-i18n="tm_3c">Sondern auch in den Momenten, in denen es schwierig wurde und ich Menschen an meiner Seite besonders gebraucht habe.</p>
<p data-i18n="tm_4" style="margin-top:1.2rem;">Genau diese Treue ist etwas, das ich niemals als selbstverständlich ansehen werde.</p>
</div>
</section>
<section>
<div class="container grid grid-2" style="align-items:center;">
<div>
<p data-i18n="tm_5">Doch Tili ist für mich schon lange viel mehr als eine Streamerin oder ein Teil meiner TikTok-Geschichte. Sie ist meine zweite Mama, meine ganz persönliche TikTok-Muddi. Ein Mensch, bei dem ich mich nicht verstellen muss und bei dem ich weiß, dass ich mit meinen Gedanken, meinen Sorgen und meinen Gefühlen niemals allein bin.</p>
<p data-i18n="tm_6">Sie hört zu, ohne sofort zu urteilen. Sie sagt ehrlich ihre Meinung, auch wenn diese vielleicht nicht immer das ist, was ich gerade hören möchte. Und genau das macht echtes Vertrauen aus: nicht nur die schönen Worte zu sagen, sondern füreinander da zu sein, ehrlich zu bleiben und sich gegenseitig wieder aufzurichten.</p>
</div>
<div class="collage-photo frame-lila" style="aspect-ratio:auto;border-radius:var(--radius);">
<img src="assets/img/tt-muddi-2.jpg" alt="Tili und Dogfather in Umarmung" style="width:100%;height:auto;display:block;" />
</div>
</div>
</section>
<section class="section-tight">
<div class="container" style="max-width:70ch;">
<p data-i18n="tm_7">Neben VanVan gehört Tili zu den wichtigsten Vertrauenspersonen in meinem Leben. Sie kennt nicht nur den Streamer Dogfather, den die Menschen auf TikTok sehen. Sie kennt auch den Menschen dahinter. Sie kennt meine starken Seiten, aber auch meine Unsicherheiten, meine Sorgen und die Momente, in denen selbst ich nicht mehr genau weiß, wie es weitergehen soll.</p>
<p class="quote" data-i18n="tm_8" style="margin-top:1.2rem;"><strong>Und trotzdem bleibt sie.</strong></p>
</div>
</section>
<section>
<div class="container" style="max-width:70ch;">
<p data-i18n="tm_9">Tili gibt mir das Gefühl, verstanden und angenommen zu werden – nicht aufgrund von Zahlen, Reichweite, Erfolgen oder irgendeiner Rolle, sondern einfach als der Mensch, der ich bin.</p>
<p data-i18n="tm_10" style="margin-top:1.2rem;">Sie ist für mich ein Stück Familie geworden.</p>
<p data-i18n="tm_11">Eine Familie, die nicht durch denselben Namen oder dasselbe Blut entstanden ist, sondern durch Vertrauen, Loyalität, gemeinsame Erlebnisse und die Entscheidung, auch dann füreinander da zu sein, wenn das Leben einmal nicht perfekt läuft.</p>
</div>
</section>
<section class="section-tight">
<div class="container grid grid-2" style="align-items:center;">
<div class="collage-photo frame-lila" style="aspect-ratio:auto;border-radius:var(--radius);">
<img src="assets/img/tt-muddi-3.jpg" alt="Tili und Dogfather Arm in Arm" style="width:100%;height:auto;display:block;" />
</div>
<div>
<p data-i18n="tm_12">Für mich steht Tili für Hoffnung. Sie ist einer der Menschen, die mir zeigen, dass das Gute im Menschen noch existiert. Dass es noch Personen gibt, die nicht nur an sich selbst denken. Menschen, die ein ehrliches Herz besitzen, anderen Mut machen und ihre Hand nicht zurückziehen, sobald der Weg schwieriger wird.</p>
<p data-i18n="tm_13">Gerade in einer Welt, in der vieles schnelllebig und oberflächlich geworden ist, ist ein Mensch wie Tili etwas unglaublich Wertvolles.</p>
</div>
</div>
</section>
<section>
<div class="container" style="max-width:70ch;">
<p data-i18n="tm_14">Sie hat mich unterstützt, an mich geglaubt und mir immer wieder gezeigt, dass ich nicht allein bin. Vielleicht kann ich ihr niemals vollständig zurückgeben, was sie mir durch ihre Art, ihre Treue und ihr Vertrauen gegeben hat. Aber ich möchte, dass sie weiß, dass ich nichts davon vergesse.</p>
<p data-i18n="tm_15a" style="margin-top:1.2rem;">Ich vergesse nicht, wer geblieben ist.</p>
<p data-i18n="tm_15b">Ich vergesse nicht, wer an mich geglaubt hat.</p>
<p data-i18n="tm_15c">Und ich vergesse niemals, wer mir in schweren Momenten gezeigt hat, dass Aufgeben keine Lösung ist.</p>
<p data-i18n="tm_16" style="margin-top:1.2rem;">Diese Seite ist deshalb nicht einfach nur eine Vorstellung. Sie ist eine persönliche Widmung an einen Menschen, der einen festen Platz in meinem Leben und in meinem Herzen besitzt.</p>
</div>
</section>
<section class="section-tight">
<div class="container text-center" style="max-width:64ch;">
<h2 data-i18n="tm_danke_h2">Danke, Tili.</h2>
<p data-i18n="tm_danke1">Danke für deine Treue.</p>
<p data-i18n="tm_danke2">Danke für dein Vertrauen.</p>
<p data-i18n="tm_danke3">Danke für deine Ehrlichkeit.</p>
<p data-i18n="tm_danke4">Danke für jedes Gespräch, jeden Rat und jeden Moment, in dem du für mich da warst.</p>
<p data-i18n="tm_danke5">Danke dafür, dass du meine TikTok-Muddi bist und mir immer wieder zeigst, wie wertvoll echte Verbundenheit sein kann.</p>
<p data-i18n="tm_17" style="margin-top:1.6rem;">Egal, wie viele Wege noch vor uns liegen und wie sehr sich das Leben verändern wird: Du wirst immer ein wichtiger Teil meiner Geschichte sein.</p>
<p data-i18n="tm_18a" style="margin-top:1.2rem;">Nicht nur als Streamerin.</p>
<p data-i18n="tm_18b">Nicht nur als Unterstützerin.</p>
<p data-i18n="tm_18c">Sondern als Vertrauensperson, zweite Mama und Familie.</p>
<p class="quote" data-i18n="tm_quote2" style="margin-top:1.6rem;"><strong>Diese Seite ist für dich, Tili – weil besondere Menschen einen besonderen Platz verdienen.</strong></p>
<div class="tm-signatur">
<p data-i18n="tm_signatur_dank">In tiefer Dankbarkeit und von ganzem Herzen</p>
<p><strong data-i18n="tm_signatur1">Dein Dogi</strong><br /><em data-i18n="tm_signatur2">Dogfather – Filipe 🩵</em></p>
</div>
</div>
</section>
<section class="section-tight">
<div class="container text-center">
<div class="btn-row" style="justify-content:center;">
<a class="btn btn-outline" href="dogfather.html" data-i18n="tm_btn_zurueck">← Zurück zu DogFather</a>
</div>
</div>
</section>
</main>
<div id="site-footer"></div>
<script src="assets/js/i18n-tt-muddi.js?v=20260828e"></script>
<script src="assets/js/main.js?v=20260828e"></script>
</body>
</html>