Release Notes
Changelog and release notes for Bellamy Book.
The canonical Release Notes page is also published at /release-notes.
Docs / ops note (2026-09-14) — R2 private media + Dev vs Prod env
What changed (docs + backend behavior)
- Post/story processed objects use the
privatestorage bucket; feed/story APIs return presigned URLs (R2 regionauto, AWS SDK SigV4 — MinIO SDK presign is AccessDenied on R2). - Operator docs updated: Storage, R2 Setup (Dev vs Prod env table), Environment, Media.
- Canonical Cloudflare Worker:
CICD/cloudflare/r2-router.worker.js(bindPRIVATE_BUCKET).
Env: development vs production
| Development | Production (R2) | |
|---|---|---|
| Provider | Storage__Provider=MinIO | Storage__Provider=R2 |
| Extra env | Minio__* + Minio__PublicUrl | R2__AccountId, R2__AccessKey, R2__SecretKey, R2__PublicUrl |
| SPA build | VITE_STORAGE_PUBLIC_URL → MinIO public URL | VITE_STORAGE_PUBLIC_URL → R2__PublicUrl |
| New flag? | — | None — private bucket + presign are built-in |
Ops (R2 only): create bucket private, optionally update Worker. Deploy API for gray post/story fix.
Mobile
- Same server storage env as the website (
R2__PublicUrl/Minio__PublicUrl) — exposed viaGET /api/mobile/bootstrap. - Optional:
Mobile__MinAppVersion, hub URL overrides. - Connect URL = API URL
API_PUBLIC_URL(HTTPS) — not a frontend-onlyFRONTEND_PUBLIC_URLwhen the API is on another host. LAN debug: phone uses LAN IP + published ports, not127.0.0.1.
See Mobile.
Release 2.1 (2026-09-07) — Saved posts
Bookmark posts for later
Members can save posts from the feed and reopen them on a private Saved page.
Application (frontend)
- Bookmark control on post cards (feed, profile, hashtag, post detail)
- Saved posts in the profile menu →
/profile/saved(newest first, paginated) - Toast feedback on save / unsave failures
Backend
POST /api/Post/{postId}/save·DELETE /api/Post/{postId}/save·GET /api/Post/savedisSavedon feed, user posts, hashtag posts, and single-post responses- PostgreSQL
SavedPoststable (unique per user + post); cascade on user/post delete - Saved list respects visibility (own posts, or public and not hidden)
Documentation
Upgrade notes
- Pull latest images / run db-migration so
SavedPostsis created - If the publisher provides a hotfix instead: apply
tools/hotfix/2026-09-07-saved-posts.sqlagainst primary Postgres (idempotent)
Release 2 (2026-09-06) — Content safety & moderation
🛡️ Major release: protect communities from harmful content
This is a major product release focused on community safety. Bellamy Book now screens posts and stories with native GPT moderation before they appear in feeds, so members are protected from inappropriate, abusive, or otherwise harmful content — while operators get a clear admin review queue and authors get clear UI feedback.
Why this matters
- User protection first — new posts/stories stay hidden until moderation finishes; high-severity content never goes live
- Clear member UX — creators see when content is being moderated and are notified when it is approved or rejected
- Operator control — Admin Content Alerts for review, hide, unhide, delete, or dismiss
- Self-host friendly — runs inside your stack (API + ContentModerationWorker + OpenAI); no external ContentDetect service
Application (frontend)
- Post create flow surfaces moderating status — “Content is being moderated — you will be notified when it goes live”
- Rejected or approved outcomes notify the author so they know why content did or did not appear
- Feeds stay clean: pending/rejected content is not shown to other members
- Manual report / block flows remain available via moderation APIs
Admin panel
- Content → Content Alerts — queue and detail view with severity filters (high / medium / low)
- Review actions: dismiss, hide, unhide, or delete the underlying post or story
- Optional email alerts to admins when GPT flags content
Backend & workers
- ContentModerationWorker (RabbitMQ) — GPT text + image vision scoring for posts and stories
- Pipeline: create → Pending + hidden → worker → high = Rejected; else Approved + unhide + PostReady / friend notifications
- Config:
ContentModeration__Enabled, OpenAI key/model,NotifyAdminsByEmail(see self-host guide)
Documentation
- Updated Content moderation guide
- Updated Self-host content moderation config
- Features overview and Admin Panel docs reflect Content Alerts
Upgrade notes
- Pull latest images / compose; ensure
content-moderation-workeris running - Set
ContentModeration__Enabled=trueand an OpenAI API key on both API and ContentModerationWorker - Confirm SMTP if you want admin email alerts; set
Frontend__AdminBaseUrlfor alert deep links
Release 1 (2025-02-23)
🎉 First official release
First stable release of Bellamy Book. This release reflects the current project stage: main web app, admin panel, backend API and workers, and the documentation site.
Application (frontend)
- Auth — Registration, login, refresh token, forgot password, email verification, 2FA
- Feed & posts — Create and manage posts (text, images, video), feed, post details, albums
- Comments & reactions — Nested comments, multiple reaction types (Like, Love, Haha, Wow, Sad, Angry)
- Messaging — Real-time chat via SignalR, group conversations, typing indicators, read receipts
- Voice & video calls — LiveKit-based direct and group calls; incoming call notifications (in-app and push)
- Stories — Photo and video stories with viewer tracking
- Notifications — Real-time via SignalR; Web Push (browser) and Expo Push (mobile) for background chat and call alerts
- Relationships — Friend requests, follow/unfollow, mutual friends, block/unblock, profile connections
- Profiles & settings — Profile feed, about, media, videos, activity; account, notification, privacy, messaging settings; support tickets (create and view)
- Blogs & hashtags — Blog listing and detail pages; hashtag pages and discovery
- Search — Full-text search (Elasticsearch) across users, posts, blogs, hashtags
Admin panel
- Dashboard, user management, content (blogs), announcements, email campaigns (license-gated)
- Support tickets (when enabled), backup (config, restore, scheduled), license and app settings
- AI Blog Generation (license-gated): AI Agent settings, scheduling, manual trigger
Backend
- API — .NET REST API: auth, users, posts, comments, reactions, messaging, calls, notifications, search, tickets, blogs, and more
- Real-time — SignalR hubs for notifications, presence, and chat (ChatWorker)
- Workers — Kafka/RabbitMQ workers: ChatWorker, WebPushNotificationWorker, ExpoPushNotificationWorker, BlogAutoGenerationWorker, MediaProcessingWorker, GraphWorker, ScoringWorker, HashtagWorker, InteractionWorker, TrendingWorker, ElasticsearchSyncWorker, WebSocketWorker
- Data — PostgreSQL, MongoDB, Redis, Neo4j, Elasticsearch, MinIO
Documentation (docs-app)
- Getting started (installation, configuration, quick start, production deployment)
- API docs for auth, users, posts, comments, reactions, and references for messaging, stories, notifications, media, search, blogs
- Architecture (overview, system deep dive, microservices, data flow, components, infrastructure)
- Features overview and per-feature docs; guides (user management, moderation, notifications, analytics)
- Tutorials (basic and advanced); self-hosting (Docker, manual; configuration; maintenance)
- Troubleshooting and screenshots
Improvements
- Initial implementation of core social features
- Docker-based deployment support
- Comprehensive documentation site
Bug fixes
- N/A (initial release)
Upcoming releases
Planned for future releases:
- Video-frame moderation (v1 skips video frames; caption + images only)
- Video posts enhancements and group creation/management
- Events feature and advanced search improvements
- Continued mobile app feature parity with the web social app
Version history
| Release | Date | Status |
|---|---|---|
| Release 2 — Content safety | 2026-09-06 | Released |
| Release 1 | 2025-02-23 | Released |
| Next release | TBD | Planned |
Breaking changes
None required for existing installs. Content moderation is opt-in via ContentModeration__Enabled. When enabled, new posts/stories are held until the worker finishes.
Migration guides
Upgrade compose/images, enable ContentModeration env vars, and verify the worker health. See Content moderation (self-host) and Updates.
Deprecations
None at this time. There is no external ContentDetect / Ollama moderation service — use the native GPT worker only.
For release artifacts and source code, see your project repository.