6
7 Comments

Headless CMS for text snippets/page copy?

I've worked at two large companies recently that had an in-house CMS that was used to provide dynamic copy in certain places. For example on some of our pages the code would look like:

<h1>{content.header-en}</h1>
<p>Before continuing be sure to complete these steps:</p>
<div>
    {content.onboarding-steps-en}
</div>

I tried to find a similar public CMS to use in one of my projects but it seems like most headless CMS are geared towards blogs where you create Collections of Pages based on predefined schemas. I can't really find anything that offers this sort of freeform key/value content CMS. Is there something I'm missing or is there an opportunity for a CMS like this?

posted to Icon for group Ideas and Validation
Ideas and Validation
on August 12, 2021
  1. 1

    Try out Notice. It's a no-code headless CMS that comes complete with schema. Should suit you!

  2. 1

    Have a look at KirbyCMS, it’s built by a friend of mine and super super flexible and easy to set up (file based). There are several plugins out there which enable you to set up dynamic key-value stores.

    Other ones to try (not 100% if they allow flexible Schemas like you want)

    Strapi (self hosted)
    Contentful (very sophisticated)
    Sanity

  3. 1

    There might be an opportunity here.

    When I'm building my own projects, I tend to create a database table specifically for storing common text and html snippets. I use these snippets in components which are common across the site, for example in a footer, or the site's default title. I can even store links to images etc.

  4. 1

    There was a product on IHs a while ago that was very flexible in terms of CMS functionality (can't remember the name). It had key-value.

    {content.onboarding-steps-en}

    Seems weird. Would it not be better say {content.en.onboarding-steps} or {en.content.onboarding-steps}

    1. 1

      Cool thanks for the heads up I'll try to find that one and check it out.

      I agree that a deeply nested object would be nicer like {content.header.en} and {content.header.sp} or even {content.onboarding.steps.first-step}. But it'd need to be easy to manage content via a GUI for the CMS and nested JSON content gets much trickier than a simple key/value pair.

      1. 1

        You can do what s3 does.

        "/" are not actually folders they're just added to make it look like it.

        so you could do

        {"content.en.steps": "",
        "content.es.steps": ""}

  5. 1

    You can do things like this with Vue-based CMS systems like Vuepress and @nuxt/content.

    With Vuepress I personally have experience and you would need to create a Vue-component and refer to this component in your markdown pages.
    Vuepress is however somewhat limited and primarily useful for documentation sites.

    With Nuxt you have a lot more possibilities with regards to fetching and displaying content.
    Is this something you are looking for?

Trending on Indie Hackers
I built something that helps founders turn user clicks into real change 🌱✨ User Avatar 32 comments I built a text-to-video AI in 30 days. User Avatar 31 comments You don't need to write the same thing again User Avatar 29 comments I built an Image-to-3D SaaS using Tencent's Hunyuan 3D AI User Avatar 25 comments The Era of Malleable SaaS: Is This the End of "Opinionated Software"? User Avatar 17 comments Let’s Talk: What’s Missing in Today’s App Builders? User Avatar 17 comments