@strav/herald
Provider-agnostic micro-publishing for Strav apps.
@strav/herald is the publish-side counterpart to @strav/instant (chat) and
@strav/notification (per-user delivery). It lets an app publish a post to one
or more external platforms (Google Business Profile, Facebook Page, Instagram,
WordPress, …) behind a single normalized API, then receive engagement events
(reviews, comments, reactions) back through a typed webhook registry.
Status: alpha — scaffold (skeleton + driver contract). Drivers ship in
follow-up slices: WordPress first, then Meta, then GBP.
Install
bun add @strav/herald
Minimal example
import { HeraldManager } from '@strav/herald'
const herald = app.resolve(HeraldManager)
const result = await herald.publish(
{ provider: 'wordpress', accountId: 'wp-tenant-42' },
{
text: "We just opened our garden patio — come by for the sunset!",
attachments: [{ type: 'image', url: 'https://cdn.example.com/patio.jpg' }],
},
)
console.log(result.providerPostId, result.url)
Drivers (planned subpaths)
@strav/herald/wordpress | planned | WordPress REST |
@strav/herald/meta | planned | Facebook Page + Instagram (Graph API) |
@strav/herald/gbp | planned | Google Business Profile |
@strav/herald/x | future | X (Twitter) |
@strav/herald/tiktok | future | TikTok |
See docs/herald/ for setup, OAuth scopes, and webhook wiring.