mothermachine

Browse / Content publishing

BrightBean Studio

Free, no-tier social media manager for agencies, with an in-repo MCP app, API, and agent skill.

AdaptableOperable Business appWeb app Hybrid PythonJavaScript MCP server License: AGPL-3.0

BrightBean Studio is a Django social media management platform: multi-workspace teams, composer with per-platform overrides, calendar and queues, approval workflows with a client portal, unified inbox, analytics, and media library across Facebook, Instagram, LinkedIn, TikTok, YouTube, Pinterest, Threads, Bluesky, Google Business Profile, Mastodon, and DEV.to. Every feature is free, hosted or self-hosted. The repo ships apps/mcp and apps/api, and the site says agents draft and schedule posts with a single API key.

Alternative to Buffer, Hootsuite, Later

Use it when
  • I run social for many clients and want approvals and a client portal without paying per workspace
  • I want a free hosted scheduler my agent can post through today, with the option to self-host later
Gotchas
  • AGPL-3.0
  • INTELLIGENCE_INTERNAL_URL and STUDIO_SHARED_SECRET point at a separate intelligence service; check whether self-hosters get sentiment analysis without it
  • Bring your own developer credentials for every platform; Meta and TikTok apps need review
  • 2FA is on the roadmap, not shipped
  • MCP tool list was not read; Reach for approvals, inbox, analytics, and media is unverified

Last activity Aug 13, 2026. Fit: adaptable 2, operable 2.

Editions

Free · Free open source

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only30 things to edit

Copy .env.example: SECRET_KEY, ENCRYPTION_KEY_SALT, ALLOWED_HOSTS, APP_URL, DATABASE_URL, STORAGE_BACKEND with S3_* for object storage, EMAIL_* for mail, then a PLATFORM_* app ID and secret per network you connect. app.json, render.yaml, and railway.toml carry the one-click deploys; Caddyfile fronts Docker. Branding per workspace is set in-app. Approval stages are configured in the UI, not files.

Env vars
SECRET_KEY ENCRYPTION_KEY_SALT DEBUG ALLOWED_HOSTS APP_URL DATABASE_URL STORAGE_BACKEND S3_BUCKET_NAME EMAIL_BACKEND_TYPE EMAIL_HOST DEFAULT_FROM_EMAIL GOOGLE_AUTH_CLIENT_ID PLATFORM_FACEBOOK_APP_ID PLATFORM_INSTAGRAM_APP_ID PLATFORM_THREADS_APP_ID PLATFORM_LINKEDIN_PERSONAL_CLIENT_ID PLATFORM_LINKEDIN_COMPANY_CLIENT_ID PLATFORM_TIKTOK_CLIENT_KEY PLATFORM_GOOGLE_CLIENT_ID PLATFORM_PINTEREST_APP_ID UNSPLASH_ACCESS_KEY INTELLIGENCE_INTERNAL_URL STUDIO_BASE_URL
Config files
.env docker-compose.yml docker-compose.prod.yml app.json render.yaml railway.toml Caddyfile
Prompt files
none
Accounts you need
developer app on each network (Meta, TikTok, Google, LinkedIn, Pinterest)Google (optional SSO)S3-compatible storage (optional)

Source

Operable: what an agent can drive

Interface

OfficialMCP serverpublished by the builderremote or local

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
github.com/brightbeanxyz/brightbean-studio/tree/main/apps/mcp

Reach

Partial coverage. 4 of 10 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Draft and schedule postsReachablebrightbean.xyz/studio: agents draft and schedule posts through installed skills with a single API key
Publish to InstagramReachableInstagram in the supported platforms table; scheduling reaches any connected channel
Publish to TikTokReachableTikTok in the supported platforms table (publish and insights)
Publish to YouTubeReachableYouTube in the supported platforms table
Move posts through approval stagesUndeterminedtriage claimed approve; tools live in apps/mcp/handlers.py, not read
Reply from the unified inboxUndeterminedinbox app exists; MCP coverage not verified
Read analyticsUndeterminedanalytics app exists; MCP coverage not verified
Browse the media libraryUndeterminedmedia_library app exists; MCP coverage not verified
Client approves through a magic-link portalNot reachablepasswordless human flow by design
Plan on the idea Kanban boardUndeterminednot verified

Code stack

Languages
PythonJavaScript
Frameworks
Django 5
Package manager
pip
Database
PostgreSQL (DATABASE_URL)
Hosting target
DockerHeroku one-clickRender one-clickRailway one-clickbrightbean.xyz hosted
Built
Unknown (recorded, never ranked)

Model stack

Providers
BrightBean intelligence service (INTELLIGENCE_INTERNAL_URL)
Models
none
Keys you need
none
Prompts live in
none

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: Django web app, Docker or one-click deploy, free hosted version95%
executionModelscheduler is deterministic; inbox sentiment analysis and apps/intelligence plus INTELLIGENCE_* env vars point at a model service50%
operabilityapps/mcp (protocol.py, transport.py, handlers.py, tools.py) and apps/api in the Builder's repo; site: agents draft and schedule with an API key80%
effort.env.example names 50+ variables; app.json, render.yaml, railway.toml, docker-compose90%
editionsREADME and site: every feature free, hosted or self-hosted, no paid tier90%
activepushedAt 2026-08-13; Show HN 2026-04-13 with 190 points–
provenance2026 launch with .claude directory in repo; no authorship statement40%
reach50%

Open questions

  • Read apps/mcp/handlers.py to enumerate tools and settle the null Reach items; operable fit rises to 3 if approvals, inbox, and analytics are covered
  • Is the intelligence service open, and does self-hosting work without it?
  • Where is the brightbean-studio-agent skill published?

Sources