Brevifolia is minimalist blog starter to get you going using TinaCMS with Gatsby. Check out the demo here. A live version of the Tina demo in the cloud is coming soooon 😊
This blog is statically generated by Gatsby, a rendered combination of react components and markdown files. It is preconfigured to work with TinaCMS as a way to manage your content. Tina makes changes by editing markdown or json files, uploading media to the correct directory and committing these updates to your repo directly.
The styles were coded & designed by yours truly, using scss with css modules (which are inherently support by gatsby) and the bem naming convetion. The font used is Work Sans.
In your terminal, navigate to where you would like this blog to live, then run
gatsby new [SITE_DIRECTORY_NAME] https://github.com/kendallstrautman/brevifolia-gatsby-tinacms
cd [SITE_DIRECTORY_NAME]
yarn dev
In your terminal, navigate to where you would like this blog to live, then run
#clone the repo
git clone git@github.com:kendallstrautman/brevifolia-gatsby-tinacms.git
#navigate to the directory
cd brevifolia-gatsby-tinacms
#install dependencies & run dev server with yarn
yarn install
yarn dev
#or with npm
npm install
npm run dev
A new browser window should open with the dev server running or you can navigate to localhost:8000
With Gatsby offering a plugin-rich ecosystem, there are a few key plugins that make this project possible.
- Gatsby-plugin-tinacms allows us to use TinaCMS with Gatsby
- Gatsby-tinacms-git does the Tina magic for talking to Git
- Gatsby-tinacms-json helps us edit json data in our form fields.
- Gatsby-tinacms-remark helps us edit markdown content from the blog.
- Gatsby-image optimizes image loading and provides the correct file paths for output.
- Gatsby-transformer-remark gives us access to and transforms the markdown files, using also gatsby-remark-images, gatsby-remark-normalize-paths, & gatsby-remark-relative-images to make sure the content in the markdown works properly.
- Gatsby-transformer-json allows us to use the data in .json files.
- Gatsby-plugin-sass lets us write styles using scss or sass.
- Gatsby-plugin-react-helmet extends the well-known react-helmet, allowing you to adjust content in the ‘head’ of your components.
- Site-level configuration is stored in
config.json
. This file is loaded in thegatsby-config.js
to configure Gatsby and all it to be accessible via siteMetaData in your graphql queries. - Access any of Gatsby's browser api's via the
gatsby-browser.js
, or load global styles etc. - Add and access plugin options or siteMetaData via
gatsby-config.js
- Access Gatsby's node api's via
gatsby-node.js
. This is where the creation of new blog pages or nodes is handled. - Edit styles via
src/styles/...
content/
contains all your markdown blog posts, images & data files (e.g. authors list, info page data).src/pages
is a very important and required directory for Gatsby. This is where all your pages for the site live.- Blog posts are built from a template that can be accessed at
src/templates
. - The pages & template are comprised of components from
src/components
.
Tina is an open-source site editing toolkit for React-based frameworks — Gatsby & Next.js. It's a lightweight but powerful toolkit for creating a content editing interface with JavaScript components. Tina allows you to create an intuitive UI for real-time content editing, built directly into your site. To learn more about using Tina with this starter, head over to the Tina docs. To get started editing with Tina, get the project up and running locally, open up the UI and navigate around to see what you can edit!
Netlify is a great way to easily deploy sites.