diff --git a/sites/art/src/components/CoralComments.astro b/sites/art/src/components/CoralComments.astro
new file mode 100644
index 0000000..b83ae98
--- /dev/null
+++ b/sites/art/src/components/CoralComments.astro
@@ -0,0 +1,46 @@
+---
+interface Props {
+ storyID: string;
+ storyURL: string;
+}
+
+const { storyID, storyURL } = Astro.props;
+const coralRoot = "https://coral.neeldhara.cloud";
+---
+
+
+
+
diff --git a/sites/art/src/components/RybbitAnalytics.astro b/sites/art/src/components/RybbitAnalytics.astro
new file mode 100644
index 0000000..8928cac
--- /dev/null
+++ b/sites/art/src/components/RybbitAnalytics.astro
@@ -0,0 +1,6 @@
+---
+const rybbitSiteId = "7";
+const rybbitScriptUrl = "https://analytics.neeldhara.cloud/api/script.js";
+---
+
+
diff --git a/sites/art/src/layouts/DefaultLayout.astro b/sites/art/src/layouts/DefaultLayout.astro
index 137799a..7ce0cfe 100644
--- a/sites/art/src/layouts/DefaultLayout.astro
+++ b/sites/art/src/layouts/DefaultLayout.astro
@@ -1,5 +1,6 @@
---
import BaseHead from '@/components/BaseHead.astro';
+import RybbitAnalytics from '@/components/RybbitAnalytics.astro';
import Footer from '@/components/sections/footer';
import Navbar from '@/components/sections/navbar';
@@ -7,8 +8,9 @@ const { title, description } = Astro.props;
---
-
-
+
+
+
diff --git a/sites/art/src/pages/[...slug].astro b/sites/art/src/pages/[...slug].astro
index ea2f2d7..62160d4 100644
--- a/sites/art/src/pages/[...slug].astro
+++ b/sites/art/src/pages/[...slug].astro
@@ -1,5 +1,6 @@
---
import { getCollection, render } from 'astro:content';
+import CoralComments from '@/components/CoralComments.astro';
import DefaultLayout from '@/layouts/DefaultLayout.astro';
import { BlogPost } from '@/components/sections/blog-post';
import NewsletterSignup from '@/components/sections/newsletter-signup';
@@ -16,6 +17,9 @@ export async function getStaticPaths() {
const post = Astro.props;
const { Content } = await render(post);
+const postSlug = post.id.replace(/\/index$/, '');
+const coralStoryID = `${ACTIVE_BLOG_SITE.key}:${postSlug}`;
+const coralStoryURL = new URL(`/${postSlug}/`, ACTIVE_BLOG_SITE.url).toString();
---
@@ -25,5 +29,6 @@ const { Content } = await render(post);
+
diff --git a/sites/poetry/src/components/CoralComments.astro b/sites/poetry/src/components/CoralComments.astro
new file mode 100644
index 0000000..b83ae98
--- /dev/null
+++ b/sites/poetry/src/components/CoralComments.astro
@@ -0,0 +1,46 @@
+---
+interface Props {
+ storyID: string;
+ storyURL: string;
+}
+
+const { storyID, storyURL } = Astro.props;
+const coralRoot = "https://coral.neeldhara.cloud";
+---
+
+
+
+
diff --git a/sites/poetry/src/components/RybbitAnalytics.astro b/sites/poetry/src/components/RybbitAnalytics.astro
new file mode 100644
index 0000000..8928cac
--- /dev/null
+++ b/sites/poetry/src/components/RybbitAnalytics.astro
@@ -0,0 +1,6 @@
+---
+const rybbitSiteId = "7";
+const rybbitScriptUrl = "https://analytics.neeldhara.cloud/api/script.js";
+---
+
+
diff --git a/sites/poetry/src/layouts/DefaultLayout.astro b/sites/poetry/src/layouts/DefaultLayout.astro
index 137799a..7ce0cfe 100644
--- a/sites/poetry/src/layouts/DefaultLayout.astro
+++ b/sites/poetry/src/layouts/DefaultLayout.astro
@@ -1,5 +1,6 @@
---
import BaseHead from '@/components/BaseHead.astro';
+import RybbitAnalytics from '@/components/RybbitAnalytics.astro';
import Footer from '@/components/sections/footer';
import Navbar from '@/components/sections/navbar';
@@ -7,8 +8,9 @@ const { title, description } = Astro.props;
---
-
-
+
+
+
diff --git a/sites/poetry/src/pages/[...slug].astro b/sites/poetry/src/pages/[...slug].astro
index 5947d59..60add23 100644
--- a/sites/poetry/src/pages/[...slug].astro
+++ b/sites/poetry/src/pages/[...slug].astro
@@ -1,5 +1,6 @@
---
import { getCollection, render } from 'astro:content';
+import CoralComments from '@/components/CoralComments.astro';
import DefaultLayout from '@/layouts/DefaultLayout.astro';
import { BlogPost } from '@/components/sections/blog-post';
import { ACTIVE_BLOG_SITE } from '@/blog-sites.js';
@@ -15,6 +16,9 @@ export async function getStaticPaths() {
const post = Astro.props;
const { Content } = await render(post);
+const postSlug = post.id.replace(/\/index$/, '');
+const coralStoryID = `${ACTIVE_BLOG_SITE.key}:${postSlug}`;
+const coralStoryURL = new URL(`/${postSlug}/`, ACTIVE_BLOG_SITE.url).toString();
---
@@ -23,4 +27,6 @@ const { Content } = await render(post);
+
+
diff --git a/sites/puzzles/src/components/CoralComments.astro b/sites/puzzles/src/components/CoralComments.astro
new file mode 100644
index 0000000..b83ae98
--- /dev/null
+++ b/sites/puzzles/src/components/CoralComments.astro
@@ -0,0 +1,46 @@
+---
+interface Props {
+ storyID: string;
+ storyURL: string;
+}
+
+const { storyID, storyURL } = Astro.props;
+const coralRoot = "https://coral.neeldhara.cloud";
+---
+
+
+
+
diff --git a/sites/puzzles/src/components/RybbitAnalytics.astro b/sites/puzzles/src/components/RybbitAnalytics.astro
new file mode 100644
index 0000000..8928cac
--- /dev/null
+++ b/sites/puzzles/src/components/RybbitAnalytics.astro
@@ -0,0 +1,6 @@
+---
+const rybbitSiteId = "7";
+const rybbitScriptUrl = "https://analytics.neeldhara.cloud/api/script.js";
+---
+
+
diff --git a/sites/puzzles/src/layouts/DefaultLayout.astro b/sites/puzzles/src/layouts/DefaultLayout.astro
index 137799a..7ce0cfe 100644
--- a/sites/puzzles/src/layouts/DefaultLayout.astro
+++ b/sites/puzzles/src/layouts/DefaultLayout.astro
@@ -1,5 +1,6 @@
---
import BaseHead from '@/components/BaseHead.astro';
+import RybbitAnalytics from '@/components/RybbitAnalytics.astro';
import Footer from '@/components/sections/footer';
import Navbar from '@/components/sections/navbar';
@@ -7,8 +8,9 @@ const { title, description } = Astro.props;
---
-
-
+
+
+
diff --git a/sites/puzzles/src/pages/[...slug].astro b/sites/puzzles/src/pages/[...slug].astro
index ea2f2d7..62160d4 100644
--- a/sites/puzzles/src/pages/[...slug].astro
+++ b/sites/puzzles/src/pages/[...slug].astro
@@ -1,5 +1,6 @@
---
import { getCollection, render } from 'astro:content';
+import CoralComments from '@/components/CoralComments.astro';
import DefaultLayout from '@/layouts/DefaultLayout.astro';
import { BlogPost } from '@/components/sections/blog-post';
import NewsletterSignup from '@/components/sections/newsletter-signup';
@@ -16,6 +17,9 @@ export async function getStaticPaths() {
const post = Astro.props;
const { Content } = await render(post);
+const postSlug = post.id.replace(/\/index$/, '');
+const coralStoryID = `${ACTIVE_BLOG_SITE.key}:${postSlug}`;
+const coralStoryURL = new URL(`/${postSlug}/`, ACTIVE_BLOG_SITE.url).toString();
---
@@ -25,5 +29,6 @@ const { Content } = await render(post);
+
diff --git a/sites/reflections/src/components/CoralComments.astro b/sites/reflections/src/components/CoralComments.astro
new file mode 100644
index 0000000..b83ae98
--- /dev/null
+++ b/sites/reflections/src/components/CoralComments.astro
@@ -0,0 +1,46 @@
+---
+interface Props {
+ storyID: string;
+ storyURL: string;
+}
+
+const { storyID, storyURL } = Astro.props;
+const coralRoot = "https://coral.neeldhara.cloud";
+---
+
+
+
+
diff --git a/sites/reflections/src/components/RybbitAnalytics.astro b/sites/reflections/src/components/RybbitAnalytics.astro
new file mode 100644
index 0000000..8928cac
--- /dev/null
+++ b/sites/reflections/src/components/RybbitAnalytics.astro
@@ -0,0 +1,6 @@
+---
+const rybbitSiteId = "7";
+const rybbitScriptUrl = "https://analytics.neeldhara.cloud/api/script.js";
+---
+
+
diff --git a/sites/reflections/src/layouts/DefaultLayout.astro b/sites/reflections/src/layouts/DefaultLayout.astro
index 137799a..7ce0cfe 100644
--- a/sites/reflections/src/layouts/DefaultLayout.astro
+++ b/sites/reflections/src/layouts/DefaultLayout.astro
@@ -1,5 +1,6 @@
---
import BaseHead from '@/components/BaseHead.astro';
+import RybbitAnalytics from '@/components/RybbitAnalytics.astro';
import Footer from '@/components/sections/footer';
import Navbar from '@/components/sections/navbar';
@@ -7,8 +8,9 @@ const { title, description } = Astro.props;
---
-
-
+
+
+
diff --git a/sites/reflections/src/pages/[...slug].astro b/sites/reflections/src/pages/[...slug].astro
index ea2f2d7..62160d4 100644
--- a/sites/reflections/src/pages/[...slug].astro
+++ b/sites/reflections/src/pages/[...slug].astro
@@ -1,5 +1,6 @@
---
import { getCollection, render } from 'astro:content';
+import CoralComments from '@/components/CoralComments.astro';
import DefaultLayout from '@/layouts/DefaultLayout.astro';
import { BlogPost } from '@/components/sections/blog-post';
import NewsletterSignup from '@/components/sections/newsletter-signup';
@@ -16,6 +17,9 @@ export async function getStaticPaths() {
const post = Astro.props;
const { Content } = await render(post);
+const postSlug = post.id.replace(/\/index$/, '');
+const coralStoryID = `${ACTIVE_BLOG_SITE.key}:${postSlug}`;
+const coralStoryURL = new URL(`/${postSlug}/`, ACTIVE_BLOG_SITE.url).toString();
---
@@ -25,5 +29,6 @@ const { Content } = await render(post);
+
diff --git a/sites/research/src/components/CoralComments.astro b/sites/research/src/components/CoralComments.astro
new file mode 100644
index 0000000..b83ae98
--- /dev/null
+++ b/sites/research/src/components/CoralComments.astro
@@ -0,0 +1,46 @@
+---
+interface Props {
+ storyID: string;
+ storyURL: string;
+}
+
+const { storyID, storyURL } = Astro.props;
+const coralRoot = "https://coral.neeldhara.cloud";
+---
+
+
+
+
diff --git a/sites/research/src/components/RybbitAnalytics.astro b/sites/research/src/components/RybbitAnalytics.astro
new file mode 100644
index 0000000..8928cac
--- /dev/null
+++ b/sites/research/src/components/RybbitAnalytics.astro
@@ -0,0 +1,6 @@
+---
+const rybbitSiteId = "7";
+const rybbitScriptUrl = "https://analytics.neeldhara.cloud/api/script.js";
+---
+
+
diff --git a/sites/research/src/layouts/DefaultLayout.astro b/sites/research/src/layouts/DefaultLayout.astro
index 137799a..7ce0cfe 100644
--- a/sites/research/src/layouts/DefaultLayout.astro
+++ b/sites/research/src/layouts/DefaultLayout.astro
@@ -1,5 +1,6 @@
---
import BaseHead from '@/components/BaseHead.astro';
+import RybbitAnalytics from '@/components/RybbitAnalytics.astro';
import Footer from '@/components/sections/footer';
import Navbar from '@/components/sections/navbar';
@@ -7,8 +8,9 @@ const { title, description } = Astro.props;
---
-
-
+
+
+
diff --git a/sites/research/src/pages/[...slug].astro b/sites/research/src/pages/[...slug].astro
index ea2f2d7..62160d4 100644
--- a/sites/research/src/pages/[...slug].astro
+++ b/sites/research/src/pages/[...slug].astro
@@ -1,5 +1,6 @@
---
import { getCollection, render } from 'astro:content';
+import CoralComments from '@/components/CoralComments.astro';
import DefaultLayout from '@/layouts/DefaultLayout.astro';
import { BlogPost } from '@/components/sections/blog-post';
import NewsletterSignup from '@/components/sections/newsletter-signup';
@@ -16,6 +17,9 @@ export async function getStaticPaths() {
const post = Astro.props;
const { Content } = await render(post);
+const postSlug = post.id.replace(/\/index$/, '');
+const coralStoryID = `${ACTIVE_BLOG_SITE.key}:${postSlug}`;
+const coralStoryURL = new URL(`/${postSlug}/`, ACTIVE_BLOG_SITE.url).toString();
---
@@ -25,5 +29,6 @@ const { Content } = await render(post);
+
diff --git a/sites/reviews/src/components/CoralComments.astro b/sites/reviews/src/components/CoralComments.astro
new file mode 100644
index 0000000..b83ae98
--- /dev/null
+++ b/sites/reviews/src/components/CoralComments.astro
@@ -0,0 +1,46 @@
+---
+interface Props {
+ storyID: string;
+ storyURL: string;
+}
+
+const { storyID, storyURL } = Astro.props;
+const coralRoot = "https://coral.neeldhara.cloud";
+---
+
+
+
+
diff --git a/sites/reviews/src/components/RybbitAnalytics.astro b/sites/reviews/src/components/RybbitAnalytics.astro
new file mode 100644
index 0000000..8928cac
--- /dev/null
+++ b/sites/reviews/src/components/RybbitAnalytics.astro
@@ -0,0 +1,6 @@
+---
+const rybbitSiteId = "7";
+const rybbitScriptUrl = "https://analytics.neeldhara.cloud/api/script.js";
+---
+
+
diff --git a/sites/reviews/src/layouts/DefaultLayout.astro b/sites/reviews/src/layouts/DefaultLayout.astro
index 137799a..7ce0cfe 100644
--- a/sites/reviews/src/layouts/DefaultLayout.astro
+++ b/sites/reviews/src/layouts/DefaultLayout.astro
@@ -1,5 +1,6 @@
---
import BaseHead from '@/components/BaseHead.astro';
+import RybbitAnalytics from '@/components/RybbitAnalytics.astro';
import Footer from '@/components/sections/footer';
import Navbar from '@/components/sections/navbar';
@@ -7,8 +8,9 @@ const { title, description } = Astro.props;
---
-
-
+
+
+
diff --git a/sites/reviews/src/pages/[...slug].astro b/sites/reviews/src/pages/[...slug].astro
index ea2f2d7..62160d4 100644
--- a/sites/reviews/src/pages/[...slug].astro
+++ b/sites/reviews/src/pages/[...slug].astro
@@ -1,5 +1,6 @@
---
import { getCollection, render } from 'astro:content';
+import CoralComments from '@/components/CoralComments.astro';
import DefaultLayout from '@/layouts/DefaultLayout.astro';
import { BlogPost } from '@/components/sections/blog-post';
import NewsletterSignup from '@/components/sections/newsletter-signup';
@@ -16,6 +17,9 @@ export async function getStaticPaths() {
const post = Astro.props;
const { Content } = await render(post);
+const postSlug = post.id.replace(/\/index$/, '');
+const coralStoryID = `${ACTIVE_BLOG_SITE.key}:${postSlug}`;
+const coralStoryURL = new URL(`/${postSlug}/`, ACTIVE_BLOG_SITE.url).toString();
---
@@ -25,5 +29,6 @@ const { Content } = await render(post);
+
diff --git a/sites/vibes/src/components/CoralComments.astro b/sites/vibes/src/components/CoralComments.astro
new file mode 100644
index 0000000..b83ae98
--- /dev/null
+++ b/sites/vibes/src/components/CoralComments.astro
@@ -0,0 +1,46 @@
+---
+interface Props {
+ storyID: string;
+ storyURL: string;
+}
+
+const { storyID, storyURL } = Astro.props;
+const coralRoot = "https://coral.neeldhara.cloud";
+---
+
+
+
+
diff --git a/sites/vibes/src/components/RybbitAnalytics.astro b/sites/vibes/src/components/RybbitAnalytics.astro
new file mode 100644
index 0000000..8928cac
--- /dev/null
+++ b/sites/vibes/src/components/RybbitAnalytics.astro
@@ -0,0 +1,6 @@
+---
+const rybbitSiteId = "7";
+const rybbitScriptUrl = "https://analytics.neeldhara.cloud/api/script.js";
+---
+
+
diff --git a/sites/vibes/src/layouts/DefaultLayout.astro b/sites/vibes/src/layouts/DefaultLayout.astro
index 137799a..7ce0cfe 100644
--- a/sites/vibes/src/layouts/DefaultLayout.astro
+++ b/sites/vibes/src/layouts/DefaultLayout.astro
@@ -1,5 +1,6 @@
---
import BaseHead from '@/components/BaseHead.astro';
+import RybbitAnalytics from '@/components/RybbitAnalytics.astro';
import Footer from '@/components/sections/footer';
import Navbar from '@/components/sections/navbar';
@@ -7,8 +8,9 @@ const { title, description } = Astro.props;
---
-
-
+
+
+
diff --git a/sites/vibes/src/pages/[...slug].astro b/sites/vibes/src/pages/[...slug].astro
index ea2f2d7..62160d4 100644
--- a/sites/vibes/src/pages/[...slug].astro
+++ b/sites/vibes/src/pages/[...slug].astro
@@ -1,5 +1,6 @@
---
import { getCollection, render } from 'astro:content';
+import CoralComments from '@/components/CoralComments.astro';
import DefaultLayout from '@/layouts/DefaultLayout.astro';
import { BlogPost } from '@/components/sections/blog-post';
import NewsletterSignup from '@/components/sections/newsletter-signup';
@@ -16,6 +17,9 @@ export async function getStaticPaths() {
const post = Astro.props;
const { Content } = await render(post);
+const postSlug = post.id.replace(/\/index$/, '');
+const coralStoryID = `${ACTIVE_BLOG_SITE.key}:${postSlug}`;
+const coralStoryURL = new URL(`/${postSlug}/`, ACTIVE_BLOG_SITE.url).toString();
---
@@ -25,5 +29,6 @@ const { Content } = await render(post);
+