# BrightBean Studio

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

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

- Capabilities: adaptable, operable
- Vertical: content-publishing
- Shape: business-app
- Form factor: web-app
- Execution model: hybrid
- Provenance: unknown (recorded, never ranked)
- Repo: https://github.com/brightbeanxyz/brightbean-studio (AGPL-3.0), 2253 stars, last commit 2026-08-13
- Last activity: 2026-08-13
- Page: apps/brightbeanxyz--brightbean-studio.html
- JSON: apps/brightbeanxyz--brightbean-studio.json

## 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

## Editions

- Free: Free, open source
  - hosted: https://brightbean.xyz/studio/
  - source: https://github.com/brightbeanxyz/brightbean-studio
  - container: https://github.com/brightbeanxyz/brightbean-studio/blob/main/docker-compose.yml
  - one-click: https://github.com/brightbeanxyz/brightbean-studio#readme

## Adaptable: make it yours

Effort: config-only (30 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'll need: developer app on each network (Meta, TikTok, Google, LinkedIn, Pinterest); Google (optional SSO); S3-compatible storage (optional)

## Operable: what an agent can drive

Operability: official. Interface: mcp at https://github.com/brightbeanxyz/brightbean-studio/tree/main/apps/mcp (published by the builder, both).

### Reach (partial coverage)

- Draft and schedule posts: reachable. brightbean.xyz/studio: agents draft and schedule posts through installed skills with a single API key
- Publish to Instagram: reachable. Instagram in the supported platforms table; scheduling reaches any connected channel
- Publish to TikTok: reachable. TikTok in the supported platforms table (publish and insights)
- Publish to YouTube: reachable. YouTube in the supported platforms table
- Move posts through approval stages: undetermined. triage claimed approve; tools live in apps/mcp/handlers.py, not read
- Reply from the unified inbox: undetermined. inbox app exists; MCP coverage not verified
- Read analytics: undetermined. analytics app exists; MCP coverage not verified
- Browse the media library: undetermined. media_library app exists; MCP coverage not verified
- Client approves through a magic-link portal: not reachable. passwordless human flow by design
- Plan on the idea Kanban board: undetermined. not verified

## Code stack

- Languages: Python, JavaScript
- Frameworks: Django 5
- Package manager: pip
- Database: PostgreSQL (DATABASE_URL)
- Hosting target: Docker, Heroku one-click, Render one-click, Railway one-click, brightbean.xyz hosted

## Model stack

- Providers: BrightBean intelligence service (INTELLIGENCE_INTERNAL_URL)
- Models: none
- Keys you need (names only): none
- Prompts live in: none
- Tools: none

## Evidence and confidence

- formFactor: README: Django web app, Docker or one-click deploy, free hosted version (confidence 0.95)
- executionModel: scheduler is deterministic; inbox sentiment analysis and apps/intelligence plus INTELLIGENCE_* env vars point at a model service (confidence 0.5)
- operability: apps/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 key (confidence 0.8)
- effort: .env.example names 50+ variables; app.json, render.yaml, railway.toml, docker-compose (confidence 0.9)
- editions: README and site: every feature free, hosted or self-hosted, no paid tier (confidence 0.9)
- active: pushedAt 2026-08-13; Show HN 2026-04-13 with 190 points
- provenance: 2026 launch with .claude directory in repo; no authorship statement (confidence 0.4)
- reach:  (confidence 0.5)

## 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

- https://github.com/brightbeanxyz/brightbean-studio (sourcing:content-publishing:community)
- https://brightbean.xyz/studio/ (analysis:content-publishing)
- https://news.ycombinator.com/item?id=47749674 (sourcing:content-publishing:community)
