Closed fifieldt closed 4 years ago
I have explored "CMS" editors that work on top of GitHub/markdown in the past, but never found one I felt worked well. For example: prose.io or cloudcannon.com - Maybe there are some other options for hugo (instead of jekyll).
I have looked up a few markdown editing tools:
Looking into hugo-specific options
I think an ideal workflow for us would be
Conclusions so far:
I am intrigued by Federalist, which was specifically created for government agencies. It looks like that might have the concept of an 'approved' version of the content and a draft version that is implemented in git.
What's the reasoning behind a pull-request based workflow?
I'm thinking maybe there's a platform that has solved content contributors needing authorization to publish. I bet this is a solved problem, it just doesn't fit into a pull-request workflow.
Aside: Editing markdown on github is a decent stopgap measure IMO. It is indeed markdown, but formatting is far less important than the content itself, so contributors could add really meaningful content without needing to understand MD specifics.
Hi @iansinnott , I really appreciate you questioning assumptions - it's very valuable at this stage.
I suppose the underlying factors we're trying to hit are
these can of course be achieved outside a pull request workflow, I was just aiming to reuse as much as possible of what we have right now.
I agree that editing on github is a nice stopgap - I believe that's how Jonathan edits. The problem comes when needing to synch a fork with master, I think.
Tried forestry.io today. It works quite well, zero-code change. Here are some screenshots:
For PR workflow, what about doing something proposed like this:
preview
branch. preview
branch.preview
branch to mastermaster
branch as usualI agree that editing on github is a nice stopgap - I believe that's how Jonathan edits. The problem comes when needing to synch a fork with master, I think.
Oh totally forgot to reply to this. Heh... I was thinking you just edit on master 😑
@geekyme is that the forestry workflow out of the box? Or would we need to set up some "real" CI beyond the ./deploy.sh
script?
oh really nice @geekyme !
I didn't test forestry but :
@iansinnott Forestry doesn't support any workflow out of the box. So therefore we'll still need to rely on our own CI / scripts for the branch promotion.
What forestry appears to do well is it's synchronization with our GitHub files. So all our pages seems to appear on forestry for us to edit. We can create new pages from forestry too. @erickhun
Do we also need a custom domain name for the CMS? I'm guessing not since it's an internal tool.
Maybe I can invite you guys to try on my instance? You can send your emails on our line group.
https://www.netlifycms.org/docs/configuration-options/
Just had a closer look on this. Looks like netlifyCMS’s editorial workflow fits what we want for the PR workflow too
Netlify CMS looks pretty interesting. It looks like it's open-source (✅). But, can it be hosted/used anywhere (i.e. it doesn't lock us into using Netlify)?
It can be hosted anywhere (but that brings complexity if we run it).
Overall, I'm still on the fence with NetlifyCMS. What I don't like:
Code change required for "setting up" the admin panel. Every time you have some new file that needs to be editable in netlifyCMS, you need to configure it in code. Forestry don't have any code change.
Backend for Auth / file querying / file saving is needed if we don't want to use netlify. https://www.netlifycms.org/docs/backends-overview/
UI is very basic. I don't think you can edit the front matter. I think frontmatter should be editable otherwise people can't easily change things like title / weight. Forestry wins here.
Still looking to see if we can find a forestry-like CMS w/ PR flow. But I think if we can't find it, perhaps we should re-consider whether we need this PR flow.
Ok folks, I take back what I said about Netlify CMS. Had a chance to dive a bit deeper today.
PR flow works, check out the list of PRs auto managed by netlify CMS.
Front matter editing works, and preview also works:
They even got a neat kanban board to show any new posts you are creating that's still under review:
Next steps:
I would like to invite you guys to try it @taiwangoldcard/tech , lets continue this discussion in slack and give me your emails there.
Depending on whether you guys like it, I can then make a PR to the master
with my changes.
love this @geekyme . This will definitely unlock non-code person to add/edit the content
As said on slack, my concern is the Review process where everyone can publish it . But in the other hands, it’s like our process in github - everyone can merge the PR or push to master, so it isn't really a problem?
If we all agree and go ahead :
In Review
state? If you are worried about that stuff (or for the future), what I recommend is that the CMS is hooked up to a branch other than master. Then you can allow the world to edit, but people with repo rights merge in the edits to master
yes @fifieldt
An other issue is the ability to see what was the change in the netlify cms UI. Someone reviewing the change there wouldn't actually see what was the change .
So this would be tho workflow:
(this flow sounds a bit over-engineered and with lot of friction imo)
Yup ... if we want a workflow that involves 'approval' before publication that sounds about like how it would end up.
Another option might be to accept changes by default and then revert if issues are encountered.
this create a PR to GitHub ( is it possible?)
Yes for example this PR is created by netlify - https://github.com/geekyme/taiwan-goldcard-website/pull/9
PR is approved refused (but what happen for discussions? people will have to switch between netlify and GitHub?
Unfortunately discussions probably in github.
A lot of friction indeed.
Ok guys, I found a flag in netlify CMS that helps things a bit regarding the lack of roles. publish: false
. This flag will hide the functionality for CMS users to publish.
TLDR; CMS = For people to propose edits. Github = For people to approve and merge.
They can only propose edits. Heres the flow:
WDYT @fifieldt @pqvst @erickhun @iansinnott ?
Awesome, thanks for figuring this out @geekyme
Probably I'm late for this or maybe it has been mentioned already, but how about https://getpublii.com
yep checked out publii as well. I prefer netlifyCMS as it doesn't require a desktop program to be run for editing the site.
We have the potential (and need) to significantly expand he number of contributors to the content portion of our website.
The current editing process works well for those with knowledge of git, the command line and markdown syntax. However, it also means that 100% of our contributors come from a technical background.
We need a way that people who have excellent writing skills but no technical ability can just jump in and propose changes. This should be something they can run through their browser.
The implemented feature should ensure that the edits proposed by new editors is subject to approval before publication, and that all edits are tracked in version control and attributed to individuals.