Forestry to CloudCannon: The full migration guide
We've recently released a helpful migration tool! Once you've connected your existing Forestry site repository to CloudCannon, we'll automatically generate a CloudCannon config file from your Forestry settings.
​​​​
As the Forestry CMS moves towards its sunset, many Hugo, 11ty, and Jekyll developers are looking for a new home for their Jamstack websites. CloudCannon is a Git-based CMS which has been around since 2014 and powers thousands of websites for Fortune 500 companies, digital agencies, freelancers, and global businesses.
CloudCannon shares many similarities with Forestry, making for an easy transition for both developers and content editors alike. This post details a full guide for Forestry features and concepts, how they translate to CloudCannon, and the steps developers need to take to make the transition.
A Forestry.io alternative
Forestry had a feature set that made it a great platform for empowering content editors to update content on Jamstack websites. To get a full picture of an alternative to Forestry, we’ll look at how CloudCannon compares to Forestry on a feature-by-feature basis:
Git provider support
Both Forestry.io and CloudCannon are Git-based CMSs and support the major Git providers and Git LFS. In addition to committing content changes back to the Git repository, CloudCannon also supports workflows for content editors to branch, merge, and open Pull Requests allowing for tight collaboration with developers.
Forestry.io | CloudCannon |
---|---|
GitHub, GitLab, Bitbucket, Manual | GitHub, GitLab, Self-hosted GitLab, Bitbucket |
SSG support
Forestry had native support for Hugo and Jekyll, while also supporting any SSG through manual configuration. CloudCannon has native support for Hugo, Jekyll, Eleventy and plugins for all other major SSGs.
Forestry.io | CloudCannon |
---|---|
Hugo, Jekyll, others through manual configuration | Hugo, Jekyll, Eleventy, others through manual configuration |
Content editing files support
The majority of content on Forestry was powered by Markdown and front matter. CloudCannon also works with these file formats and adds native support for HTML as an alternative.
Forestry.io | CloudCannon |
---|---|
Markdown, JSON, YAML, TOML | HTML, Markdown, JSON, YAML, TOML, CSV, TSV |
Front matter inputs
Fields or front matter inputs are the building blocks for structured content. Developers create components from these inputs which content editors can piece together to create complex pages.
Forestry.io | CloudCannon |
---|---|
Text, Text Area, Number, Toggle, Select, Datetime, Color picker, Tag field, Sortable list, File upload, Multi file upload, Field group, Repeatable field group, Include template, Block | Text, Text Area, Email, Code block, Check box, Switch, Color, Number, Range, URL, HTML, Markdown, Datetime, Date, Time, File, Image, Document, Select, Multiselect, Object, Array, Facebook, Twitter, Instagram, GitHub, Pinterest |
Previews
Content editors need to see their changes on the live website before publishing. Forestry had the concept of previews which ran an SSG build in the background with the modified files to generate a live version of the site.
CloudCannon supports a Visual Editor which replaces the need to generate previews. The editing interface the content editors see is exactly what will display on the live website. In addition, preview domains are automatically generated at build time. CloudCannon is also a Jamstack CDN hosting provider. You can set up your staging, production, and any other testing websites all on the same platform.
Forestry.io | CloudCannon |
---|---|
Preview URL is temporary. | Visual editing. Permanent staging/previewing URL. |
Content Editing
Managing content is the core reason for using a CMS. The main way of editing content with Forestry was the Markdown editor. It provided a view of the front matter fields on the left, and a configurable WYSIWYG editor on the right.
CloudCannon lets editors manage their content directly on the page using the Visual Editor. The Visual Editor supports content sourced from HTML, Markdown, and front matter.
CloudCannon also supports an alternative Content Editor for a distraction-free writing experience.
Alternatively, CloudCannon's Source Editor lets developers make quick source changes right from the browser.
Media Management
With a Git-based CMS, storing assets is a major consideration. For a small website, you can store all your website files and assets in a single repository. For larger websites, you’ll quickly reach the upper storage limit of around 1-4GB if you try to store assets in the repository. Both CloudCannon and Forestry have plenty of options for keeping your assets out of the repository, including Git LFS support.
Forestry.io | CloudCannon |
---|---|
Git, Cloudinary, AWS S3, Netlify Large Media | Git, Cloudinary, AWS S3, Tenovos |
User roles
Controlling access to content on an account or individual site level is important to ensuring everyone has enough access to do their job. Forestry and CloudCannon offer similar levels of user permission granularity and both offer the concept of Organizations which allow admins to give a group of users access across multiple sites. Fine grained permissions are coming to CloudCannon over the coming months and will enable you to create your own roles with completely custom permission sets.
Forestry.io | CloudCannon |
---|---|
Admin, Developer, Editor, Site level sharing | Owner, Developer, Technical Editor, Editor, Site level sharing |
Remote admin
Forestry’s remote admin allowed editors to manage the content of their site right from their own domain. Freelancers and agencies used this feature to white-label Forestry and provide a more streamlined way of accessing the CMS.
CloudCannon has a similar feature called client sharing. Instead of setting up user accounts for editors, you set up a password. Clients navigate to theirdomain.com/update, enter the password and get a white labeled interface to update the content on their site.
Deployment
Forestry relied on third-party hosting providers to publish the website live. CloudCannon includes top tier CI/CD and global hosting as part of its offering. Content changes made in the CloudCannon CMS automatically kick off an SSG build, deploy to a global network across 250 cities, invalidates the cache, and is ready to scale to handle your traffic. Or you can keep your current hosting and just use CloudCannon as your CMS.
Making the switch
The similarities between Forestry and CloudCannon make it a fairly painless switch. Even better, your content editors will find a new level of empowerment by visually editing content on your Hugo, 11ty, and Jekyll websites. Follow these steps and you’ll be up and running in no time:
1. Connect your repository
Just like Forestry, CloudCannon is a Git-based CMS. To start, sign up to CloudCannon, click “Add new site”, and select “Connect your own files.”
Create a name for your site.
Select a source for your website files. CloudCannon supports two-way Git syncing with GitHub, GitLab, and Bitbucket. Once you’ve selected your Git provider, you’ll need to authenticate it to CloudCannon.
From here, select the repository and branch that is connected to your site on Forestry. If you want to test CloudCannon out without impacting the live Forestry site, select Create new in branch setup to create a new branch. You can always merge it to your production branch at a later date.
2. Set up your SSG build
CloudCannon will try to connect your SSG and configuration details based on your file structure. Review this configuration make any tweaks for your project.
If the build succeeds you’re ready to start configuring the editing. Otherwise, tweak your build options until you get it working. You can always reach out to our support team if you need help with any step along the way.
3. Configure the CMS
When you configured your site on Forestry, you will have taken steps to set up and customize your CMS sidebar, media paths, and content model. Here’s how each one of those steps works on CloudCannon:
Set up content sections for the CMS sidebar
CloudCannon will automatically detect the pages, collections, and data files for Hugo, 11ty, Jekyll sites. In addition to this, you can customize the icon each content section displays with, the sort order, whether new items can be added, and other options to finetune the sidebar.
You can also define custom collections, choose which collections are shown in the sidebar, and override the automatic CloudCannon detection, if you'd prefer.
Other SSGs don’t have strong conventions around folder structure, so while CloudCannon can’t automatically detect site content, the configuration is straight forward, at a minimum defining the path to the content folder and name.
Set up correct paths for media
By default, files are uploaded to a folder called uploads in your source direction. You can override this with configuration to your own path and even add your own variables like :year, :month, :collection, :categories to keep things organized.
CloudCannon configuration works as a cascade. You can set global defaults and override them for specific collections or files which gives you complete control over how each file is edited.
Configure your content model
Your content model dictates how content editors manage all the structured content across the site. In Forestry, you will have built out a Front Matter Template which pieces together data types into a structure which can be used to create new pieces of content. These templates live in a folder called .forestry.
CloudCannon has similar functionality with different terminology. There are three ingredients for creating flexible content models:
- Inputs — Configure a wide range of options on your fields throughout your site. Use this to customize the editing experience of front matter and data files. Set the type, label, comment, and other options for a field that corresponds with a front matter field. Similar in scope to Forestry's 'Fields'.
- Defaults files — A template (markdown or HTML) that’s used to populate new files with your desired content model. Similar in scope to Forestry's 'Front Matter Templates'.
- Structures — Define your own components, each with their own content model. Content editors use these components to build, rearrange, and reorganize even the most complex pages. Conveniently, each Forestry "Field" has a corresponding input on CloudCannon:
Forestry.io | CloudCannon |
---|---|
Text | Text |
Textarea | Textarea |
Number | Number |
Toggle | Switch |
Select | Select |
Datetime | Datetime |
Color Picker | Color |
Tags Field | Multiselect |
Sortable List Field | Array |
File Upload | File |
Multi-File Upload | Array + File |
Field Group | Object |
Repeatable Field Group | Complex Array |
Blocks | Structures |
Furthermore, we’ve created an open-source framework called Bookshop to speed up development and reduce maintenance for component-based websites. It natively supports the templating engines of Jekyll, Hugo, and 11ty so it’s a small learning curve if you’re already using these SSGs. The real magic comes with its tight integration with CloudCannon which enables visual editing of content populated from front matter. If you’re getting started with CloudCannon, we’d highly recommend adding Bookshop to your workflow.
4. Invite your team
What good is a CMS without a team to share it with? Invite everyone who needs access to the site including content editors, marketers, and developers. Guide them through the editing interfaces and they’ll be up to speed in no time.
5. Configure your hosting (optional)
When a developer pushes a change to the repository or a content editor updates content on CloudCannon, CloudCannon automatically starts a build. When the build completes, it’s pushed to CloudCannon’s production-grade global hosting which ranks among the fastest and most stable with its peers. All sites on CloudCannon come with their own generated domain name which you can use as a testing or staging environment, or you can point your own domain at CloudCannon’s servers for your production website.
Come and say hello
There’s no better time to make the switch. Migration takes a few steps and you can rest assured you’re moving to a platform that’s here for the long term. We’re always here to help and listen. If you want to make sure CloudCannon can handle your use case or you need a hand during your migration, reach out to our team of experts and we’ll help you get set up.
Launch your website today
Give your content team full autonomy on your developer-approved tech stack with CloudCannon.