From 54bbb467557e2afbed4d3951ff670a64587590b0 Mon Sep 17 00:00:00 2001
From: hsiegeln <37154749+hsiegeln@users.noreply.github.com>
Date: Sat, 25 Apr 2026 02:33:50 +0200
Subject: [PATCH] feat(sections): add ThreeAmWalkthrough component
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Replaces DualValueProps + ProductShowcase with a single before/after
split: a styled
block (the 'without' state) next to the
existing /product/error-detail.png screenshot (the 'with' state).
Three short callouts below.
Section anchor #walkthrough is the target for the Hero's
'See it in action ↓' secondary CTA (added in Task 4).
The 'without' panel is implemented as a styled
per the spec —
no asset production required. A future phase may swap to a recorded
terminal screencap; that swap is a one-component change.
Co-Authored-By: Claude Opus 4.7 (1M context)
---
.../sections/ThreeAmWalkthrough.astro | 104 ++++++++++++++++++
1 file changed, 104 insertions(+)
create mode 100644 src/components/sections/ThreeAmWalkthrough.astro
diff --git a/src/components/sections/ThreeAmWalkthrough.astro b/src/components/sections/ThreeAmWalkthrough.astro
new file mode 100644
index 0000000..c05ff23
--- /dev/null
+++ b/src/components/sections/ThreeAmWalkthrough.astro
@@ -0,0 +1,104 @@
+---
+import Lightbox from '../Lightbox.astro';
+
+interface Callout {
+ title: string;
+ body: string;
+}
+
+const callouts: Callout[] = [
+ {
+ title: 'Cross-service correlation.',
+ body: 'Every exchange carries its correlation ID forward. One click jumps to what the downstream route did with the same message.',
+ },
+ {
+ title: 'Runtime detail, not guesswork.',
+ body: 'Circuit breaker tripped. Fallback path ran. Request tried backend:80. The pieces a 3 AM page actually needs — already captured.',
+ },
+ {
+ title: 'The whole story of a failure.',
+ body: 'Exception class, message, stack trace, headers, payload — all pinned to the exchange. No log-grepping tour.',
+ },
+];
+---
+
+
+
+
// When something breaks
+
+ The 3 AM page. With and without Cameleer.
+
+
+ Same Camel app. Same failed exchange. Different night.
+
+
+
+
+
+
+ Without Cameleer · 03:12 AM
+
+
$ kubectl logs camel-router-7d4f8c
+ERROR org.apache.camel.CamelExecutionException
+ at org.apache.camel.processor.SendProcessor.process
+ at org.apache.camel.processor.Pipeline.process
+ ...
+
+$ grep "order-842" *.log
+router-3.log: WARN exchange order-842 stuck in saga-fulfillment
+router-3.log: ERROR processor backend:80 → connect timeout
+
+$ ssh prod-integration-3
+prod-integration-3 $ kubectl logs ...
+
+> slack #integration-team
+ "anyone know why order-842 is stuck??"
+ [3 of 4 reactions, no answer]
+
+~47 min later: someone wakes up an SRE.
+
+
+
+
+ With Cameleer · 30 sec
+
+
+
+ ▸ Open exchange order-842 → see the failure pinned → click Replay after fix.
+