Bright Rocket

Fly Smart!

A blog about design, business and life.

The ExpressionEngine Designers Website Checklist

Posted on June 12th 2012 to Design, ExpressionEngine

After attending the 2012 Engine Summit and hearing Emily Lewis talk about the value of having checklists to keep her work organized, I was inspired to pull together a checklist of my own which I've shared below. I set these up in my project management software ActiveCollab and copy them to each new project as needed.

I've organized the list by a few of the key project milestones I tend to plan around. My unique twist on this checklist is that as I develop websites in ExpressionEngine, point out where various EE addons can help make certain tasks easier, faster or better. You'll notice I list several alternatives for each item as each tends to do things a little differently and I like to make a case-by-case decision about which addon is right for each project. I also don't always use addons for each item, but I do take a moment to see if it makes sense. A good rule of thumb for me is to ask "Do I want to have to maintain/update this addon down the road?", which helps me to keep things on the conservative side.

A special thanks to Lea Alcantara for given this list a look and making some suggestions. Did I miss anything major? Please let me know in the comments.

Setup Phase

  • General

    • Buy Domain Name & Document

    • Setup Hosting & Document

    • Create MySQL databases & Document

    • Redirect to (or vice versa) for SEO

    • Create email addresses & Document

    • Setup staging server & Document

  • ExpressionEngine Specific

    • Remove unnecessary files from latest EE download

    • Zip files before upload and uncompress via server (Article)

    • Security: Install EE above public_html directory

    • Security: rename admin.php

Pre-Launch Phase (2 weeks before)

  • General

    • Create 404 Pages ( SS Friendly 404 )

    • Finalize Page Title scheme

    • Create Favicon

    • Create iOS icons

    • SEO Optimize all pages (SEO Lite / Crosslinking / NSM Better Meta )

    • Paginated content links rel=”next” and rel=”prev”

    • Use Google Webmaster to force crawl of new pages

    • Sign up for Google Webmaster Tools email forwarding (notes issues with crawling)

  • Per Page

    • Validate HTML

    • Ensure Alt attributes for images

    • Check design in various browsers

    • Check design at various sizes

  • ExpressionEngine Specific

Pre-Launch Phase (1-2 days before launch)

  • Spell check/Grammar Check all content

  • Test contact form

  • Test email addresses

  • Double check contact info

  • Clear out TEST data

  • Create robots.txt files

  • Send out Launch email to client

  • Create Google Site Map (NSM Better Meta / sitemap-module)

  • Add 301 redirects for old pages to new pages

  • Check for broken links (Xenu Link Sleuth)

  • ​Add Google analytics code

Post-Launch Phase

  • Register website on Google, Yahoo, Bing

  • Promote on various gallery sites

  • Promote on Facebook

  • Promote on Twitter

  • Update Portfolio

  • Write Case Study

3-6 Month Followup

  • Update EE ver (if needed)

  • Update plugins/addons (if needed)

  • Backup website / db

  • Check spam in members and freeform

  • Review site analytics

  • Review Search log

  • Check formatting of site results in SERPs


Don’t Just Sit There: Getting Fit with a Treadmill Desk

Posted on June 03rd 2012 to Life

I’ve joined the ranks of (another) very geeky group of people, those who now instead of walking to work, walk while they work. The reason is simple, I spend an average of 10 to 14 hours a day in front of the warm, comforting glow of my computer screens. Like many web designers, computers and the internet aren't just my job, they are my primary communication tool and favorite entertainment source.

Been There, Done That, Got the T-Shirt

After trying with varied levels of success to hit the gym on a semi-regular basis and suffering enough serious injuries at my kickboxing and Taekwondo, I decided I need a way to get in some motion in a way that I both couldn’t avoid, and would allow me to do other things I tended to enjoy more. I do want to note that I don’t plan on giving up free-weights and other forms of exercise, but I had to be realistic and find something that I could do despite almost any circumstance or how busy I was running my business.

Sitting is (Apparently) Killing Us

Ok, that header is both inflammatory and tongue-in-cheek. The last few months the internet has been bombarded with articles and scientific studies that claim sitting around for 4 plus hours a day is probably very very bad for your health. Here’s just a few.

Now leaving the shock-tactics of these articles titles aside, which frankly annoys me more than a little. The basic premise passes the common sense test in that more motion = more calories burned, and being inactive for long periods of time probably isn’t so great. After many reminders from my lovely wife to “get up and stretch”and attempts to use a software program such as Big Stretch Reminder to remind myself. I decided I needed something that fit my life. Too often was I ignoring the remainder due to being engrossed in whatever I was doing at the computer.

