Blog System
A complete blog system with rich content editing, categories, tags, and SEO optimization
Overview
What you can do with the blog system
- Create and manage blog posts with a rich block editor
- Organize posts with categories and tags
- Upload images and media to Supabase Storage
- Search and filter posts by category or keyword
- Pin featured posts to the top
- Preview posts before publishing
Block Editor
Rich content editing with customizable blocks
The blog uses a block-based editor that supports multiple content types:
- •Text blocks: Markdown content with headings, lists, links, and code
- •Image blocks: Upload and display images with captions
- •Video blocks: Embed YouTube or Vimeo videos
- •Image carousels: Create galleries with multiple images
# Block structure:
{
type: "text" | "image" | "video" | "carousel",
content: string,
metadata: { ... }
}
Categories & Tags
Organize your content
Categories
Each post can have one category. Categories are used for filtering and navigation.
Tags
Posts can have multiple tags. Use the featured tag to mark posts for the hero section.
Search & Filter
Find posts quickly
The blog includes built-in search and filtering capabilities:
- •Full-text search: Search across titles, excerpts, and content
- •Category filter: Filter posts by category
- •Pagination: Navigate through multiple pages of results
Media Management
Upload and manage images
Images are stored in Supabase Storage in the public-media bucket:
# Upload endpoint:
POST /api/admin/blog/upload
# Storage bucket:
public-media
Featured Posts
Highlight important content
Posts can be featured in multiple ways:
- •Pinned: Pin posts to always appear at the top
- •Featured tag: Use the
featuredtag - •Cover image: Posts with cover images are prioritized for hero display
SEO Optimization
Built-in SEO features
Each post automatically includes:
- •Dynamic meta tags (title, description, OG image)
- •Reading time calculation
- •Social sharing buttons (Twitter, LinkedIn, Email)
- •Table of contents generation from headings