Daily digest and message backup system
Go to file
2026-02-24 16:33:29 -06:00
data Daily data backup - 2026-02-21 15:04:16 CST 2026-02-21 15:04:16 -06:00
docs Signed-off-by: OpenClaw Bot <ai-agent@topdoglabs.com> 2026-02-24 16:33:29 -06:00
memory Signed-off-by: OpenClaw Bot <ai-agent@topdoglabs.com> 2026-02-23 22:10:49 -06:00
public Initial commit from Create Next App 2026-02-18 07:18:00 -06:00
scripts Signed-off-by: OpenClaw Bot <ai-agent@topdoglabs.com> 2026-02-24 16:33:29 -06:00
src Signed-off-by: OpenClaw Bot <ai-agent@topdoglabs.com> 2026-02-24 16:33:29 -06:00
supabase Signed-off-by: OpenClaw Bot <ai-agent@topdoglabs.com> 2026-02-24 08:24:09 -06:00
.gitignore Initial commit from Create Next App 2026-02-18 07:18:00 -06:00
docker-compose.yml Signed-off-by: OpenClaw Bot <ai-agent@topdoglabs.com> 2026-02-24 08:24:09 -06:00
Dockerfile Signed-off-by: OpenClaw Bot <ai-agent@topdoglabs.com> 2026-02-23 22:10:49 -06:00
eslint.config.mjs Initial commit from Create Next App 2026-02-18 07:18:00 -06:00
next.config.ts Add working blog backup functionality 2026-02-18 09:32:47 -06:00
package-lock.json Signed-off-by: OpenClaw Bot <ai-agent@topdoglabs.com> 2026-02-24 16:33:29 -06:00
package.json Signed-off-by: OpenClaw Bot <ai-agent@topdoglabs.com> 2026-02-24 16:33:29 -06:00
PODCAST_ARCHITECTURE.md Add podcast feature with TTS, RSS feed, and web player 2026-02-23 20:15:27 -06:00
PODCAST_SETUP.md Add podcast feature with TTS, RSS feed, and web player 2026-02-23 20:15:27 -06:00
PODCAST_SUMMARY.md Add podcast feature with TTS, RSS feed, and web player 2026-02-23 20:15:27 -06:00
postcss.config.mjs Initial commit from Create Next App 2026-02-18 07:18:00 -06:00
README.md Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-02-22 10:47:53 -06:00
tsconfig.json Add podcast feature with TTS, RSS feed, and web player 2026-02-23 20:15:27 -06:00

Daily Digest Blog

Next.js App Router blog with Supabase-backed posts and an authenticated admin panel.

Run locally

npm install
npm run dev

Dev server runs on http://localhost:3002.

Environment variables

Set these in .env.local:

  • NEXT_PUBLIC_SUPABASE_URL
  • NEXT_PUBLIC_SUPABASE_ANON_KEY
  • SUPABASE_SERVICE_ROLE_KEY (used by external scripts/tools if needed)
  • CRON_API_KEY

Public vs admin access

  • Public blog (/) is open to everyone.
  • Reading messages (GET /api/messages) is public.
  • Admin UI (/admin) requires a signed-in Supabase user.
  • If not signed in, /admin redirects to /login.
  • Write APIs (POST/DELETE /api/messages) require either:
    • a valid Supabase user bearer token, or
    • x-api-key: <CRON_API_KEY> (for automation/cron).

Login flow

  1. Open /login
  2. Sign in with a Supabase Auth email/password user
  3. You are redirected to /admin

Digest automation endpoint

  • POST /api/digest requires x-api-key: <CRON_API_KEY>
  • Used for cron-based digest publishing