# Blog Review

Reviews blog posts against voice, structure, SEO and accuracy standards.

- Repository: https://github.com/appwrite/appwrite (57838 stars)
- Category: Writing
- License: BSD-3-Clause
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add appwrite/appwrite --skill reviewing-blogs -g -a claude-code -y`
Codex: `npx skills add appwrite/appwrite --skill reviewing-blogs -g -a codex -y`
Cursor: `npx skills add appwrite/appwrite --skill reviewing-blogs -g -a cursor -y`
Gemini CLI: `npx skills add appwrite/appwrite --skill reviewing-blogs -g -a gemini-cli -y`

## Description

Reviews and critiques blog posts in src/content/blog/posts/ against Appwrite's established standards for voice, tone, structure, SEO, formatting, and accuracy. Use when the user asks to review, audit, critique, or improve an existing blog post.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

## Repository layout (apps/console)

This skill targets the Console app at `apps/console` in `appwrite/appwrite`; paths are relative to it. Path mapping from the upstream `appwrite/website` skills:

| Artifact | Path |
| --- | --- |
| Blog post | `src/content/blog/posts/<slug>.markdoc` |
| Docs page | `src/content/docs/{path}/index.markdoc` |
| Changelog entry | `src/content/changelog/entries/<YYYY-MM-DD>.markdoc` |
| Cover image | `public/images/blog/<slug>/cover.avif` (min 1200px wide; run `bun run generate:cover-manifest` after adding) |

Also apply the `unslop` skill to all user-facing prose.



# Blog Review

## How to run a review

When asked to review a blog post, read the file at `src/content/blog/posts/<slug>.markdoc`, then evaluate it against every section below. Produce a structured report using the format at the end of this document.

**Before starting:** Identify which sections of `src/content/docs/` are relevant to the post's topic, then read those `index.markdoc` files directly to use as the ground truth for the accuracy review. The docs map to public URLs as `src/content/docs/{section}/{subsection}/index.markdoc` → `https://appwrite.io/docs/{section}/{subsection}`. Key sections: `products/{auth,databases,storage,functions,messaging,sites,ai}/`, `quick-starts/`, `tutorials/`, `advanced/{platform,security,self-hosting}/`, `apis/`, `tooling/`.

## Review checklist

### Frontmatter

- [ ] `layout: post` is present
- [ ] `title` is a quoted string, 50-60 characters, front-loads the primary keyword
- [ ] `description` is 150-160 characters, includes the primary keyword, states what the reader will learn
- [ ] `date` is in `YYYY-MM-DD` format
- [ ] `cover` path matches the slug: `/images/blog/<slug>/cover.avif`
- [ ] `timeToRead` is plausible given word count (roughly 200-250 wpm)
- [ ] `author` is set
- [ ] `category` is set
- [ ] `featured` and `unlisted` are present

### Slug consistency

The rest: https://github.com/appwrite/appwrite/blob/HEAD/apps/console/.cursor/skills/reviewing-blogs/SKILL.md
