Introduction

BaseHub is a headless CMS that helps you write, store and distribute content for the Internet, faster. In our docs, we aim to give you an overview of BaseHub’s core concepts, as well as guide you through common use cases of the platform.

Before We Begin

Make sure you already have a BaseHub account. If you don’t, create an account with GitHub, Google, or just with your email in our authentication page.

Basic Concepts

Let’s go over some basic concepts that will help you understand BaseHub’s architecture.

Personal Account

After signing up to BaseHub, a free Personal Account will be created for you. This is your place to start exploring BaseHub, to build your personal blog, or even kickstart ambitious side-projects. The free tier comes with usage limits, after which you can optionally subscribe to paying overages metered by your monthly usage. Refer to our pricing page for more details.

Teams

If you’re looking to collaborate with multiple people, then you’ll want to create a Team. A Team will allow you to invite members that will be able to collaborate with you on content in real time. Teams start at $29 /month and include unlimited users plus a usage quota with optional overages. So, base fee, unlimited users, and then usage based. Refer to our pricing page for more details.

Why include unlimited users? We believe good content can come from anywhere in your Team. If we charged on a per seat basis—as many CMSs do—, we’d be placing a burden on team owners to think about “which user is essential”, something that’s not always as clear.

Teams have two roles available (with more roles in the roadmap, of course):

  • Owners, which can manage everything inside the Team, including inviting new members, changing the Team name or avatar, manage billing settings, and more.

  • Members, which can read and write to Repositories inside the Team.

Repositories

Either in your Personal Account or in any of your Teams, you’ll be creating Repositories—or Repos. A Repo is a container for your content. Think of it as a “project”, or a “workspace”. For example, if you’re creating content for your website, you can create a new Repo called “Website”.

You’ll be creating Blocks, Commits, Branches, and more inside a Repo, and you’ll be able to query the content inside a Repo via the Delivery API.

Blocks

Every piece of content you create in BaseHub is a Block. Similar to Lego, Blocks can have different types and functions. You can nest Blocks, reference Blocks, and more.

In the Editor, you’ll create Blocks by typing / and choosing one Block type from the Block selector.

We group Blocks into “primitive” and “layout” Blocks. You’ll use Primitive Blocks for Text, Images, Dates, Numbers, Booleans, References, and more. You’ll use Layout Blocks for Documents, Collections, and Components and Instances.

Commits

A Commit stores a snapshot of your Repo at that specific point in time. Inspired by Git, each commit is immutable, and it’s a core of how version control works in BaseHub.

Every change that you introduce to your Repo will need to be committed before going live, making it the final step between working content, and production content. Think of our “commit” as other CMSs “publish” action. One key advantage our Commit workflow has is that a Commit spans an entire Repository, meaning, you’ll be able to act upon several content Blocks inside your Repo and Commit them all at once. Additionally, before committing, you’ll be able to see the Diff between your working state and your head state—the last commit you made.

Delivery API

We deliver your content via a performant GraphQL API. GraphQL is perfect for BaseHub, as in GraphQL, you can easily model tree-like structures.

We serve all GraphQL requests through a single endpoint:

https://api.basehub.com/graphql

To go deeper into our Delivery API, refer to our doc about it.