Skip to content
scsiwyg
sign insign up
get startedhow it worksmcpscsiblogcommunityapiplaygroundswaggersign insign up
โ† all posts

Why Flat, Portable JSON Files Win

architecturejsonportability

Why flat, portable JSON files win

A scsiwyg post is a single JSON file. The title, the body, the images, the tags, the metadata โ€” it's all in one object. You can email it. You can check it into git. You can pipe it through jq. You can write it with any text editor. You can generate it with any programming language.

{
  "slug": "day-3-vienna",
  "title": "Day 3 in Vienna",
  "body": "# Arrived at dawn\n\nThe market smelled of...",
  "images": [
    {
      "id": "img1",
      "name": "market.jpg",
      "data": "data:image/jpeg;base64,/9j/4AAQ..."
    }
  ],
  "tags": ["travel", "austria"],
  "visibility": "public"
}

Self-contained means self-contained

When an image is a base64 data URI inside the post JSON, that image can never break. There's no CDN to go down. There's no S3 bucket to expire. There's no external URL to return a 404 three years from now.

The post IS the post. It has everything it needs.

Portability isn't a feature โ€” it's the architecture

When your content is a flat JSON file:

  • Backup is copying a file
  • Migration is POSTing to a different API
  • Version control is git add post.json
  • Review is git diff post.json
  • Search is grep -r "vienna" posts/
  • Batch operations are a for loop

Compare this to content locked in a database behind a proprietary API with a schema you don't control. Which one survives when the vendor shuts down?

The base64 trade-off

Yes, base64 encoding makes images ~33% larger. For a typical blog post image at reasonable quality, that's the difference between 200KB and 267KB. Your readers won't notice. Your bandwidth bill won't notice. Your content's immortality is worth 67KB.

If you're publishing a photography portfolio with 50MB RAW files, scsiwyg isn't the right tool. But for a blog? Base64 is the right trade-off. The image is part of the document, not a reference to an external resource that may or may not exist next year.

The AI advantage

When an AI agent writes a blog post, it produces text. Asking it to also upload images to a media library, get the URLs back, and embed them in the markdown is a multi-step workflow with authentication, error handling, and state management.

Asking it to base64-encode an image and put it in the JSON? That's one step. The AI already knows how to produce JSON. The entire publishing workflow is a single API call.

Flat files aren't just simpler for humans. They're simpler for AI.