+ Alle Artikel. +
++ Gedanken über Engineering, Design und die Architektur der + Zukunft. +
++ {caption} +
+ )} ++ {caption} +
+ )} ++ {caption} +
+ )} ++ {caption} +
+ )} ++ {caption} +
+ )} ++ {title} +
+ )} +{title}
++ {title} +
- {title} -
-- {description} -
-+ {title} +
+ {showShare && isBlog && ( + + )} ++ {description} +
+- Speichern Sie diesen Link, um Ihre Konfiguration später fortzusetzen oder teilen Sie ihn mit anderen. -
+ const handleDownloadImage = () => { + if (!imagePreview) return; - {qrCodeData && ( -QR-Code scannen
+ const link = document.createElement("a"); + link.download = `${title?.replace(/\s+/g, "-").toLowerCase() || "diagram"}.png`; + link.href = imagePreview; + link.click(); + }; + + const handleShareX = () => { + const text = encodeURIComponent(title || "Mintel Diagramm"); + const shareUrl = `https://twitter.com/intent/tweet?text=${text}&url=${encodeURIComponent(url)}`; + window.open(shareUrl, "_blank", "width=550,height=420"); + }; + + const handleShareLinkedIn = () => { + const shareUrl = `https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`; + window.open(shareUrl, "_blank", "width=550,height=420"); + }; + + const modalTitle = diagramImage + ? "Diagramm teilen" + : title + ? "Artikel teilen" + : "Konfiguration teilen"; + + return ( ++ + Diagramm Vorschau + +
++ "{title}" +
++ QR-Code scannen +
+ {title} +
++ {description} +
+
Die traditionelle 'Stille Post': Jede Schnittstelle kostet Sie Zeit,
@@ -152,6 +156,27 @@ export const AgencySlowdown: React.FC = () => (
+
Für wen ich die Bremse löse
Der Flaschenhals der Standard-Systeme: Rechenzeit am Server raubt Ihnen
@@ -134,6 +138,20 @@ export const PageSpeedFails: React.FC = () => (
+
Der wirtschaftliche Case
Der fatale Teufelskreis der Ladezeit: Technische Schulden führen zu diff --git a/apps/web/src/components/blog/posts/Group1/WebsiteStability.tsx b/apps/web/src/components/blog/posts/Group1/WebsiteStability.tsx index 5c597fc..1b20b00 100644 --- a/apps/web/src/components/blog/posts/Group1/WebsiteStability.tsx +++ b/apps/web/src/components/blog/posts/Group1/WebsiteStability.tsx @@ -3,6 +3,7 @@ import { H2, H3 } from "../../../ArticleHeading"; import { Paragraph, LeadParagraph } from "../../../ArticleParagraph"; import { IconList, IconListItem } from "../../../IconList"; import { Mermaid } from "../../../Mermaid"; +import { DiagramState } from "../../../DiagramState"; import { Marker } from "../../../Marker"; import { ComparisonRow } from "../../../Landing/ComparisonRow"; @@ -54,6 +55,9 @@ export const WebsiteStability: React.FC = () => ( style Stable fill:#4ade80,stroke:#333 style Alert fill:#ef4444,color:#fff style Deploy fill:#4ade80,stroke:#333`} + id="deployment-safety-net" + title="Deployment Sicherheitsnetz" + showShare={true} />
Mein defensives Sicherheitsnetz: Keine Änderung erreicht den Nutzer,
@@ -107,6 +111,24 @@ export const WebsiteStability: React.FC = () => (
+
Das Plugin-Paradoxon: Jedes 'Feature' erhöht die Wahrscheinlichkeit diff --git a/apps/web/src/components/blog/posts/Group2/CookieFreeDesign.tsx b/apps/web/src/components/blog/posts/Group2/CookieFreeDesign.tsx index 7d576fe..5bc17e9 100644 --- a/apps/web/src/components/blog/posts/Group2/CookieFreeDesign.tsx +++ b/apps/web/src/components/blog/posts/Group2/CookieFreeDesign.tsx @@ -62,6 +62,9 @@ export const CookieFreeDesign: React.FC = () => ( NoBanner --> Experience["Sofortige Experience & Vertrauen"] style NoBanner fill:#4ade80,stroke:#333 style Experience fill:#4ade80,stroke:#333`} + id="cookie-free-architecture" + title="Cookie-freie Architektur" + showShare={true} />
Privacy by Design: Wenn die Architektur den Schutz bereits garantiert, diff --git a/apps/web/src/components/blog/posts/Group2/GDPRSystem.tsx b/apps/web/src/components/blog/posts/Group2/GDPRSystem.tsx index d82228a..448c763 100644 --- a/apps/web/src/components/blog/posts/Group2/GDPRSystem.tsx +++ b/apps/web/src/components/blog/posts/Group2/GDPRSystem.tsx @@ -58,6 +58,9 @@ export const GDPRSystem: React.FC = () => ( style Safe fill:#4ade80,stroke:#333 style Minimize fill:#4ade80,stroke:#333 style Encrypt fill:#4ade80,stroke:#333`} + id="gdpr-compliance-flow" + title="DSGVO Compliance System" + showShare={true} />
Der Kreislauf der systemischen Sicherheit: Jede Stufe schützt Ihre diff --git a/apps/web/src/components/blog/posts/Group2/LocalCloud.tsx b/apps/web/src/components/blog/posts/Group2/LocalCloud.tsx index 0472c28..e7bbf7b 100644 --- a/apps/web/src/components/blog/posts/Group2/LocalCloud.tsx +++ b/apps/web/src/components/blog/posts/Group2/LocalCloud.tsx @@ -53,6 +53,9 @@ export const LocalCloud: React.FC = () => ( Compliance --> Speed["Niedrige Latenz & Absolute Kontrolle"] style Local fill:#4ade80,stroke:#333 style Risk fill:#fca5a5,stroke:#333`} + id="local-cloud-hybrid" + title="Local Cloud Strategie" + showShare={true} />
Architektonische Entscheidung: Geopolitische Risiken minimieren durch diff --git a/apps/web/src/components/blog/posts/Group2/PrivacyAnalytics.tsx b/apps/web/src/components/blog/posts/Group2/PrivacyAnalytics.tsx index 11033c1..db48fe2 100644 --- a/apps/web/src/components/blog/posts/Group2/PrivacyAnalytics.tsx +++ b/apps/web/src/components/blog/posts/Group2/PrivacyAnalytics.tsx @@ -53,6 +53,9 @@ export const PrivacyAnalytics: React.FC = () => ( Zero --> Compliance["100% DSGVO & Banner-Frei"] style Insights fill:#4ade80,stroke:#333 style Compliance fill:#4ade80,stroke:#333`} + id="privacy-analytics-flow" + title="Privacy Analytics Workflow" + showShare={true} />
Ethisches Tracking: Wir gewinnen wertvolle Business-Insights, während diff --git a/apps/web/src/components/blog/posts/Group2/VendorLockIn.tsx b/apps/web/src/components/blog/posts/Group2/VendorLockIn.tsx index 218ef1e..ebf566b 100644 --- a/apps/web/src/components/blog/posts/Group2/VendorLockIn.tsx +++ b/apps/web/src/components/blog/posts/Group2/VendorLockIn.tsx @@ -3,6 +3,7 @@ import { H2, H3 } from "../../../ArticleHeading"; import { Paragraph, LeadParagraph } from "../../../ArticleParagraph"; import { IconList, IconListItem } from "../../../IconList"; import { Mermaid } from "../../../Mermaid"; +import { DiagramState } from "../../../DiagramState"; import { Marker } from "../../../Marker"; import { ComparisonRow } from "../../../Landing/ComparisonRow"; @@ -57,6 +58,9 @@ export const VendorLockIn: React.FC = () => ( Flex --> Evolution["Permanente Innovation"] style Open fill:#4ade80,stroke:#333 style Crisis fill:#fca5a5,stroke:#333`} + id="vendor-lockin-fork" + title="Vendor Lock-In vs. Offene Architektur" + showShare={true} />
Die Gabelung der digitalen Strategie: Wählen Sie Freiheit durch
@@ -102,6 +106,24 @@ export const VendorLockIn: React.FC = () => (
+
Build vs. Buy: Investieren Sie in Ihr eigenes geistiges Eigentum statt
@@ -104,6 +108,19 @@ export const BuildFirst: React.FC = () => (
Software-Miete ist ein Kostenblock, Software-Bau ist eine Investition.
+
Das Modell des Vertrauens: Fixe Budgets schaffen den Raum für
@@ -109,6 +113,49 @@ export const FixedPrice: React.FC = () => (
Die grüne Rendite: Effizienz in der Software führt direkt zu
@@ -104,6 +108,19 @@ export const GreenIT: React.FC = () => (
+
Architektur der Langlebigkeit: Durch die Trennung von Logik und Trends diff --git a/apps/web/src/components/blog/posts/Group3/MaintenanceNoCMS.tsx b/apps/web/src/components/blog/posts/Group3/MaintenanceNoCMS.tsx index c3bd9dd..559ba70 100644 --- a/apps/web/src/components/blog/posts/Group3/MaintenanceNoCMS.tsx +++ b/apps/web/src/components/blog/posts/Group3/MaintenanceNoCMS.tsx @@ -56,6 +56,9 @@ export const MaintenanceNoCMS: React.FC = () => ( Speed --> Focus["Fokus auf Kunden & Strategie"] style Git fill:#4ade80,stroke:#333 style Focus fill:#4ade80,stroke:#333`} + id="maintenance-workflow" + title="Wartungs-Workflow Vergleich" + showShare={true} />
Der schlanke Workflow: Wir eliminieren die Datenbank-Ebene, um diff --git a/apps/web/src/components/blog/posts/Group4/CRMSync.tsx b/apps/web/src/components/blog/posts/Group4/CRMSync.tsx index 06f96de..89a2a3d 100644 --- a/apps/web/src/components/blog/posts/Group4/CRMSync.tsx +++ b/apps/web/src/components/blog/posts/Group4/CRMSync.tsx @@ -2,7 +2,7 @@ import React from "react"; import { H2, H3 } from "../../../ArticleHeading"; import { Paragraph, LeadParagraph } from "../../../ArticleParagraph"; import { IconList, IconListItem } from "../../../IconList"; -import { Mermaid } from "../../../Mermaid"; +import { DiagramSequence } from "../../../DiagramSequence"; import { Marker } from "../../../Marker"; import { ComparisonRow } from "../../../Landing/ComparisonRow"; @@ -47,20 +47,44 @@ export const CRMSync: React.FC = () => (
- Der automatisierte Lead-Fluss: Von der ersten Interaktion bis zum - CRM-Eintrag in Millisekunden – ohne menschliches Eingreifen. -
Echtzeit-Synchronität als Wettbewerbsvorteil
diff --git a/apps/web/src/components/blog/posts/Group4/CleanCode.tsx b/apps/web/src/components/blog/posts/Group4/CleanCode.tsx index e38fea7..0b86dc8 100644 --- a/apps/web/src/components/blog/posts/Group4/CleanCode.tsx +++ b/apps/web/src/components/blog/posts/Group4/CleanCode.tsx @@ -55,6 +55,9 @@ export const CleanCode: React.FC = () => ( Market --> Profit style Profit fill:#4ade80,stroke:#333 style Clean fill:#4ade80,stroke:#333`} + id="clean-code-architecture" + title="Clean Code Architektur" + showShare={true} />Die Logik der Qualität: Sauberer Code zahlt sich durch sinkende diff --git a/apps/web/src/components/blog/posts/Group4/HostingOps.tsx b/apps/web/src/components/blog/posts/Group4/HostingOps.tsx index 0ecb4da..4756a73 100644 --- a/apps/web/src/components/blog/posts/Group4/HostingOps.tsx +++ b/apps/web/src/components/blog/posts/Group4/HostingOps.tsx @@ -54,6 +54,9 @@ export const HostingOps: React.FC = () => ( Global --> Failover["Automatisches Failover (Sicherheit)"] style Global fill:#4ade80,stroke:#333 style Failover fill:#4ade80,stroke:#333`} + id="cloud-native-operations" + title="Cloud-Native Operations" + showShare={true} />
Die Cloud-Native Architektur: Skalierung per Knopfdruck und diff --git a/apps/web/src/components/blog/posts/Group4/NoTemplates.tsx b/apps/web/src/components/blog/posts/Group4/NoTemplates.tsx index 81eb015..2207a6c 100644 --- a/apps/web/src/components/blog/posts/Group4/NoTemplates.tsx +++ b/apps/web/src/components/blog/posts/Group4/NoTemplates.tsx @@ -56,6 +56,9 @@ export const NoTemplates: React.FC = () => ( Distinct --> Authority["Marken-Autorität"] style Custom fill:#4ade80,stroke:#333 style Authority fill:#4ade80,stroke:#333`} + id="bespoke-vs-template" + title="Bespoke vs. Template Vergleich" + showShare={true} />
Bespoke vs. Template: Investieren Sie in ein digitales Unikat, das Ihre diff --git a/apps/web/src/components/blog/posts/Group4/ResponsiveDesign.tsx b/apps/web/src/components/blog/posts/Group4/ResponsiveDesign.tsx index 94fda43..88f92be 100644 --- a/apps/web/src/components/blog/posts/Group4/ResponsiveDesign.tsx +++ b/apps/web/src/components/blog/posts/Group4/ResponsiveDesign.tsx @@ -53,6 +53,9 @@ export const ResponsiveDesign: React.FC = () => ( Desktop --> UX style UX fill:#4ade80,stroke:#333 style Logic fill:#4ade80,stroke:#333`} + id="responsive-ux-strategy" + title="Responsive UX Strategie" + showShare={true} />
Plattformübergreifende Brillanz: Ein System, das sich nicht nur anpasst,