ReviewOS

also looking at this

stacks/postline

feat: crosspost to LinkedIn and Instagram

#1
Merged chris wants to merge feat/crosspost-linkedin-instagram into main
31 files +2335 -87
9 days ago

Adds LinkedIn and Instagram as crosspost targets alongside Bluesky.

Framework (core @stacksjs/socials)

  • LinkedInPublishingDriver — OAuth 2.0 (w_member_social) + versioned /rest/posts.
  • InstagramPublishingDriver — Facebook Graph OAuth + two-step container/media_publish.
  • PublishPostInput.media for media-only providers.

App

  • LinkedInService / InstagramService — connect via OAuth or an env access token (mirrors Bluesky's connectFromEnv).
  • CrosspostService — one posts row fanned out to each selected provider as an isolated post_target; per-provider failures don't abort the others.
  • Actions + routes: /postline/{linkedin,instagram}/{status,connect,auth,callback}, unified /postline/publish and /postline/providers.
  • Bluesky publishing refactored onto the shared publishToPost(post, content) contract (existing /bluesky/publish behavior preserved).

UI

  • Composer renders provider toggles from /providers, crossposts to all selected accounts, adapts the character limit to the min, and shows an image-URL field for Instagram (which rejects text-only posts).
  • Accounts page gains LinkedIn + Instagram connect cards (OAuth + .env-token).

Config

  • .env.example documents LINKEDIN_* and INSTAGRAM_* keys.

Lint: clean (pickier, 0 errors). Type-check: 0 errors in changed files.

31 changed files on the files tab, with 0 review threads.

Sign in to comment on this pull request.