Managing a static site, like this one generated using Jekyll, can be difficult, and for non-programmers nearly impossible. I started searching for a better solution.
Problem: Give non-programmers a way to easily update their own site content
Nerd Level: ★★★☆☆
&TLDR;
- Create the site in Jekyll, other generators could be substituted here.
- Push site repository to production server, just the files, note _site/
- Copy new content files to shared Dropbox folder.
- Dropbox syncs those files to your webserver.
- Webserver recognizes the file changes and triggers a script to run.
- Script clones the site repository for the site code base.
- Script clones a build script that handles site rebuild and file movement on the server.
- Script cleans up.
Taking this approach requires a few things, a bare bones webserver and some basic server chops. There are other options for updating, deploying, and managing your static site. One popular option is to use Github Pages to host your site for free. All you do is develop your site locally and push to Github, the rest is automatic. The problem I found with Github pages was that plugins weren’t supported and I like more flexibility in my hosting.
You can always build locally, however complex your static site, and push to a remote webserver. But I wanted something easier, something that removed as much friction for updating my sites. Honestly I wanted a solution that I could set up a technically savvy client to use. I want to move away from using a CMS like Wordpress or Drupal and use static sites as much as possible.
This allows clients to update their own content without developer interaction. It makes managing our own site more seamless.
Example deployment script:
1 | #!/bin/bash |
Additional scripts coming soon