Overview

BA6 Bluesky Suite

Automation + ops console for Bluesky posting. Schedule posts, manage accounts, track worker health, and audit what happened — without living inside the app 24/7.

BA6 is built like infrastructure: clear rules, observable pipelines, and predictable execution.

Sources → Index → Rules → Feed

Queue → Lock → Post → Audit

Sources → Index → Rules → Feed

Queue → Lock → Post → Audit


What BA6 Includes

Scheduling Engine

A queue‑based scheduler that turns “I’ll post later” into reliable execution.

Core capabilities

  • Schedule posts for exact timestamps
  • Retry + backoff on failures
  • Locking so multiple workers don’t double‑post
  • Clear states: queued → posting → posted / failed / canceled

Why it matters Posting becomes a background process, not a daily manual routine.

Scheduler pipeline: Draft → Scheduled → Claimed → Posted → Audited

Scheduler pipeline: Draft → Scheduled → Claimed → Posted → Audited

Drafts Workspace

A drafts area that separates writing from publishing.

Core capabilities

  • Save drafts before scheduling
  • Lightweight organization for planned content
  • Works even if you haven’t linked a Bluesky account yet (optional wiring)

Account Management

Connect one or more Bluesky identities and manage status.

Core capabilities

  • Add / remove identities
  • Track last auth time
  • Mark an account active/inactive
  • Safer separation between users (multi‑tenant by user_id + RLS)

Note BA6 is designed for teams: accounts and data stay scoped to the signed‑in user.

Direct Messages

Send and receive Bluesky DMs from inside BA6 once your Bluesky session is connected.

Core capabilities

  • Conversation list + message threads
  • New message flow (by @handle, DID, or BA6 username)
  • Delivery status and read tracking

Note Bluesky DMs require an active Bluesky session. If you see a “Connect Bluesky” prompt, finish the account connection first.

BA6 Usernames

Optional app‑local usernames for display and quick mentions inside BA6.

Core capabilities

  • Globally unique and case‑insensitive
  • Maps directly to your DID (auth stays DID‑first)
  • Useful for DM routing and collaboration

Ops Console (Dashboard)

A live view of what the system is doing.

Core capabilities

  • Worker heartbeat monitoring
  • Scheduled post counts by status
  • Event history (audit trail)
  • “What’s broken?” visibility instead of guessing

Audit + Events

A timeline of system actions.

Core capabilities

  • Records what happened, when, and why
  • Useful for debugging failed posts or suspicious behavior
  • Makes the system observable (not a black box)

Multi‑User Workspaces

BA6 is built to support multiple users safely.

How it’s enforced

  • Every table keyed by user_id
  • Row Level Security (RLS) policies enforce separation
  • Service role used only for worker actions (server‑side)

Public Status + Health

BA6 exposes health endpoints for monitoring.

Endpoints

  • /healthz → simple “ok”
  • /__version → commit + timestamp (deployment sanity check)

Modules Overview (no Feeds)

Below is a systems map of BA6 modules and what each one does.

1) Dashboard (Web App)

Purpose: user interface for scheduling, accounts, drafts, and ops visibility.

Key pages: Overview, Scheduled, Drafts, Events, Accounts.

Current focus improvements

  • Mobile layout + safe‑area spacing
  • Better navigation behavior on iOS browser toolbars

2) Worker (Scheduler)

Purpose: background process that claims queued jobs and posts at the right time.

Responsibilities

  • Claim jobs using RPC lock
  • Transition statuses
  • Retry & record errors
  • Write post events for audit trail

3) Database (Supabase)

Purpose: durable storage + security boundary.

Responsibilities

  • User profiles + accounts
  • Drafts + scheduled posts
  • Events + worker heartbeats
  • RLS policies (multi‑user isolation)

4) Auth (Supabase Auth)

Purpose: identity and access control.

Supports

  • Email/password auth
  • Optional wallet‑based sign‑in (Solana/Ethereum) when configured
  • Automatic profile row creation (recommended via trigger)

5) Support Site (Public Docs)

Purpose: public documentation and system info, accessible without login.

Includes

  • Product overview (this page)
  • Guides & runbooks
  • Privacy & security notes
  • Status pages & troubleshooting

Current Updates by Module

Dashboard Updates

  • Improved build stability for monorepo deployments
  • Fixed UI issues causing missing component compile errors
  • Ongoing: mobile navigation improvements (bottom bar conflicts with browser UI)

Worker Updates

  • Added environment‑based config support (service DID, endpoints)
  • Improved publishing checks and clearer errors (ex: invalid service URL)
  • Ongoing: handling “no connected Bluesky account” cases cleanly

Database Updates

  • Multi‑user RLS implemented across core tables
  • Added audit/event logging for traceability
  • Ongoing: schema drift fixes (ex: missing feeds.title in older DBs — handled via safe migrations)

Auth Updates

  • Email sign‑in supported now
  • Wallet auth enabled in Supabase settings (but requires client‑side wallet connector + SIWE/SIWS flows)
  • Ongoing: cleaner mobile UX for wallet prompts and fallback behavior

Infrastructure Updates

  • Feed service identity routes added (/.well-known/did.json, /healthz)
  • Render custom domain wired (feeds.ba6-bsky-suite.com)
  • Added version endpoint for debugging deploys (/__version)

Support Site Updates

  • Nextra docs site deployed publicly at support.ba6-bsky-suite.com
  • Ongoing: better homepage, guides, and an operational “Status” page that checks live endpoints

Quick Start (for new users)

  1. Create an account (email login)
  2. Add a Bluesky account (app password or token)
  3. Write drafts
  4. Schedule posts
  5. Monitor execution in Overview + Events

Quick Version (one page)

  • Schedule posts and let BA6 execute them reliably.
  • Connect Bluesky accounts to control where posts go.
  • Indexing keeps feeds deterministic — only known posts appear.
  • Events tell you what happened when something fails.

If something looks empty, check sources → indexing → rules.

Quick Version (one page)

  • Schedule posts and let BA6 execute them reliably.
  • Connect Bluesky accounts to control where posts go.
  • Indexing keeps feeds deterministic — only known posts appear.
  • Events tell you what happened when something fails.

If something looks empty, check sources → indexing → rules.


Support

Email: archie@ba6-bsky-suite.com

Include:

  • your username/handle
  • approximate time of issue
  • what page you were on
  • any error message shown

Models (Operational Building Blocks)

BA6 ships as a set of operational building blocks (“models”) you can combine.

  • Scheduler Model — time‑based execution with retries
  • Queue Model — claim/lock pattern for safe concurrency
  • Audit Model — events + traceability
  • Workspace Model — multi‑user isolation with RLS
  • Status Model — health + version endpoints for monitoring