Should I create a new document type for "shorts" or use existing "article" type?
Based on your description, I'd recommend creating a separate short document type. Here's why your instinct is right:
Separate document types make sense when:
- Content has different purposes and presentation (travel articles vs. quick thoughts)
- You'll query them separately (which you mentioned)
- They have different fields/structure (shorts probably don't need all the fields articles have)
- You want to manage them differently in the Studio
Practical benefits for your use case:
- Cleaner queries - You can do
*[_type == "short"]without filtering out articles every time - Different schemas - Shorts probably don't need a hero image, long body text, or other article fields. Keep them lightweight with just what you need (text, category, date)
- Better Studio experience - You can create separate desk structure sections, different preview layouts, or even custom input components specific to shorts
- Future flexibility - If you want to add features specific to shorts (like a character limit, different publishing workflow, or special formatting), it's much easier with separate types
Simple implementation:
// schemas/short.js
export default {
name: 'short',
type: 'document',
title: 'Short',
fields: [
{
name: 'text',
type: 'text',
title: 'Text',
validation: Rule => Rule.required().max(280)
},
{
name: 'category',
type: 'string',
options: {
list: [
{title: 'General', value: 'general'},
{title: 'Coffee', value: 'coffee'},
{title: 'Cocktails', value: 'cocktails'}
]
}
}
]
}You're not overcomplicating it—you're modeling your content appropriately. Different content types deserve different document types. This is exactly what Sanity's flexible schema system is designed for.
The rule of thumb: if you find yourself constantly filtering one type of content out from another, or if they serve different purposes, split them into separate document types. In your case, since you'll "always query them separately" and don't want them "flowing in with the rest of the blog content," that's a clear signal that separate types are the right choice.
Show original thread3 replies
Sanity – Build the way you think, not the way your CMS thinks
Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.