Invitation

Blog Article Fields Reference

Complete list of all fields found in the blog database and how they're handled in the Markdown conversion.

I
Invitation Team
Blog Article Fields Reference

Blog Article Fields Reference

Complete list of all fields found in the blog database and how they're handled in the Markdown conversion.

All 28 Fields (Complete)

Core Metadata

FieldTypeCountDescriptionExample
_idString184MongoDB ObjectID"656128e9c88eac01c2b1e93f"
titleString184Article title"The annual Holiday Sales is ON!"
subtitleString184Article subtitle/excerpt"This is your sign to upgrade!"
slugString184URL slug"black-friday"
urlString184Full URL path"/product/black-friday"

Publishing Status

FieldTypeCountDescriptionExample
publishedBoolean184Published or drafttrue
featuredBoolean~50Featured article flagtrue
isPageBoolean~10Is a page (not blog post)true
hiddenFromListsBoolean~20Hide from article listsfalse
hideCommentsBoolean~15Disable commentstrue

Content

FieldTypeCountDescriptionExample
descHtmlString (HTML)184Main article content (HTML)"<p>Content here...</p>"
descString1Short description/iframe embed"<iframe src=...>"
customHtmlCodeString (HTML)~30Custom HTML blocks"<iframe...>"

Categorization

FieldTypeCountDescriptionExample
categoryString184Article category"product"
categoryLabelString184Category display label"product"
tagsArray43System/admin tags["referral programs collections"]
userTagsArray~140User-submitted tags["deals", "save", "tips"]

Note: tags and userTags are separate fields:

  • tags - System-level tags (set by admins)
  • userTags - User/content tags (shows in frontend)

Author Information

FieldTypeCountDescriptionExample
userString184Author user shortid"Owc4NhV2y"
authorShortidString5Alternative author ID"Bc9mRpsHP"
authorHandleString0Author handle (computed)"@username"
authorNameString0Author name (computed)"John Doe"

Timestamps

FieldTypeCountDescriptionExample
createdDate (ISO)184Creation date"2023-11-24T22:51:21.946Z"
modifiedDate (ISO)184Last modification date"2024-11-28T22:13:16.198Z"

Media/Images

FieldTypeCountDescriptionExample
unsplashPhotoIdString~150Unsplash photo ID"I-_7kNyN-JE"
imageExternalUrlString~30External image URL"https://example.com/image.png"
hasPhotoColorFilterBoolean~20Apply color filter to phototrue

Image URL Construction:

  • Unsplash: https://source.unsplash.com/{unsplashPhotoId}/1600x900
  • External: Use imageExternalUrl directly
FieldTypeCountDescriptionExample
featuredReferralProgramTagString~20Tag for program listing"crowdfunding"
featuredReferralProgramSlugString~30Specific program slug"gemini"
featuredReferralProgramCountryCodeString~52-letter country code"US"
featuredProgramObject1Full program object{name: "Gemini", ...}

Note: featuredProgram contains complete program data (icon, colors, summary, etc.)

Field Distribution by Category

Articles with System Tags (tags)

  • 43 articles have admin/system tags
  • Example: "referral programs collections"
  • Used for: Internal categorization, special collections

Articles with User Tags (userTags)

  • ~140 articles have user tags
  • Example: ["save", "tips", "deals", "strategy"]
  • Used for: Public-facing tags, filtering, search

Articles with Both

  • Some articles have BOTH tags and userTags
  • Example: Crowdfunding article has:
    • tags: ["referral programs collections"]
    • userTags: ["Crowdfunding"]

Special Field Cases

1. The desc Field (1 article)

Article: write-for-us.md

  • Contains an iframe embed
  • Different from descHtml (main content)
  • Also stored in customHtmlCode

Usage:

desc: "<iframe src=\"https://docs.google.com/forms/...\" ...></iframe>"

2. The featuredProgram Object (1 article)

Article: Trading-crypto-on-Gemini.md

  • Full program object with colors, icons, summaries
  • Contains: name, slug, domain, category, iconSquare, accentColor, etc.
  • JSON serialized in frontmatter

Usage:

featuredProgram: {"accentColor":"#65e7f7","name":"Gemini",...}

3. Multiple Author Fields

Some articles have:

  • user (primary author, always present)
  • authorShortid (alternative/override, rare)

Frontmatter Structure

Minimal Article (Required Fields)

