Thinkmill / keystatic

First class CMS experience, TypeScript API, Markdown & YAML/JSON based, no DB
https://keystatic.com
MIT License
1.23k stars 79 forks source link

feature: support batch deployments #223

Closed airtonix closed 1 year ago

airtonix commented 1 year ago

Saving every little change results in waiting insert build time here before seeing changes live.

Until then technical users don't always know what's happening. Those users which do not understand or know that git is underneath keystatic will be confused when they click "publish/save" and it doesn't show up on the site straight away. You can tell them many times: "yada yada yada, it takes 10 minutes to deploy", but they'll forget. (I know, I recently had to deal with this in a side project)

Ways to handle this:

  1. the editorial workflow #222: the kanban board can have an extra column:
    • so when items get approved then behind the scenes they get moved from their individual PRs into a grouped PR
    • The new item in the deploy column will have a button to deploy the group or to break individual items out of the group into their own deployment
  2. With and Without the editorial workflow, some kind of global indicator that indicates a deployment is ongoing. the github api can be used to periodically interrogate the deployment status associated with the deployed PR.

DecapCMS does 2 but only cares about the deployment status for the purposes of displaying a "preview page" within PRs and not indicating that a PR has been merged and its deployment is in flight.

Finally there's probably something interesting that can be done by utilising merge queues?

airtonix commented 1 year ago

related discussion: https://github.com/decaporg/decap-cms/issues/1025

simonswiss commented 1 year ago

Hey!

We'll do some changes soon that decouple commits from editing an item, so these should effectively solve this issue of having 100s of micro-commits when working on a content piece 👍

No timeline on this, but that's something in the pipeline.