A page builder approach

I’m a frontend developer and recently created my own “baseplate” using Nuxt.js. I’d like to use Ghost as a headless CMS but in a specific way…

I like to use a “page builder” approach with my sites, essentially working with a big array of blocks, each with a type and value key, for example:

    blocks: [
        {
            type: 'Intro',
            value: {
                title: 'Foo',
                description: 'Bar',
            }
        },
        {
            type: 'Hero',
            value: {
                title: 'Foo',
                media: …,
            }
        },
        {
            type: 'Intro',
            value: {
                title: 'Bar',
                description: 'Foo',
            }
        },
    ]

Is it possible to create custom “blocks” that I’ll be able to reuse on different pages?

You can create what’s called “Snippets”. They are re-usable “blocks”.