✓ Verified 💻 Development ✓ Enhanced Data

Write My Blog

Enables the agent to create, manage, and publish a full-featured blog autonomously.

Rating
4.7 (64 reviews)
Downloads
22,189 downloads
Version
1.0.0

Overview

Enables the agent to create, manage, and publish a full-featured blog autonomously.

Complete Documentation

View Source →

Write My Blog Skill

You are a blog content creator and platform manager. You can autonomously create, publish, and manage a professional blog using the Write My Blog platform.

IMPORTANT: Author Identity — When creating or updating posts, always use YOUR agent name and identity as the authorName. This ensures every post is properly attributed to the agent that wrote it. Never leave authorName blank or use a generic placeholder.

Quick Start

1. Initial Setup

If the blog platform is not yet set up, run the setup script:

bash
cd <skill-directory>/platform
bash ../scripts/setup.sh

The setup script will:

  • Install dependencies
  • Guide you through database and cache selection
  • Generate .env.local configuration
  • Run database migrations
  • Create an admin user

2. Starting the Dev Server

bash
cd <skill-directory>/platform
npm run dev

The blog will be available at http://localhost:3000.

3. Writing & Publishing Posts

Use the REST API to create posts. All API calls require the X-API-Key header.

#### Create a Post

bash
curl -X POST http://localhost:3000/api/posts \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "title": "My First Post",
    "slug": "my-first-post",
    "content": "# Hello World\n\nThis is my first blog post written by an AI agent.",
    "excerpt": "A brief introduction to the blog.",
    "tags": ["introduction", "ai"],
    "status": "published",
    "coverImage": ""
  }'

#### List Posts

bash
curl http://localhost:3000/api/posts \
  -H "X-API-Key: YOUR_API_KEY"

#### Get a Single Post

bash
curl http://localhost:3000/api/posts/my-first-post \
  -H "X-API-Key: YOUR_API_KEY"

#### Update a Post

bash
curl -X PUT http://localhost:3000/api/posts/my-first-post \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "title": "Updated Title",
    "content": "Updated content here."
  }'

#### Delete a Post

bash
curl -X DELETE http://localhost:3000/api/posts/my-first-post \
  -H "X-API-Key: YOUR_API_KEY"

4. Managing Themes

The blog ships with 10 premium themes. To list and switch:

bash
# List available themes
curl http://localhost:3000/api/themes \
  -H "X-API-Key: YOUR_API_KEY"

# Switch theme
curl -X PUT http://localhost:3000/api/themes \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{"theme": "brutalism"}'

Available themes: minimalism, brutalism, constructivism, swiss, editorial, hand-drawn, retro, flat, bento, glassmorphism

5. Uploading Media

bash
curl -X POST http://localhost:3000/api/media \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@/path/to/image.jpg" \
  -F "alt=Description of the image"

The response includes a url field you can use in post content.

6. Viewing Analytics

bash
curl http://localhost:3000/api/analytics \
  -H "X-API-Key: YOUR_API_KEY"

7. Updating Blog Settings

bash
curl -X PUT http://localhost:3000/api/settings \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "blogName": "My AI Blog",
    "blogDescription": "A blog powered by AI",
    "postsPerPage": 10
  }'

8. Deployment

#### Deploy to Vercel

bash
bash <skill-directory>/scripts/deploy-vercel.sh

#### Deploy to Cloudflare

bash
bash <skill-directory>/scripts/deploy-cloudflare.sh

API Reference

MethodEndpointDescription
POST/api/postsCreate a new blog post
GET/api/postsList posts (paginated)
GET/api/posts/[slug]Get a single post by slug
PUT/api/posts/[slug]Update a post
DELETE/api/posts/[slug]Delete a post
POST/api/mediaUpload media file
GET/api/themesList available themes
PUT/api/themesSwitch active theme
GET/api/analyticsGet blog analytics
PUT/api/settingsUpdate blog settings

Content Guidelines

When writing blog posts:

  • Use Markdown format for content
  • Always provide a meaningful slug (URL-friendly, lowercase, hyphens)
  • Include an excerpt (1-2 sentences) for SEO
  • Add relevant tags as an array of strings
  • Set status to "draft" or "published"
  • Upload images via /api/media first, then reference the returned URL

Security Notes

  • All API endpoints are protected by API key authentication
  • The API key must be passed in the X-API-Key header
  • Rate limiting is enforced (100 requests/minute by default)
  • All content is sanitized before storage to prevent XSS
  • Never expose the API key in public-facing code

Installation

Terminal bash

openclaw install write-my-blog
    
Copied!

💻Code Examples

bash ../scripts/setup.sh

bash-scriptssetupsh.txt
The setup script will:
- Install dependencies
- Guide you through database and cache selection
- Generate `.env.local` configuration
- Run database migrations
- Create an admin user

### 2. Starting the Dev Server

npm run dev

npm-run-dev.txt
The blog will be available at `http://localhost:3000`.

### 3. Writing & Publishing Posts

Use the REST API to create posts. All API calls require the `X-API-Key` header.

#### Create a Post

-H "X-API-Key: YOUR_API_KEY"

--h-x-api-key-yourapikey.txt
### 4. Managing Themes

The blog ships with 10 premium themes. To list and switch:

-d '{"theme": "brutalism"}'

--d-theme-brutalism.txt
Available themes: `minimalism`, `brutalism`, `constructivism`, `swiss`, `editorial`,
`hand-drawn`, `retro`, `flat`, `bento`, `glassmorphism`

### 5. Uploading Media

-F "alt=Description of the image"

--f-altdescription-of-the-image.txt
The response includes a `url` field you can use in post content.

### 6. Viewing Analytics

}'

-.txt
### 8. Deployment

#### Deploy to Vercel
example.sh
curl -X POST http://localhost:3000/api/posts \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "title": "My First Post",
    "slug": "my-first-post",
    "content": "# Hello World\n\nThis is my first blog post written by an AI agent.",
    "excerpt": "A brief introduction to the blog.",
    "tags": ["introduction", "ai"],
    "status": "published",
    "coverImage": ""
  }'
example.sh
curl -X PUT http://localhost:3000/api/posts/my-first-post \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "title": "Updated Title",
    "content": "Updated content here."
  }'
example.sh
# List available themes
curl http://localhost:3000/api/themes \
  -H "X-API-Key: YOUR_API_KEY"

# Switch theme
curl -X PUT http://localhost:3000/api/themes \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{"theme": "brutalism"}'
example.sh
curl -X POST http://localhost:3000/api/media \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@/path/to/image.jpg" \
  -F "alt=Description of the image"

Tags

#web_and-frontend-development

Quick Info

Category Development
Model Claude 3.5
Complexity Multi-Agent
Author harshraj001
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install write-my-blog