Data Modeling

January 5, 2025 1 min read By Alex Morgan
astro data-modeling
Data Modeling

Data Modeling

Markdown (Astro Content Collections)

---
title: "Post title"
author: "Jane"
tags: ["astro", "ssg"]
published: true
---

Content here
defineCollection({
schema: z.object({
title: z.string(),
tags: z.array(z.string())
  })
})

Characteristics

  • Flat, file-based
  • Limited relations
  • Compile-time validation
  • Simple mental model

CMS (Sanity / Contentful)

{
title:string
author:reference(User)
categories:reference(Category[])
seo: {
    title,
    description,
    image
  }
}

Characteristics

  • Deep relationships
  • Graph-like content
  • Rich blocks (portable text)
  • Runtime filtering & queries