Blog & Content Management
Create and manage blog posts, market reports, and neighborhood guides for your site
Blog & Content Management
The blog system lets you publish articles, market reports, neighborhood guides, press releases, and just-sold stories directly on your agent site.
Enabling the Blog
Toggle the blog feature in your workspace settings:
- Go to Dashboard → Settings → Features
- Enable Blog
- Click Save
This adds /blog to your site navigation and enables the blog management dashboard.
Feature flag: features.blog
Post Categories
| Category | Slug | Description |
|---|---|---|
| Blog | blog | General articles, updates, and insights |
| Market Report | market-report | Market analysis, trends, and statistics |
| Neighborhood Guide | neighborhood-guide | Area profiles and local insights |
| Press | press | Press releases and announcements |
| Just Sold | just-sold | Sold property success stories |
Creating a Post
- Go to Dashboard → Blog
- Click New Post
- Fill in the post details:
- Title — Headline for the post
- Category — Select from the 5 categories above
- Excerpt — Short summary shown on blog index and cards
- Body — Full article content (rich text)
- Featured Image — Hero image for the post (uses MediaPicker)
- Tags — Optional tags for organization
- Listing IDs — Associate specific listings with the post
- Service Area — Link to a service area for neighborhood guides
- Click Save as Draft or Publish
Post Status Lifecycle
| Status | Description |
|---|---|
draft | Not visible on public site. Editable. |
published | Live on the public site. Has published_at timestamp. |
archived | Hidden from public site. Preserved for reference. |
Slug Auto-Generation
Post slugs are auto-generated from the title. You can customize the slug before publishing. Slugs are checked for uniqueness within the workspace via the /api/dashboard/posts/check-slug endpoint.
AI Blog Post Generation
If AI Content Generation is enabled (features.aiContentGeneration), you can generate blog posts from listing context:
- Open a post in the editor
- Click Generate with AI
- The AI will create content based on:
- The post category
- Associated listings (property details, location)
- Your agent profile and service areas
- Review, edit, and publish
API: POST /api/dashboard/ai/generate-blog-post
Homepage Integration
Latest Posts Section
Display recent blog posts on your homepage:
// workspace.settings.site.latestPosts
{
enabled: true,
sectionTitle: "Latest Insights", // Default heading
sectionSubtitle: "Stay informed...", // Optional subtitle
maxPosts: 3, // 1-6 posts (default: 3)
categories: ["blog", "market-report"], // Optional filter
showViewAllLink: true // Link to /blog
}Configure via Dashboard → Website → Home in the Latest Posts section.
Blog Page Hero
Customize the blog index page hero image and text:
// workspace.settings.site.pages.blog
{
hero: {
imageUrl: "https://...",
headline: "Real Estate Insights",
tagline: "Market trends and local expertise"
},
showArticleSpotlight: true // Show agent spotlight at end of articles
}Public Routes
| Route | Description |
|---|---|
/blog | Blog index page with all published posts |
/blog/[slug] | Individual blog post page |
The blog index displays posts sorted by published_at descending, with category filtering and featured post highlighting.
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/dashboard/posts | GET | List posts (with filtering, pagination) |
/api/dashboard/posts | POST | Create a new post |
/api/dashboard/posts/[id] | GET | Get post details |
/api/dashboard/posts/[id] | PATCH | Update a post |
/api/dashboard/posts/[id] | DELETE | Delete a post |
/api/dashboard/posts/check-slug | GET | Check slug availability |
/api/dashboard/ai/generate-blog-post | POST | AI-generate blog content |
SEO
Each post supports individual meta fields:
meta_title— Custom page title (falls back to post title)meta_description— Custom description (falls back to excerpt)og_image_url— Custom social share image (falls back to featured image)
Related Documentation
- Media Library — Managing images for blog posts
- Homepage — Configuring the Latest Posts section
- Feature Toggles — Enabling the blog feature