Should I create a new document type for "shorts" or use existing "article" type?
i have a blog, basically a travel journal. I have all the posts in a document type of
articleand am considering adding a new type of content. i'm essentially calling them
shortsand they are mainly quick thoughts, almost like a tweet. for now i see them in three buckets, general, coffee and cocktails.
my question is .. would you make a new document type of
shortor would it be better to keep them inside the
articletype?
i don't really want them flowing in with the rest of the blog content, and would likely always query them separately ... which is why i am considering a new document type. but then part of me feels like i'm over complicating it and should just continue to use the
articletype.
thoughts? opinions? tia
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
Was this answer helpful?
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.