What the Hell is a Treadmill Desk

My solution to this problem was a treadmill desk, a combination of either a standard gym or modified under-desk treadmill and a standing or height adjustable desk. In many cases, people just use a standard treadmill and slap a board or shelf system across the top. A few different examples are below.

Funnily enough, if you are a fan of fiction and scifi author Neal Stephenson, his latest book Reamde contains two different characters who use the treadmill desks. An indicator of how this idea is becoming more mainstream.

 My Setup (Is Cooler than Yours)

The Desk

For my desk I went with a GeekDesk Max with a large frame and the widest desk they had available at 78.75” Wide by 31.5” deep. I chose the GeekDesk for a few reasons. First, it was an adjustable desk versus a standing desk. I just couldn’t see myself always standing at my computer and was wary of the negative effects of just standing, namely blood pooling in my legs and creating spider-vein and varicose veins. I also wasn’t looking forward to the constant pressure of standing on sore feet.

Second, GeekDesk offered the longest desk at the best price. TreadDesk’s DT-7232 was almost twice the price and still wasn’t as long, while the TrekDesk reviews mentioned a bit of shaking while at a brisk pace, with one customer even posting shots of additional braces that were added for stability. I was also turned off by the TreadDesk’s rather ugly appearance. I’m a fan of attractive, well made things and I think I would have been disappointed by TreadDesk’s plastic surface. The large GeekDesk was almost the same length as my Ikea which had room for two large LCDs, surround sound speakers, backup drives and desktop unit.

Lastly, unlike the desks offered at TreadDesk, the GeekDesk was programmable and featured an attractive LED readout with its current height and 4 easily programmable settings. I didn’t want to spend time fiddling to get the desk just right every time I sat down or stood up. You can take watch a video of how it works.

The Treadmill

I opted for the TreadDesk, which is a treadmill especially designed to work with a standing or adjustable desk, with a few important features that made me want this vs a traditional treadmill.

  • No side-arms to get in the way
  • A control panel that I could place anywhere on my desk and adjust as needed
  • An 18”inch wide belt so there was less chance I could accidentally step off the tread
  • Most standard treadmills are not designed to run for more than an hour before stopping automatically to protect the motor
  • Fine control at low speed (adjust by .5 mph)

There wasn’t much choice in this area, though the Signature line of under-desk

treadmills was comparable, their model featuring an 18” inch wide belt was over $100 more and featured a much larger control panel that had to be stored in a slide-away drawer under the desk, something that would only get in the way for me.

Putting It all Together

Below is what my current setup looks and both the standing and sitting positions.

Standing Desk, Full Height

Standing Height

Standing Desk: Sitting Height

Sitting Height

You’ll notice that in the sitting position, I’ve got a wooden platform sitting on top of the treadmill portion. The issue I had was basically that I wasn’t able to use a castor based chair, while the treadmill was wide, the castor based legs of my chair were just about the same width, and I would start to roll off the treadmill when reaching for something or getting up. I could have solved this with a stool-style chair, but I wanted the ability to shift around a little to get comfortable and I was worried that the feet of a stool or the casters of my existing chair would eventually scratch and tear up the belt over time. So I went to my local handyman, Phillip Meza and supplied him with some drawings I created for a platform that had a lip around 3 sides and 2 guide rails under the platform, all made out of high quality lumber. This way I had a rock solid platform that wouldn’t allow me to slide off the tread (and crush my dog!) but was easy to lift off and lean against my wall when not in use. It worked like a charm and the last piece of the puzzle was in place for my setup.


Standing Desk, Full Height


Room for improvement

I’m very happy with all the items I invested in for this setup but I did want to mention areas of improvement in both the TreadDesk and GeekDesk Max.

The TreadDesk treadmill has a very solid build quality, but I was dismayed to see how rough and exposed the cable for the control unit was. Both the ribbon cable and connector were very bare and exposed (see below image), I would have liked to see a thicker and better contained wire setup there. I also thought the large white bevel around the display was distracting and larger than needed. I would have preferred a thinner and black plastic, as most home electronics tend to be. Also, the “Fast” and “Slow” buttons are on opposite sides of the control panel and the color coding was poorly thought out. I hope they move the Fast/Slow to the same side and use the same colors to connect the two visually. I would have also like the ability to store a few pre-set speeds that I tend to use most often, as I found I have about 3 settings for different work modes, from 1.0 mph for concentration heavy work to 1.7 mph  for typing and 4 mph for jogging while watching a movie. However, my biggest complaint is that the power cord doesn’t plug completely into the socket of the desk’s power supply.I had to carefully tie the cord to some of the metal framework to stop the cord constant falling out when the height was adjusted or when the cord slightly nudged.


