···5151| `publishDate` | `string` | Yes | `"publishDate"`, `"pubDate"`, `"date"`, `"createdAt"`, `"created_at"` | Publication date |
5252| `coverImage` | `string` | No | `"ogImage"` | Cover image filename |
5353| `tags` | `string[]` | No | `"tags"` | Post tags/categories |
5454+| `draft` | `boolean` | No | `"draft"` | If `true`, post is skipped during publish |
54555556### Example
5657···6162publishDate: 2024-01-15
6263ogImage: cover.jpg
6364tags: [welcome, intro]
6565+draft: false
6466---
6567```
6668···7274{
7375 "frontmatter": {
7476 "publishDate": "date",
7575- "coverImage": "thumbnail"
7777+ "coverImage": "thumbnail",
7878+ "draft": "private"
7679 }
7780}
7881```
+21
docs/docs/pages/publishing.mdx
···45454646The `maxAgeDays` setting prevents flooding your feed when first setting up Sequoia. For example, if you have 40 existing blog posts, only those published within the last 30 days will be posted to Bluesky.
47474848+## Draft Posts
4949+5050+Posts with `draft: true` in their frontmatter are automatically skipped during publishing. This lets you work on content without accidentally publishing it.
5151+5252+```yaml
5353+---
5454+title: Work in Progress
5555+draft: true
5656+---
5757+```
5858+5959+If your framework uses a different field name (like `private` or `hidden`), configure it in `sequoia.json`:
6060+6161+```json
6262+{
6363+ "frontmatter": {
6464+ "draft": "private"
6565+ }
6666+}
6767+```
6868+4869## Troubleshooting
49705071- If you have files in your markdown directory that should be ignored, use the [`ignore` array in the config](/config#ignoring-files).
···44 publishDate?: string; // Field name for publish date (default: "publishDate", also checks "pubDate", "date", "createdAt", "created_at")
55 coverImage?: string; // Field name for cover image (default: "ogImage")
66 tags?: string; // Field name for tags (default: "tags")
77+ draft?: string; // Field name for draft status (default: "draft")
78}
89910// Strong reference for Bluesky post (com.atproto.repo.strongRef)
···4647 tags?: string[];
4748 ogImage?: string;
4849 atUri?: string;
5050+ draft?: boolean;
4951}
50525153export interface BlogPost {