Blogs
Bellamy Book includes a Blogs feature: long-form content with SEO, tags, comments, and media. Blogs are created and edited in the Admin Panel (Content → Blogs) and displayed on the social frontend (listing and detail pages). AI-generated blogs are saved as drafts and can be published from the same admin flow.
Overview
- Admin: Create, edit, publish, and manage blogs (Tiptap rich editor, SEO fields, tags, featured image, inline images/files). List and filter published blogs.
- Frontend: Blog listing (featured, latest, pagination, filters by tag/search), blog detail by slug (content, comments, related), optional blog download (file request).
- API:
api/Blog(read: list, slug, tags, recommended; write: create, publish, draft, uploads, tags, request-download).api/blog-commentsfor comments. - Search: Blogs are indexed in Elasticsearch; full-text search via
api/Search(typeblog).
Admin Panel
- Content → Blogs (
/content/blogs) — List published blogs; create/edit blog. - Create/Edit (
/content/blogs/create,/content/blogs/edit/:id) — Tiptap editor, SEO (meta title, description, keywords), tags, featured image, inline images and file attachments. Extensions: YouTube, TikTok, iframe, resizable images. Publish or Save as draft. - Data source:
api/Blog(read/write),api/blog-commentsfor comments.
Frontend (Social App)
- Blog listing — Route under social app (e.g.
/blogs): featured hero, latest blogs, filters (search, tags), pagination. - Blog detail — Route by slug (e.g.
/blogs/:slug): full content, author, date, tags, comments, optional download link. - API:
GET api/Blog(page, pageSize, search, tags, sortBy, sortDesc),GET api/Blog/slug/{slug}(increments view count),GET api/Blog/tags,GET api/Blog/recommended.
API Summary
Read (api/Blog)
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/Blog | Paginated list (query: page, pageSize, search, tags, sortBy, sortDesc) |
| GET | /api/Blog/slug/{slug} | Get blog by slug (public) |
| GET | /api/Blog/check-slug | Check slug availability (query: slug, excludeBlogId) |
| GET | /api/Blog/tags | List tags |
| GET | /api/Blog/recommended | Recommended blogs |
Write (api/Blog) — Admin
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/Blog/admin | Admin list (drafts + published) |
| GET | /api/Blog/{id} | Get blog by ID (admin) |
| POST | /api/Blog | Create blog |
| POST | /api/Blog/{id}/publish | Publish draft |
| POST | /api/Blog/{id}/save-draft | Save as draft |
| POST | /api/Blog/upload-featured-image | Upload featured image |
| POST | /api/Blog/upload-image | Upload inline image |
| GET | /api/Blog/images/{mediaFileId} | Get image URL |
| POST | /api/Blog/upload-file | Upload file attachment |
| GET | /api/Blog/files/{mediaFileId} | Get file URL |
| POST | /api/Blog/tags | Create/ensure tags |
| POST | /api/Blog/{id}/request-download | Request download (returns token) |
| GET | /api/Blog/download/{token} | Download file by token |
Blog comments
api/blog-comments— Create, list, update, delete blog comments (see backend controller for exact routes).
SEO and slugs
- Each blog has a slug (URL-friendly, unique). Frontend uses slug for detail URLs.
- SEO fields (meta title, description, keywords) are editable in the admin blog editor and used for public pages.
Related
- Admin Panel — Content → Blogs
- AI Blog Generation — AI-generated drafts
- Search — Blog search via Elasticsearch
Internal links for SEO (money page)
When you publish posts about self-hosted social network topics or build your own platform stories, link readers to the canonical marketing URL: bellamybook.com/landing. That page is the primary conversion target alongside this documentation.