by Joel Steidl in Development on Mar 27, 2009
About two years ago we threw in the Textpattern towel - not because it was a bad CMS, but the type of sites we were building had simply outgrown it. Since then, Paramore|Redd has developed over 40 sites on the ExpressionEngine platform and learned a lot along the way.
The hardest part about making the transition to ExpressionEngine (EE) was just getting it set up and configured. We did things in the wrong order, which led to way too many unnecessary clicks and lots of wasted time. Since then, we’ve developed a workflow that has worked well for us, but we are looking for ways to improve. Chime in and let us know your approach.

From the information architecture (sitemap, wireframes, etc.) that you’ve hopefully done, craft a document that details what weblogs, custom fields, categories, template groups and add-ons (extensions, plugins, modules) you’ll need for the project. Take a peek at one of our EE planning documents. (It’s just a simple .txt document.)
Follow the good documentation EE provides a couple times, and you’ll soon memorize the install process.
We have a default set of extensions, plugins and modules we use with every project - I’ll save that for another post. Compile your list and install them all at once.
With your EE plan in hand, go ahead and create the custom fields and custom field sets you will need at one time. I find it helpful to add inline instructions at this point so it doesn’t get pushed when you run out of time.
Set up your category groups. You can define your categories as needed.
If you think you’ll need additional statuses or status groups, set those up now.
Stick to your EE plan and adjust as you dive in.
The guys at Experience Internet in the UK released a super handy add-on called SL Developer Info that allows you to see weblogs, weblog fields, template groups, templates, categories, statuses and file upload locations all in one place. As you integrate your HTML with your templates, keep this window open to give you easy access to everything!
There you have it - a more efficient approach to the ExpressionEngine setup process. Master step 1 and you’ll become and all-star in no time.
Sorry! This entry is no longer accepting comments.
Interesting read. I do most of that myself but as a word of warning to people new to ExpressionEngine - please don’t delete the standard site and search template groups as being new to ExpressionEngine these may provide very helpful information that you may not find in the online documentation.
Just a thought though.
Everything else is very very good. :-)
Best wishes,
Mark
Great write up Joel! It’s great for those beginning ExpressionEngine to see the big picture so as to keep from becoming too intimidated. It’s definitely daunting. But you’re right, after running through it a few times, it gets real simple!
This post is super helpful! Sharing how you write up your misson-critical info in a simple text doc is really illuminating - thank you!
It’s more of a power user thing, but you might consider some tips on removing index.php from a site - it’s pretty de rigeur these days (I also see you’ve done it here).
I have started developing a set of standardized Capistrano Recipes for Expression Engine. I already have some good ones written. This has helped standardize the deployment process we use for EE websites.
http://github.com/camwest/expression-engine-recipes/tree/master
Feel free to fork and add your own recipes!
“Enable template revisions. You’ll thank me later.“
I would replace that advice with: Enable the ‘Allow Templates to be Saved as Files’ feature, and make your EE install a Subversion (or CVS or Git) checkout. You’ll thank me later.
:)
Interesting to see your approach to EE setup - thanks for sharing. You might be interested to take a look at the eeSiteKit installer script which permits creation of custom EE site configurations http://eesitekit.com/installer . I also find the weblog/section setup is informed a lot by the combination of modules/extensions chosen for a particular project (especially if you’re using something like nGen Structure).
All the best… Martin
Thanks for the great feedback so far.
@Mark Bowen - Completely agree about no ttrashing the default templates if your’re a newbie.
@Allan White - Definitely also a good time to remove index.php, we use the LG .htaccess generator for that.
@Cameron Westland - This looks really interesting…thanks for the link.
@Matthew Pennell - I would love to hear more about your process with versioning outside of EE. Suppossedly 2.0 is going to make saving the templates as files more a viable option.
@Martin Luff - I’ve never eeSiteKit before, looks very in depth.
Thanks for the interesting article Joe, and the praise for SL Developer Info; I’m glad to hear that people are finding it useful.
Cheers,
Stephen
One thing nobody seems to have touched on thus far is the value of having a base EE install, with all your default add-ons installed, terminology set, and so forth.
Add that to source control, and use it as a base for all new EE sites… saves loads of time.
Cheers,
Stephen
@Stephen Lewis
I’m working on an alternative solution to that, a capistrano task that will set up a brand new instance of EE.
The base install method works in the meantime.
I’m hesitant to put too much time into this sort of thing though because I feel like EE2.0 will come out just as soon as I’ve got a fully automated solution =)
@Stephen Lewis
Thanks for making a great add-on!
I’m always hesitant to put together a base install for EE because of the risk of add-ons being out of date etc… I hope 2.0 will take the LG add-on updater approach so it will just let me know when something is out-of-date.
Great post, always looking for ways of to speed up the process. Another great first step I take in the process is configuring my config.php to work locally and remotely without messing with any of the CP settings for template paths etc. Can’t quite remember where I got the snippet from, but here it is to share http://pastie.org/432110 ...then I create two files, one for local dev and one for remote and then just overwrite the config.php depending on what enviroment
@Austin Siewert Really nice tip on the config.php file. Thanks for sharing.
this is really good one
Thanks for the great tips and tricks. This is going to come in handy.
Great post Joel! Similar to how we do it but… more organized. Haha.
I’m ready to see that default extension list.
Adios.
Joel, your post was a happy find today because I’m in the midst of writing down my standard steps/considerations for an EE install. So thanks for sharing!
A few other things I’d come up with, because I sometimes forget about them, are to set up the 404 page (template, preferences, and reference in .htaccess); add the license number to the General Config; and, if a client is going to be maintaining the site as a non-super admin type, add a link to their site at the top of the control panel for their account.