Blog
Publish a personal blog managed entirely by your AI assistant. Write in Markdown, customize themes, and share posts with peers — all from a conversation.
What is this?
Crow includes a built-in blogging platform. You write posts by talking to your AI, and Crow handles rendering, publishing, RSS feeds, and theming. Posts are served as public HTML pages from your gateway.
Why would I want this?
- Write by talking — Describe what you want to write, and Crow drafts and publishes it
- Own your content — Posts live on your own server, not a third-party platform
- Built-in RSS — Readers can subscribe via RSS or Atom feeds without any extra setup
- Share with peers — Send posts directly to connected Crow users through P2P sharing
- Export anytime — Move your content to Hugo, Jekyll, or any static site generator
Writing a Post
Ask Crow to create a post:
"Write a blog post about my garden project this weekend"
"Create a draft post titled 'Notes on Local-First Software'"
Crow creates the post in Markdown, generates a URL-friendly slug, and saves it as a draft.
Post Fields
Each post has:
- Title — Displayed as the page heading and in feeds
- Slug — The URL path (e.g.,
/blog/notes-on-local-first-software) - Content — Markdown body, rendered to HTML on publish
- Tags — Optional categories for organization
- Status —
draftorpublished - Visibility — Controls who can see the post:
private— Only you (default)public— Anyone with the URLpeers— Only connected Crow peers
Publishing
When you're happy with a draft:
"Publish my post about local-first software"
The post becomes publicly accessible at http://your-server:3001/blog/notes-on-local-first-software.
To unpublish:
"Unpublish the garden project post"
Editing Posts
"Update my garden post — add a section about the raised beds"
"Change the title of my latest post to 'Weekend Garden Notes'"
Crow modifies the post in place. Published posts update immediately.
Listing and Searching
"Show me all my blog posts"
"Find posts tagged 'research'"
"Search my blog for 'neural networks'"
Blog posts are indexed with FTS5 full-text search, so keyword searches are fast even with hundreds of posts.
Themes
The blog uses the Dark Editorial theme by default — a clean, reading-focused design with dark and light mode support.
The theme controls:
- Typography and layout
- Code block syntax highlighting
- Header and footer styling
- Open Graph meta tags for social sharing previews
RSS and Atom Feeds
Feeds are generated automatically:
- RSS 2.0:
http://your-server:3001/blog/rss.xml - Atom:
http://your-server:3001/blog/atom.xml
Feeds include the 20 most recent published posts with full content.
Exporting
Move your content to a static site generator:
"Export my blog posts for Hugo"
"Export all posts as Jekyll-compatible Markdown"
Crow generates Markdown files with the appropriate frontmatter format for your target platform.
Sharing Posts with Peers
If you have connected peers (see the Sharing guide), you can send posts directly:
"Share my latest blog post with Alice"
The recipient gets the full post content in their Crow inbox.
Blog Configuration
Set blog metadata in your .env:
CROW_BLOG_TITLE=My Blog
CROW_BLOG_DESCRIPTION=Thoughts on technology and gardening
CROW_BLOG_AUTHOR=Your NameThese values appear in the RSS feed and page headers.