Daily digest and message backup system
|
|
2026-02-24 08:24:09 -06:00 |
|
data
|
Daily data backup - 2026-02-21 15:04:16 CST
|
2026-02-21 15:04:16 -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 |
|
src
|
Signed-off-by: OpenClaw Bot <ai-agent@topdoglabs.com>
|
2026-02-24 08:24:09 -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
|
Supabase migration + blog redesign
|
2026-02-21 15:05:13 -06:00 |
|
package.json
|
Add podcast feature with TTS, RSS feed, and web player
|
2026-02-23 20:15:27 -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
- Open
/login
- Sign in with a Supabase Auth email/password user
- You are redirected to
/admin
Digest automation endpoint
POST /api/digest requires x-api-key: <CRON_API_KEY>
- Used for cron-based digest publishing