Standing Desk, Full Height

Control Panel Wiring: Lacking Polish

I’m also very happy with the GeekDesk Max but think there is room for improvement. The control panel, while well designed and attractive, can only be mounted on the right leg of the desk. The addition of a mount point on the left leg would have been more convenient to me and perhaps the left-handed and I don’t think the addition would not have been too costly for GeekDesk. I’m mostly annoyed by the rubber band around the edge of the desk surface, which has a sharp edge to it that scratches and cuts into my wrists slightly  when I leaned against it. I hope that in a year this will have smoothed out through use.

Final Thoughts

I use my treadmill from 4 to 7 hours a day and I’ve walked almost 40 miles in the first three weeks of use! I’ve dropped 6 pounds through walking and generally have more energy and stamina. I’ve also started to log my daily walking and calories burned, which you can view as it’s updated here.

This wasn’t a cheap purchase, but the ability to write, answer emails, play games and run my business while moving is an investment in the quality of life over time and I think the expense is well worth it. It’s hard to place a price on more time with friends, family and loved ones.

A Comparison of WYSIWYG Editors for ExpressionEngine at EE Insider

Posted on April 16th 2012 to Design, ExpressionEngine

I've been working several evenings and weekends to create the first (that I'm aware of) comparison of WYSWIG editors in ExpressionEngine and EE Insider was kind enough to publish it! If you've stuck to the same WYSWIG editor in EE for every project or have been using something else like Textile formatting, this is the article for you! I spent a lot of time trying three popular editors to see if I should switch from my default (Wygwam). Read and share!

Using Pages and Low-Reorder for Flexible Navigation and Site Structure

Posted on March 04th 2012 to Design, ExpressionEngine

EE Insider strangely enough just asked the question I recently had to ask myself. Namely, how do EE developers manage navigation and site structure in EE? A quick search of Devot:ee reveals several solutions to this age (ok years) old problem. You could go with the powerful and well regarded Structure ($65), the fairly new on the scene Navee ($35), toss in some Crumbly ($45) action for bread crumbs. All these solutions are awesome in their own right and well worth the money, but I was looking for something simpler and in Structure's case, less complex to initially implement and learn.

My Requirements were as follows.

  • Must work with the existing Pages module in ExpressionEngine
  • Allows me to generate a dynamic menu based on channel pages for each main section of the site.
  • Allows me to order the pages in the menu via drag and drop
  • Must work well in an existin site's dropdown shown below (In this case, I am working with Suckerfish dropdowns done several years ago by the last dev)

Enter Low Reorder ($16), an addon that I think is probably not the first that come to your mind when you are thinking about navigation and site structure. I've used Low Reorder before on a project to simply move the order of entries around on a listings page and to control the order of people on a staff page before, but what I totally missed what it's integration with EE's native category abilities. Hidden away under each channel reorder settings is the option to "Show entries per single category", which is where all the magic happens.

Low Reorder Category Settings

Turn that on, and you'll now be able to choose a category before being shown the list of entries to order. This is when I had my "aha!" moment.

So with my new found knowledge in hand, I created a category group that corresponded to the main navigation sections that required "static" page items. Next I assigned each Page entry to a specific category.

Next I edited the static navigation to include a few things. Each navigation category such as "About" had two entry tag sets. The first pulls in only the first item, as defined by my custom Low Reorder field called "cf_page_order". In the next set of tags, I removed the limit, and replaced it with an offset of 1. The code should look something like below.

<li class="menuItem">
			{exp:channel:entries channel="chan_pages" disable="member_data|pagination|trackbacks" dynamic="no" orderby="cf_page_order" sort="asc" category="7" limit="1"}
			<a href="{page_url}" class="first dir" id="page-{entry_id}">{title}</a>
			{exp:channel:entries channel="chan_pages" disable="member_data|pagination|trackbacks" dynamic="no" orderby="cf_page_order" sort="asc" category="7" offset="1"}
			<li><a href="{page_url}" class="last page" id="page-{entry_id}">{title}</a></li>

I wanted to make the page creation and order intuative for my clients so I utilized Zoo Flexible Admin to flesh out a nice simply navigation where they could create, edit or order pages without having to hunt around.

While this solution isn't as flexible as some of the other solutions out there, it worked well for this project and I have a feeling I'll be using it again. I'd like to reduce the number of Entry tags used, and find a good solution for including static items in the navigation in the next version.

I'd love to hear any feedback or improvements you might have.