feat(landing): show animated live demo stats counters

Add a "Live from the demo instance" section to the landing page that
fetches feeds_created and emails_received from the demo /api/stats and
counts them up on scroll into view. Make /api/stats publicly readable
(CORS *) and refresh the stale allowlist origins to kill-the.news.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Julien Herr
2026-05-23 10:09:13 +02:00
parent d1959acad1
commit fd6a1a945f
3 changed files with 98 additions and 6 deletions
+3 -2
View File
@@ -22,7 +22,7 @@ import { FORWARD_EMAIL_IPS_CACHE_TTL_MS } from "./config/constants";
type AppEnv = { Bindings: Env };
const ALLOWED_ORIGINS = ["https://getmynews.app", "https://www.getmynews.app"];
const ALLOWED_ORIGINS = ["https://kill-the.news", "https://www.kill-the.news"];
// Fallback ForwardEmail.net IP addresses in case API fetch fails
const FALLBACK_FORWARD_EMAIL_IPS = [
@@ -140,7 +140,8 @@ api.use("/inbound", async (c, next) => {
// API routes (inbound webhook)
api.post("/inbound", handleInbound);
// Public monitoring stats (JSON)
// Public monitoring stats (JSON) — readable from any origin (landing page, embeds)
api.use("/stats", cors({ origin: "*" }));
api.get("/stats", handleStats);
// RSS feed routes (public)