cc: @adamcogan @pierssinclairssw @bradystroud @wicksipedia, @JackDevAU, @tkapa @theixdev @christianmorfordwaitessw
(Checked by Brady and Piers)
Hi,
We currently use GitHub as a CMS in SSW Rules but we have experienced a number of pain points while working with it. This issue is to document the downsides and limitations that come with using GitHub as a Content Management System (CMS) to help us make better decisions in the future.
a. Editing experience
- Git is unintuitive and has a large learning curve. As such, users who are unfamiliar with git can get confused when they need to fork, commit, create and review pull requests. Netlify CMS helped with this but it was a lot of work to implement, and the UX is still confusing
- GitHub file manipulation is not designed to be done in a browser, it is designed to be done using the command line. The browser editor UI has limited functionality, compared to editing locally.
e.g. sometimes when resolving conflicts, GitHub tells you that the browser cannot be used to resolve the conflicts.
- Cannot modify the flavour of markdown used by GitHub which can lead to misleading previews of pages
e.g. Our custom Markdown elements cannot be previewed
- Cannot easily relate rules to categories. Many to many relationships are hard to manage on GitHub
- Changing a URL - Folder structuring makes it really difficult for users to fluidly edit rules in Netlify CMS. When editing a rule URI, they must also change the folder name to match the URI, this process cannot be done from Netlify CMS and should be automated when the URI is changed. If the folder name is not changed it causes various problems on the Rule in production such as not showing history data below the rule. Similarly, it would be much better if the old URI was automatically added to redirects
- 🗑️ Deleting/Archiving - Leaving the files inside the repository adds technical debt as we can't easily discern which rules or categories are archived or still in use. Deleting rules means we wouldn't be able to have an "archived" section however, all the history would still be in Git.
TODO: Discuss if we can do anything to resolve this folder problem with @wicksipedia
e.g. Rule URI is changed from have-your-ups-send-an-email-when-it-kicks-in to ups-send-email, ideally this should automatically update the folder to be ups-send-email instead the user must edit the folder name manually as shown in the below screenshot.
- Feedback loop - with Netlify CMS, users can make changes but if a reviewer requests changes, this is not visible in the CMS. The person making the change should get a notification via email which takes them to the PR. To implement feedback, they need to either edit in GitHub or find the rule again in the CMS

Figure: Users must manually edit the folder name by putting the cursor before "rule.md" and pressing backspace then modifying the folder name
b. API limitations
c. Getting history data
Task
- Revisit in a year and see if these issues are still relevant.
AB#63252
cc: @adamcogan @pierssinclairssw @bradystroud @wicksipedia, @JackDevAU, @tkapa @theixdev @christianmorfordwaitessw
(Checked by Brady and Piers)
Hi,
We currently use GitHub as a CMS in SSW Rules but we have experienced a number of pain points while working with it. This issue is to document the downsides and limitations that come with using GitHub as a Content Management System (CMS) to help us make better decisions in the future.
a. Editing experience
e.g. sometimes when resolving conflicts, GitHub tells you that the browser cannot be used to resolve the conflicts.
e.g. Our custom Markdown elements cannot be previewed
TODO: Discuss if we can do anything to resolve this folder problem with @wicksipedia
e.g. Rule URI is changed from have-your-ups-send-an-email-when-it-kicks-in to ups-send-email, ideally this should automatically update the folder to be ups-send-email instead the user must edit the folder name manually as shown in the below screenshot.
Figure: Users must manually edit the folder name by putting the cursor before "rule.md" and pressing backspace then modifying the folder name
b. API limitations
c. Getting history data
Task
AB#63252