Content Management
Product Factory includes a content management system through the worker-content service. It handles blog posts, promotional banners, and friend links.
Blog Posts
Blog posts are stored in D1 and managed through the admin console. They support:
| Field | Description |
|---|---|
post_id | Unique identifier |
title | Post title |
slug | URL-friendly identifier |
content | Post body (Markdown/HTML) |
excerpt | Short summary |
status | draft or published |
published_at | Publication date |
tags | Array of tag strings |
Blog Display
The web app renders blog posts at /blog and /blog/[slug]. The blog index shows published posts in reverse chronological order. Each post page renders the full content.
Blog content in the web app uses Astro Content Collections with MDX files in apps/web/src/content/blog/. The worker-content service is used for admin-managed dynamic content.
Banners
Banners are promotional elements displayed on the marketing pages:
| Field | Description |
|---|---|
banner_id | Unique identifier |
title | Banner heading |
description | Banner text |
link | Click-through URL |
image_url | Banner image (stored in R2) |
enabled | Whether the banner is displayed |
order | Display order |
Friend Links
Friend links are partner/affiliate links displayed on the site:
| Field | Description |
|---|---|
link_id | Unique identifier |
name | Partner name |
url | Partner URL |
logo_url | Partner logo |
enabled | Whether the link is displayed |
order | Display order |
Admin Management
All content types are managed through the admin console at /admin:
- Posts: Create, edit, publish, and delete blog posts.
- Banners: Upload images, configure display order, enable/disable.
- Friend Links: Add partner links, manage display order.
API Endpoints
See the Content API Reference for the complete endpoint documentation.