How Perch helps you to manage your content management system

On A List Apart Rory Douglas writes,

“… no two CMS implementations should be exactly alike. Each site will have its own needs, and the CMS should be customized to match those needs.”

He then goes on to detail a number of ways in which your CMS should be customized to help your users. These methods match up very neatly with the ways we encourage you to work with Perch, and here are some pointers as to how to do that after reading Rory’s excellent article.

“With many content management systems—Wordpress and Drupal spring to mind—content types come default with a big text field where anything can be entered. Anything you want! Consider limiting this freedom as much as possible by giving discrete elements discrete inputs.”

Perch is entirely designed around this concept of structured content. While you could just stick in a big WYSIWYG we try to discourage it! Any data can have a separate field, and templates can be created to represent chunks of reusable content.

“It’s a good idea to use the most restrictive field you can for an element.”

Choosing the right Field Type is key when creating Structured Content and Perch gives you lots of choices. You can also create your ow Field Types if you have a kind of content that isn’t represented by one of ours.

“Most content management systems let you edit which buttons appear in the WYSIWYG. Do it! If the field is a text field that will need an occasional link, get rid of all the buttons except the link button. If a text area only needs basic text formatting, leave the buttons for bold and italic, and maybe ordered and unordered lists and links, if it’s possible they’ll be needed.”

We actually ship Perch without a WYSIWYG and try to encourage the use of Markdown with the MarkItUp editor, however you can add editor plugins and with our default installs of CKEditor and Redactor those are fairly stripped down already. However you can customize these using the instructions on their respective sites – we haven’t done anything strange to stop you doing that.

“Here’s something you can do to figure out what permissions a user will actually need: when you create a new user, turn off all permissions. Log in as that user in one browser, and then log in as an admin in another. On the non-admin account, go about accomplishing all the tasks that user will need to do and, as you go along, add permissions from the admin account as needed.”

I love this tip for working out what permissions your user will need. Giving people less access can make the editing experience easier for them as they have fewer choices to make. You can always open up more to them as time goes on and in Perch, you have the ability to do that.

“… if you’ve given discrete elements discrete input fields, you can guarantee that everything has the proper, accessible structure. Most content management systems do this naturally for h1 headings—they wrap your page title in an h1 unless you code otherwise. You can extend this functionality to other items. Put that callout text in an aside. Put that time in a time”

A great point about using discrete input fields is that it means you can enhance the accessibility of your site without the user needing to think about it.

“When possible, every image on your site should have its own image-uploader field, and you should be able to drop an image of any size into that uploader field and have it resized, optimized, and put into the appropriate responsive markup.”

Our approach with Perch means that you can easily use the new responsive images markup on your site, and of course we generate all of the required image sizes for you based on the template you have created.

I’d recommend you read the full article as it is full of tips that you can easily implement within Perch, including some suggestions as how to talk about this approach with your client. The good thing is that if you use Perch you already have access to all the tools you need to work this way, so it shouldn’t increase the cost of builds.