TLDR: Looking for a headless CMS that does the following:
- Allows you to create new relational models (Songs) for a content type in the UI for creating that content type (Post)
- First class slug support by slugifying the title automatically
- First class author support by attaching the author who is signed in automatically to content types
- GraphQL
I've been trying to find a good headless CMS, and the options that I've looked at are lacking in one way or another. This will be for a music blog, and each post will have an array of Songs and each Song has an Artist (all of which I'd like to be relational).
I tried Strapi and Prismic and both don't seem to allow you to add a related Song to Post unless the Song was previously created. Similarly, you can't add an Artist to a Song without the Artist previously being created. This makes creating a Post a very cumbersome thing to set up all of the other content types before being able to create a Post.
Anyone know of any good options that will pop up a modal or some other good UX if you need to create relational data on the fly when creating another content type? I tried GraphCMS which got me VERY close, but doesn't seem to have first-class support for some other things I'd like (automatic slug generation and automatic Author linking to content types they created).
You are right, with Prismic you need to create the related documents (for instance your Artist) in order to be able to refer to him/her in their Songs. I noted that as a feature request for the Product team, but the editing experience might become unclear for Editors if you start creating new documents from a document that you are editing... Maybe you could just open another tab to create the linked Artist, then attach it to the song when you finished on that tab?
About Author: We recommend to create Authors as entities that you make a Content Relationship to in your Post document. This is because it's hard to assign an Author to a document (is it the person who published the last version of the article, or the one who last edited the document before it was published, or the one who create the first published version of the documents (the other might just have corrected a few typos) Also, it allows you to add more meta-data about the Author: Have an Avatar image, Role, Team, etc.
Other than that, on the Prismic side, it seems to fit your other requirements. Let us know which tool you chose eventually!