Add admin settings page and SEO config
Created by: jedmund
Summary
- Adds admin settings page with 4 tabs: General, SEO, Integrations, Syndication
- Adds test connection buttons for validating API credentials
- Adds SEO defaults (title, description, OG image) overridable from DB settings
- Wires up SEO metadata in layout server load
Details
Settings page (/admin/settings): Full CRUD for all config keys with organized tabs, help text, and inline test buttons for Bluesky, Mastodon, Last.fm, and Cloudinary connections.
SEO config: Adds seo.* keys to the config system. Layout server load reads SEO defaults from DB/env and passes them to the layout for meta tags.
Depends on: #35 (posse-syndication) for the config system and Setting model.
Test plan
-
Verify settings page loads with all 4 tabs -
Test saving and reading settings values -
Test connection buttons for each integration -
Verify SEO meta tags render from DB settings -
Verify SEO defaults fall back to hardcoded values when no DB settings exist