---
id: "..."
title: "..."
slug: "..."
url: "..."
published: true
category: "..."
author: "..."
created: "..."
modified: "..."
---

Full Article (All Possible Fields)

---
id: "656128e9c88eac01c2b1e93f"
title: Article Title
subtitle: Article subtitle
slug: "article-slug"
url: "/mag/article-slug"
published: true
featured: true
isPage: false
hiddenFromLists: false
hideComments: false
category: "product"
categoryLabel: product
tags:
  - "system-tag"
userTags:
  - "user-tag-1"
  - "user-tag-2"
author: "Owc4NhV2y"
authorShortid: "Bc9mRpsHP"
created: "2023-11-24T22:51:21.946Z"
modified: "2024-11-28T22:13:16.198Z"
unsplashPhotoId: "abc123"
imageExternalUrl: "https://example.com/image.png"
hasPhotoColorFilter: true
featuredReferralProgramTag: "crypto"
featuredReferralProgramSlug: "gemini"
featuredReferralProgramCountryCode: "US"
featuredProgram: {...}
desc: "Short description"
customHtmlCode: "<custom html>"
---

Article content in Markdown...

Field Coverage

✅ All 28 Fields Captured

  • _id
  • title
  • subtitle
  • slug
  • url
  • published
  • featured
  • isPage
  • hiddenFromLists
  • hideComments
  • category
  • categoryLabel
  • tags ⭐ (NEW - System tags)
  • userTags
  • user
  • authorShortid ⭐ (Already had it)
  • authorHandle
  • authorName
  • created
  • modified
  • descHtml (content)
  • desc ⭐ (NEW - Short description)
  • customHtmlCode
  • unsplashPhotoId
  • imageExternalUrl
  • hasPhotoColorFilter
  • featuredReferralProgramTag
  • featuredReferralProgramSlug
  • featuredReferralProgramCountryCode
  • featuredProgram ⭐ (NEW - Full object)

⭐ = Added in the latest update

Migration Notes

For Static Site Generators (Hugo, Jekyll, etc.)

Map fields directly:

# Hugo example
date: "{{created}}"
lastmod: "{{modified}}"
draft: !{{published}}
categories: ["{{category}}"]
tags: {{userTags}}

For Headless CMS (Contentful, Strapi, etc.)

Parse and transform:

const article = parseFrontmatter(markdownFile);

// Map to CMS content model
{
  title: article.title,
  slug: article.slug,
  publishedAt: new Date(article.created),
  updatedAt: new Date(article.modified),
  status: article.published ? 'published' : 'draft',
  category: article.category,
  tags: article.userTags, // Use userTags for public tags
  systemTags: article.tags, // Store system tags separately
  featuredImage: article.unsplashPhotoId
    ? `https://source.unsplash.com/${article.unsplashPhotoId}/1600x900`
    : article.imageExternalUrl,
  content: article.content, // Markdown body
  customHtml: article.customHtmlCode
}

Special Handling Required

  1. Featured Program Object - If your CMS doesn't support JSON in frontmatter:

    • Extract to separate file
    • Store in database
    • Link by reference
  2. System vs User Tags - Decide on strategy:

    • Merge into one field
    • Keep separate for admin/public distinction
    • Use namespacing (admin:collection, user:crypto)
  3. Custom HTML - Consider:

    • Store in separate field
    • Convert to shortcodes/components
    • Embed in Markdown with proper escaping

Validation Queries

# Count articles with system tags
grep -c '^tags:' blog-md/*.md
# Result: 43

# Count articles with user tags
grep -c '^userTags:' blog-md/*.md
# Result: ~140

# Find articles with featuredProgram
grep -l 'featuredProgram:' blog-md/*.md
# Result: Trading-crypto-on-Gemini.md

# Find articles with desc field
grep -l '^desc:' blog-md/*.md
# Result: write-for-us.md

# Articles with authorShortid
grep -l 'authorShortid:' blog-md/*.md
# Result: 5 articles

Summary

100% Field Coverage - All 28 unique fields from the database are now captured in the Markdown frontmatter.

🎯 Key Distinctions:

  • tags (admin) vs userTags (public)
  • desc (short/embed) vs descHtml (main content)
  • featuredProgram (full object) vs individual featured fields

📦 Ready for Migration - All metadata is preserved and ready for your CMS import.


Last Updated: October 2, 2025 Fields Discovered: 28 Articles Converted: 184 Coverage: 100% ✅

In this article:

Share this article: