The Challenge of Structure Previews

October 31, 2012 4 min read

It happened again today. Every time I introduce a client to the ExpressionEngine admin panel, the same question comes up: "how do I preview my changes before I make them live?" It’s a natural question for someone who wants to be sure their edits look right before putting them in front of a vast, faceless audience. And I’m still not sure how to answer.

Sure, there are plenty of ways to preview new posts. You can find articles, add-ons, and various methods for showing draft entries to the requisite few. That’s great.

But the elephant in the room is the Structure page, an existing and very live entry to which the client wants to make and preview edits. Our options are as follows:

1. Upgrade to Better Workflow.

It’s a brilliant $65 add-on that, among other things, clones entries and takes over the task of managing their statuses. In other words, those edits take the form of a separate draft entry that can be fine-tuned and previewed without even a whiff of change on the public website. Drafted content can then be published, replacing the current live entry’s content. No copying and pasting, no changing entry IDs, all very smooth.

Better Workflow does not, however, fully support more exotic add-ons. This prevented us from using it, for example, on a large site that benefits from Pixel & Tonic’s Assets. And we were really, really bummed to part with Better Workflow – though hopefully Assets will be supported someday.

2. Tinker with live updates at 4am, making iterations while the audience is hopefully sleeping.

I’m sure lots of us do this, but that doesn’t make it any more attractive to a client who bothers to get decent sleep.

3. Clone the page to a different URL, edit, then copy successful changes back to the original.

MX Cloner can take the pain out of cloning entries. Using that, we can get a reasonable little workflow:

  • Clone the page you’d like to edit, changing the URL and "Hide from nav?" to "Yes" if that’s relevant.
  • Submit changes to your heart’s content, previewing at your secret, public URL. (You could also change the status and restrict preview privileges to logged-in users if need be.)
  • Either scramble to simultaneously retire the old entry and replace it with the new one (URL + status changes), or copy and paste your changes one field at a time to the existing entry. For the latter, you’ll be angry if you used Matrix, Playa, or really anything other than a textarea of some sort.

It’s that last part that makes this method feel a bit silly.

4. Use a staging environment for managing changes, then push to the production environment when it’s time.

This seems like a pretty clean way to do it in theory, but what about those things that pull the two environments out of sync? There could be Freeform submissions, template tracking updates, etc. A straightforward database + filesystem transfer could wipe out important information on the production side.

Conclusion: there’s still no perfect way to preview Structure page edits.

After all this time, Better Workflow seems like the only option that doesn’t require the client to jump through hoops. (Assuming the additional $65 and more limited add-on support isn’t a hoop.)

It’s tough to ask smaller clients to invest in a flexible, modern CMS where a pretty basic (and fair, I think) expectation of previewing content can’t be met.

Am I alone thinking this? Am I missing something? Is this just a sign that I’ve identified the add-on I need to make? Let me know what you think in the comments!

Matt Stein’s face

by Matt Stein

Full stack tinkerer, sporadic blogger and Craft CMS fan occasionally found on the podcast.

Updated 6/16/19 at 8:03pm