The TinaCMS CLI can be used to set up your project with TinaCMS schema configuration, and run a local version of the TinaCMS API (using your file system's content). For a real-world example of how this is being used checkout the Tina Cloud Starter.
The CLI can be installed as a dev dependency in your project.
Npm:
npm install --save-dev @tinacms/cli
Yarn:
yarn add --dev @tinacms/cli
> yarn run tinacms
Usage: @tinacms/cli command [options]
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
server:start [options] Start Filesystem Graphql Server
schema:compile [options] Compile schema into static files for the server
schema:types [options] Generate a GraphQL query for your site's schema,
(and optionally Typescript types)
init [options] Add TinaCMS to an existing project
help [command] display help for command
The simplest way to get started is to add a .tina/schema.ts
file
mkdir .tina && touch .tina/schema.ts
defineSchema
defineSchema
tells the CMS how to build your content API.
// .tina/schema.ts
import { defineSchema } from '@tinacms/cli'
export default defineSchema({
collections: [
{
label: 'Blog Posts',
name: 'post',
path: 'content/posts',
fields: [
{
type: 'string'
label: 'Title',
name: 'title',
},
],
},
],
})
Let's add some content so we can test out the GraphQL server
mkdir content && mkdir content/authors && touch content/authors/napoleon.md
Now let's add some content to the author
---
name: Napoleon
---
mkdir content/posts && touch content/posts/voteForPedro.md
Now we add some content to the post
---
title: Vote For Pedro
author: content/authors/napoleon.md
---
You should really vote for Pedro.
> yarn run tinacms server:start
Started Filesystem GraphQL server on port: 4001
Visit the playground at http://localhost:4001/altair/
Generating Tina config
...
The below query can be run against your locally-running GraphQL server