sync your bluesky follows to semble.so! bsky-follow-semble.vercel.app
follow graph atproto social semble bluesky
README.md

Semble Follow Sync #

Semble Follow Sync is a Next.js web application designed to synthesise and synchronise your social graph between Bluesky and the Semble knowledge network.

Core Features #

  • Secure ATProto OAuth Integration: Authenticate directly and securely with your Bluesky account using standard decentralised identity protocols.
  • Social Graph Scanning: Automatically discover which of the accounts you follow on Bluesky are active creators on the Semble network.
  • Batch Following: Review discovered Semble creators in a clean checklist and follow multiple selected accounts in a single batch operation.
  • Tabular Layout Stability: Designed with monospaced tabular numerals and rigid grid boundaries to ensure layout proportions remain completely stable as scanning numbers increment.
  • Tactile Micro-interactions: Built with smooth, responsive button transitions, staggering card reveals, and dynamic auto-scrolling lists for visual feedback.

Technology Stack #

  • Framework: Next.js 16 (App Router)
  • Styles: Tailwind CSS
  • Components: Radix UI / shadcn/ui
  • Authentication: ATProto OAuth Client (@atproto/oauth-client-node)
  • API Interaction: ATProto API (@atproto/api)

Getting Started #

Prerequisites #

  • Node.js 18 or higher
  • A Bluesky account (e.g. username.bsky.social)

Installation #

  1. Clone the repository and install the dependencies:

    npm install
    
  2. Run the development server locally:

    npm run dev
    
  3. Open http://127.0.0.1:3000 in your browser.

Deployment #

This application is designed to be easily deployed to Vercel.

Environment Variables #

For production deployments, ensure the following environment variables are configured:

  • NEXT_PUBLIC_URL: The canonical URL of your deployed application (e.g. https://bsky-follow-semble.vercel.app).
  • OAUTH_PRIVATE_KEY: A secure ES256 private key in JWK format. You can generate a compatible keypair by running node scripts/generate-key.js in your terminal.