Audits Appwrite blog posts for SEO, AEO, content structure, links, metadata, and search intent. Use when the user asks for an SEO audit, SEO review, search optimization check, or pre-publishing SEO assessment.
日本語の概要は準備中です。原文の説明を表示しています。
Coordinates the three artifacts that ship a new Appwrite feature announcement: docs updates under src/content/docs/, an announcement blog post under blog/announcing-<slug>/, and a changelog entry under src/content/changelog/entries/. Use when the user asks to announce, launch, or ship a feature, product, SDK, runtime, integration, or plugin.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
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.
A complete Appwrite feature announcement is three coordinated artifacts:
src/content/docs/... — the canonical reference for how the feature works.src/content/blog/posts/announcing-<slug>.markdoc — narrative framing of why it matters and how to use it.src/content/changelog/entries/<YYYY-MM-DD>.markdoc — short summary on the changelog feed linking back to the blog and/or docs.The docs are the source of truth. The blog cites them. The changelog links into one or both. Ship them together.
This skill builds on writing-blogs for voice, tone, SEO, formatting, slug conventions, and cover-image generation. Read that skill before writing the blog and complete both sections of its SEO checklist before publishing. This skill only covers what is specific to announcements.
If unsure, ask the user which subset to produce before writing anything.
The docs live under src/content/docs/. The directory map from writing-blogs applies: products under products/{auth,databases,storage,functions,messaging,sites,ai}/, tooling under tooling/, SDKs under sdks/, and so on.
Find the right page first. New column types belong under products/databases/. New runtimes go under products/functions/develop/. New CLI features sit under tooling/command-line/. Plugins and AI dev tools live under tooling/ai/. Read the existing page, mirror its structure, and extend it — do not replace working content.
Cover at minimum:
{% multicode %} block on that page so coverage stays even.Verify accuracy against the live docs. Read sibling index.markdoc files to confirm exact feature names, method signatures, parameter names, and configuration keys. Do not rely on training data for product details.
Announcement blogs live at src/content/blog/posts/announcing-<slug>.markdoc. Voice, tone, SEO, slug consistency, em-dash rules, and cover-image generation all follow writing-blogs — read it before drafting.
---
layout: post
title: "Announcing <feature>: <one-line value prop>"
description: One sentence, 150-160 chars, on what shipped and why it matters. Include the primary keyword.
date: YYYY-MM-DD
cover: /images/blog/announcing-<slug>/cover.avif
timeToRead: <number>
author: <author-slug>
category: announcement
featured: false
faqs:
- question: "..."
answer: "..."
---
category must be announcement, not product..png at public/images/blog/announcing-<slug>/cover.avif. bun run optimize converts it to .avif at build time, so authored files stay .png and the frontmatter path also stays .png.faqs is optional but recommended. Each FAQ is a question developers actually ask, with an answer that stands alone and links to docs inline where helpful. The FAQs render on the post page and feed structured data for SEO.{% multicode %} block. Mirror the SDK coverage of the docs page you updated.writing-blogs: no filler links to Discord, GitHub, or the homepage unless nothing more specific exists. The closing heading must be specific to the topic.Lift narrative into the blog, not reference material. Exhaustive parameter tables, full SDK setup, complete API surfaces belong in the docs. The blog motivates, frames, and points readers at the docs.
Changelog entries live at src/content/changelog/entries/<YYYY-MM-DD>.markdoc. If a same-day entry already exists, suffix the next file with -2 (for example 2026-05-12-2.markdoc).
---
layout: changelog
title: "Specific headline of what shipped"
date: YYYY-MM-DD
cover: /images/blog/announcing-<slug>/cover.avif
---
title is a sentence-style headline, not a generic noun phrase. Compare "Store 64-bit integers with BigInt columns" against "BigInt columns".cover reuses the announcement blog cover whenever one exists. For docs-only or changelog-only changes, point at /images/changelog/<YYYY-MM-DD>.png or leave the field empty/omitted (both patterns exist in the repo).{% arrow_link %} blocks:{% arrow_link href="/blog/post/announcing-<slug>" %}
Read the announcement
{% /arrow_link %}
When there is no announcement blog, link directly into the docs page that documents the feature:
{% arrow_link href="/docs/<section>/<subsection>" %}
<Specific call to action, e.g. "Configure build settings">
{% /arrow_link %}
Before finalizing:
announcing-<slug> folder.date matches the blog date.Copy this checklist and check items off as you go:
Announcement Progress:
- [ ] Step 1: Confirm with the user which artifacts to produce (docs, blog, changelog, or a subset)
- [ ] Step 2: Read the relevant pages under src/content/docs/ to ground every fact and identify the page to update
- [ ] Step 3: Update or create the docs in src/content/docs/ to document the feature
- [ ] Step 4: Write src/content/blog/posts/announcing-<slug>.markdoc following the announcement structure
- [ ] Step 5: Generate and save the cover image to public/images/blog/announcing-<slug>/cover.avif (see writing-blogs Step 8). `bun run optimize` converts it to .avif at build time.
- [ ] Step 6: Create src/content/changelog/entries/<YYYY-MM-DD>.markdoc with an arrow_link to the blog or docs
- [ ] Step 7: Complete both sections of the writing-blogs SEO checklist
- [ ] Step 8: Run the cross-artifact consistency checks above
Recent announcements that show the target shape:
products/databases/tables, and a matching changelog entry.tooling/ai/ai-dev-tools/codex, and a short paired changelog entry.category: product on an announcement. Announcements use category: announcement.{% multicode %} block on the docs page — readers comparing options will miss it.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Audits Appwrite blog posts for SEO, AEO, content structure, links, metadata, and search intent. Use when the user asks for an SEO audit, SEO review, search optimization check, or pre-publishing SEO assessment.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
Writes, structures, and formats SEO-optimized blog posts for the Appwrite blog following established conventions for voice, tone, frontmatter, and post structure. Use when the user asks to write, draft, create, or outline a blog post, or when working with files in src/content/blog/posts/.
日本語の概要は準備中です。原文の説明を表示しています。