logicsrc/apps/logicsrc-web/package.json
Anthony Ettinger cf99e93c53 feat(web): blog-post ingestion webhook + /blog, dynamic RSS & sitemap
Add an autoblog webhook receiver and a Supabase-backed blog to logicsrc-web
(the app had no Supabase usage before).

- Migration: blog_posts table (RLS: public reads published, service-role
  writes). Applied to the linked project.
- POST /api/webhooks/blog: verifies the Standard Webhooks signature against
  BLOG_WEBHOOK_SECRET via @profullstack/autoblog verifyAndParse (no admin
  user — shared secret only) and upserts the post by slug.
- /blog index + /blog/[slug] render published posts from the table.
- /blog/rss.xml and /sitemap.xml are now dynamic, generated from the table;
  removed the static public/sitemap.xml and public/blog/rss.xml.
- BLOG_WEBHOOK_SECRET added to .env.example.

Verified end-to-end: a signed sample post delivered 200 and appeared in the
index, post page, RSS, and sitemap; build + typecheck pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 11:53:43 +00:00

29 lines
784 B
JSON

{
"name": "@logicsrc/web",
"version": "0.1.0",
"private": true,
"description": "LogicSRC standards and open specification PWA (Next.js).",
"scripts": {
"dev": "next dev -p 5174",
"build": "next build",
"start": "next start",
"test": "vitest run contract",
"test:contract": "vitest run contract",
"test:e2e": "playwright test"
},
"dependencies": {
"@profullstack/autoblog": "github:profullstack/autoblog#75e54af",
"@supabase/supabase-js": "^2.105.4",
"next": "16.2.6",
"react": "19.2.0",
"react-dom": "19.2.0"
},
"devDependencies": {
"@playwright/test": "^1.57.0",
"@types/node": "^24.10.1",
"@types/react": "^19.2.0",
"@types/react-dom": "^19.2.0",
"typescript": "^5.9.3",
"vitest": "^4.0.8"
}
}