From 820f5947be533dd2215b18f37db3bf4ce31bba15 Mon Sep 17 00:00:00 2001 From: Anthony Ettinger Date: Sat, 5 Sep 2026 23:00:58 +0000 Subject: [PATCH 1/2] Blog pages carry a CrawlProof unit by default A nested blog layout appends the text-strip unit for this site's slot under every post (and loads ad.js where the root layout did not). It collapses to nothing when there is no advertiser. Tracking was already on. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01YafYxayh7Gqe5MWNNQMev2 --- apps/web/src/app/blog/layout.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 apps/web/src/app/blog/layout.tsx diff --git a/apps/web/src/app/blog/layout.tsx b/apps/web/src/app/blog/layout.tsx new file mode 100644 index 00000000..bb8b935d --- /dev/null +++ b/apps/web/src/app/blog/layout.tsx @@ -0,0 +1,17 @@ +import Script from 'next/script'; + +/** + * Every blog page carries one CrawlProof unit under the post: the text strip, + * filled by ad.js, which collapses to nothing when there is no advertiser. + * The tracker is in the root layout; this is the ads half of the blog's + * defaults (tracking + ads, both on). + */ +export default function BlogLayout({ children }: { children: React.ReactNode }) { + return ( + <> + {children} +