top of page

Forestry — A CMS for Git

“Forestry.io is a Git-backed CMS (content management system) for websites and web products built using static site generators. Forestry bridges the gap between developers and their teams, by making development fun and easy, while providing powerful content management for their teams.” ~Forestry Docs

Content Management Systems (CMS) are important components of web sites used for managing and creating posts, text content, titles, graphics and other content used by a website. Forestry takes a different spin on CMS by using git service providers as the backend storage system. This design choice has other benefits as well though. One key benefit being the ability to track version changes in files and content. The same way developers benefit from GIT’s branches, merging and isolated versions while working on source code together, Forestry allows content creators to benefit from the same set of features while add new material to their sites.


Connect to a Git Service Provider

The first step when diving into Forestry is to choose a Git Service Provider. The two largest of which are debatably Github and Gitlab. Forestry will sync changes to your site by committing changes back to your git repository once connected with OAuth.



Storing Media in the Cloud

Some content such as images, audio, videos and files can become large, making them not ideal to store in git without using an additional feature of GIT known as GIT LFS (Large File Storage). Some service exist such as Netlify or are available for extra cost via Gitlab and Github, but forestry also allows for storing media in other cost effective services like AWS S3, a blob storage service widely used for file storage and data lakes.



Settings & Configuration

Forestry provides a web interface for configuring a wide number of settings listed below.

  • site logo

  • site name


  • url for notifications, various touch points and the dashboard

  • timezone

  • project paths

  • file paths

  • new file format which can be markdown or HTML

  • side bar configuration

Site settings can also be configured with Forestry config files.



Builtin Markdown Editor

Forestry comes with a builtin web interface for writing content such as posts. These are commonly written in markdown or HTML, but its very handy to have an easy way for non-developers to write content even though Forestry will sync these changes and additions to the git repository.



Snippets

“Snippets in Forestry are pre-defined chunks of text that can be inserted into your content. You can put anything in a snippet that you might normally insert into your content, but they are especially useful in conjunction with shortcodes in Hugo or certain Liquid tags in Jekyll.” ~Forestry Docs

Templating tools have interested me for a long time. Frameworks like Jinja2 are very useful for building complex content while still being able to write generally straightforward markdown\markup style text. In Forestry snippets can be written int a .snippet file and then used in the web interface by “add snippet”

# .forestry/snippets/tip.snippet{{% tip %}} Tip Body {{% /tip %}}


Previews

“Previews allow content editors to see changes in Forestry before saving or publishing those changes, as well as share the drafted changes before publishing them. You can think of Forestry’s previews as your site’s staging environment.” ~Forestry Docs


Showcase

Its always great to see what people are creating with technology and services. heres a list of sites that use Forestry for CMS.





Conclusion

This project is production tested and has a lot of great features for content management and a unique angle on data storage with GIT. I am considering Forestry for a number of upcoming projects and would suggest this is one to watch!



Source: Medium - Robby Boney


The Tech Platform

0 comments
bottom of page