feature: Phase 22 SEO metadata component for public site

One presentational SeoHead renders the full OG/Twitter/JSON-LD head surface at prerender via typed schema.org builders. Per-medium release schema, config-sourced canonicals, 404 noindex. Zero CMS change.
This commit is contained in:
daniel-c-harvey
2026-06-23 05:41:55 -04:00
parent e3a4364b8c
commit f3b89ca9d7
18 changed files with 870 additions and 12 deletions
+5
View File
@@ -45,6 +45,11 @@ public static class Startup
services.AddScoped<IAnonIdProvider, AnonIdProvider>();
services.AddScoped<IPlayEventSink, BeaconPlayEventSink>();
services.AddScoped<ShareTracker>();
// Phase 22 SEO defaults — non-secret brand constants (canonical origin, site name, default share
// image, social links). Singleton: stateless config, identical in the server-prerender and WASM
// passes (this method runs in both), which is what makes SeoHead's double-render output identical.
services.AddSingleton(new SeoOptions());
}
public static void ConfigureApiHttpClient(IServiceCollection services, string baseAddress)