This Week In Chia - JSON Format Specification

Table of Contents

Overview

This document defines the standardized JSON format for storing all "This Week In Chia" historical data, ensuring consistency across 2.5 years of content and enabling robust API development.

Root Structure

{
  "weeks": [...],
  "metadata": {...}
}

Week Object

{
  "weekId": "2025-06-15",           // ISO date of week start
  "startDate": "2025-06-15",       // ISO date string
  "endDate": "2025-06-21",         // ISO date string  
  "advertisement": {...} | null,    // Optional advertisement
  "weeklyHighlight": {...} | null,  // Optional weekly highlight
  "posts": [...]                   // Array of post objects
}

Weekly Highlight Object

{
  "name": "Spacescan",
  "description": "A well deserving core community member...",
  "donationAddress": "xch1a6cd558gqs...",
  "supportUrl": "https://www.spacescan.io/support-us",
  "bannerImage": "assets/images/spacescan.png", 
  "donationImage": "donations/20250615.png",
  "websiteUrl": "https://www.spacescan.io/"
}

Post Object (Core Structure)

{
  "postId": "2025-06-15-1",        // Unique identifier: date-index
  "date": "2025-06-15",            // ISO date string
  "dayOfWeek": "SUNDAY" | null,    // Day name or null for older posts
  "categories": {
    "primary": "Community",         // Main category
    "secondary": "Space"            // Sub-category  
  },
  "categoryIcons": ["🌎", "🚀"],   // Emoji icons array
  "type": "X Space",               // Standardized post type
  "author": {...},                 // Author object
  "title": "...",                  // Extracted title
  "content": "...",                // Full post content
  "mentions": [...],               // Array of @mentions
  "links": [...],                  // Array of external links
  "topics": [...],                 // Array of topic strings
  "version": {...} | null,         // Version info for releases
  "metadata": {...}                // Post metadata flags
}

Author Object

{
  "handle": "@DracattusDev",       // Social handle or name
  "url": "https://x.com/...",      // Profile URL (empty string if none)
  "displayName": "DracattusDev",   // Clean display name
  "role": "host"                   // "host" | "author" | "organization"
}

Mention Object

{
  "handle": "@hoffmang",
  "url": "https://x.com/hoffmang",
  "context": "named as CEO"        // Brief context of mention
}

Version Object

{
  "product": "Chia Client",        // Product name
  "number": "1.6.2",              // Version number
  "type": "stable"                 // "stable" | "beta" | "alpha"
}

Metadata Object

{
  "hasMedia": false,               // Contains images/video
  "hasThread": false,              // Is a Twitter thread
  "isLive": false                  // Live content (streams, etc.)
}

Standardized Post Types

Categories

Primary Categories

Secondary Categories

Global Metadata

{
  "totalWeeks": 130,
  "totalPosts": 2847,
  "dateRange": {
    "earliest": "2023-01-01",
    "latest": "2025-06-21"
  },
  "generatedAt": "2025-06-16T10:30:00Z",
  "version": "1.0"
}

Design Principles

Consistency

API-Ready

Extensible

Tool-Friendly

Example Queries

Find all X Spaces:

posts.filter(p => p.type === "X Space")

Get posts by specific author:

posts.filter(p => p.author.handle === "@DracattusDev")

Find version releases in date range:

posts.filter(p => 
  p.type === "Version Release" && 
  p.date >= "2024-01-01" && 
  p.date <= "2024-12-31"
)

Search posts mentioning specific person:

posts.filter(p => 
  p.mentions.some(m => m.handle === "@hoffmang")
)
↑