Should I create a new document type for "shorts" or use existing "article" type?

3 replies
Last updated: May 11, 2022
seeking opinions.
i have a blog, basically a travel journal. I have all the posts in a document type of
article
and am considering adding a new type of content. i'm essentially calling them
shorts
and 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
short
or would it be better to keep them inside the
article
type?
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
article
type.
thoughts? opinions? tia
AI Update

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:

  1. Cleaner queries - You can do *[_type == "short"] without filtering out articles every time
  2. 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)
  3. Better Studio experience - You can create separate desk structure sections, different preview layouts, or even custom input components specific to shorts
  4. 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 thread
3 replies
Yes, both the desire for a different set of fields and the fact you intend to query them separately lend this to a different schema type, in my opinion.
I am seconding Geoff; my additional reasoning centers on the future-proofing. It's always nice to simplify and give yourself some flexibility paring things down, but my experience has been that if you have that instinct now? They're only going to grow more apart, where you want each type treated a bit differently or to have different fields.
Not only that, but because the presentation layer is abstracted, you
do have a safety net for the time being -- while they sound separated mostly just by desired/intended body copy length -- by just treating them the exact same way visually with the information you'll have on file.
Right now I have a "Featured Place" document type and a "Page" type and we have no real idea if Featured Place is gonna be really different in terms of inputs. What we do know is we want to treat them separately when it comes to placing/requesting them, and that they legitimately will be covering their own specific kinds of content. Yes, like a category of pages, but I want to make the decision now so that as I
do figure things out, that I can dedicate resources to them especially that best serve that consistent kind of content I wish to see there.
Worst case? It remains looking generic like a page with no special bells or whistles and is just a slightly different name to retrieve.

References and connecting the dots are fun and useful, but even just keeping your brain saturated with different kinds of high-level compartmentalization is a good practice to get into; you start thinking that way consistently come decision time with everything you touch on a project here.
thanks for the opinions and for confirming how i was already feeling! 👏

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.

Was this answer helpful?