Skip to content

Write SEO blog posts for shipped-but-unblogged features #874

Description

@vivek7405

Problem

The blog/ directory has 29 posts but a batch of shipped, SEO-worthy features have no post yet. These are high search-intent topics (Next.js-alternative migration queries, concrete how-tos) that should drive organic traffic to the marketing site.

Design / approach

Write one markdown post per topic in blog/<slug>.md, matching the existing house style (first-person, plain-language hook, jargon explained in parentheses, no em-dashes per AGENTS.md invariant 11, SEO-rich description front matter). Slot dates into the existing timeline (latest existing post is 2026-07-06) and lightly adjust a few existing dates so the cadence reads evenly. All posts land in one PR.

Topics (each backed by a shipped PR):

Implementation notes (for the implementing agent)

  • Where to edit: add blog/<slug>.md files at the repo root. The blog index reads this dir directly (website/modules/blog/queries/list-posts.server.ts, BLOG_DIR = <repo>/blog), sorts by date DESC, and requires title + date front matter; description, tags (comma-separated), author optional.
  • Front matter shape (copy an existing post, e.g. blog/csrf-protection-without-tokens.md): title, date (ISO with +05:30), slug, description (SEO), tags, author: Vivek.
  • Landmines: AGENTS.md invariant 11 bans em-dashes (U+2014), space-surrounded hyphen/semicolon as pause punctuation, and a colon after a code-shaped LHS. The .claude/hooks/block-prose-punctuation.sh hook scans NEW content and will block a commit that violates it. Write clean prose.
  • No src changes, so the doc/scaffold/test commit gates do not apply; content-only.
  • Invariants: keep the first-person voice, explain acronyms in parentheses for beginners, one concept per post.

Acceptance criteria

  • One blog/<slug>.md per topic above, valid front matter, appears in the index sorted by date
  • No em-dashes or banned pause-punctuation (hook passes)
  • Dates form an even cadence with existing posts
  • All posts in a single PR

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions