First of all, I’ve been thinking of restarting my blog for a long time but wanted to do a static site. I tried half a dozen different systems and hated all of them, ended up writing my own, finished it but hated using it, and then discovered Publii. It’s so excellent! Pretty much everything that I wanted in the one I was making myself, which I was happy to abandon completely. Excellent work, especially with being able to push straight to GitHub and Google Cloud, the two places I host!
The only thing I’d love to see that would be a pain to hack in myself would be a more robust backup system. A few thoughts:
- Right now, you can make a backup of your site source, but it’s still just a local backup, and you have to deliberately trigger it. A way better solution would be an option to automatically produce a site backup whenever you sync your site, and have an option to commit that backup to a separate repository or cloud service
- The one problem with this is that your site’s media is included with every backup, which makes regular backups impractical unless you’re also doing regular cleanup. Being able to send the backup to a repository instead, uncompressed, would mean that you wouldn’t be backing up your media over and over, and would just have a repository with all the files properly version controlled.
- Even, even better would be all of that, plus having the post editor save previous versions so you can roll them back in the post editor itself. But that might be a massive pain to implement — a quick and dirty solution would be to just have a “previous versions” link in the post settings that links you straight to the file in your source repository. This would require the backup destination to be a repository, and not just a cloud service.
With all that said, while it would be great to see this out of the box, it would also be super easy to implement yourself if there was a “run external command on sync” option, which would let you inject a command into the build process (with options to run a command before the build, after the build but before the sync, or after the sync completes). Being able to run a single git command after a sync would accomplish pretty much everything I need.
Anyway, thanks for all the work being put into Publii, It’s really excellent.