ReviewLinkConnect Buffer

For social media managers and small agencies

Client approval, without a Buffer login.

Send your client one private link. They review next week’s posts on their phone, approve or ask for changes, and every decision lands on the post in Buffer.

Your client never creates an account. ReviewLink can’t edit your posts.

How it works

Three steps. About two minutes.

  1. 1Connect Buffer

    Sign in with your Buffer account. ReviewLink only reads your scheduled posts.

  2. 2Pick posts and share a link

    Choose the week’s posts and share one private link however you talk to your client.

  3. 3Your client approves

    They approve or ask for changes on their phone. Each decision shows up as a note on the post in Buffer.

Get next week approved today.

Works with your existing Buffer account. Set up in about a minute.

Connect Buffer
Under the hood · for developers & judgesBuffer GraphQL API, OAuth + PKCE, Notes write-back, Next.js, Upstash Redis
  1. 1ManagerConnect Buffer
  2. 2Buffer OAuthCode + PKCE
  3. 3ReviewLinkSnapshot queue
  4. 4Client link/r/<128-bit>
  5. 5DecisionsApprove · Changes
  6. 6Buffer NotesOn each post

Buffer GraphQL API

  • OAuth 2.0 Authorization Code + PKCE (S256), confidential client; secret stays server-side.
  • Scopes: account:read posts:read notes:read notes:write offline_access — no posts:write, we never touch your posts.
  • account → channels → posts queries, filtered by dueAt to the week you pick.
  • createCollaborationNote with subject: { postId } for each decision.
  • collaborationNotes read-back powers the status view and safe retries.

Next.js on Vercel

  • Next.js App Router, TypeScript, Tailwind CSS.
  • Serverless route handlers for OAuth, review links, and decisions — the Buffer token never reaches a browser.
  • Edge middleware guards the dashboard.
  • Mobile-first review page (390px), viewer’s local time with zone label.

Upstash Redis

  • OAuth tokens encrypted at rest with AES-256-GCM.
  • Review links: 128-bit random tokens, stored only as SHA-256 hashes, 30-day expiry.
  • Single-flight lock for rotating refresh tokens; per-review lock so notes are written once.
  • Per-link rate limiting on public submissions.
View the source on GitHub

Your client never logs in. Buffer tokens are encrypted and never reach the browser. ReviewLink is read-only on your posts. Privacy