Skip to content

POSSE syndication, admin settings, and SEO config

jedmund requested to merge admin-settings into main

Created by: jedmund

Summary

  • Config system: New config.ts with DB-backed settings, env var fallback, and in-memory cache. All services migrated off process.env to use getConfig().
  • POSSE syndication: Bluesky and Mastodon cross-posting on publish, with reply fetching and SocialReplies component on post pages. AT Protocol DID endpoint at /.well-known/atproto-did.
  • Admin settings page: 4-tab UI (General, SEO, Integrations, Syndication) with descriptive help text per field and "Test Connection" buttons for all external services.
  • SEO defaults: Meta tags in metadata.ts are now overridable from DB settings via root layout server load, with hardcoded fallbacks.

Test plan

  • Visit /admin/settings, confirm all 4 tabs render with help text
  • Save settings on each tab, reload, verify persistence
  • Click Test Connection for each service with valid credentials
  • Publish a post and verify syndication triggers to configured platforms
  • Set SEO defaults in settings, confirm homepage <title> and OG tags update
  • With no DB settings, verify hardcoded fallbacks still work

Merge request reports

Loading