About a month ago I was contacted by a company who had a big job (from my perspective as a freelancer), a WordPress conversion project, and a very short deadline. I chatted with the project director, the developer and a few others and was hired to do a small proof-of-concept task to both determine if WordPress was really going to be a good platform for what they needed, and to try out my company to see if we would be a good fit.

The POC went very well. It served as a good intro for me to their site’s structure and content styles, and the client was quite happy with the results. They asked me to write a full proposal that would include:

  • Creating a custom WordPress theme based on their current site’s design. It needed to be a pixel-perfect copy.
  • Migrating about 60 pages of content to the new platform.
  • Creating a set of 6 custom templates that would be used as the basis for another 30 or so pages.
  • A good deal of custom Javascript and PHP programming to integrate with their CRM and cart.
  • Helping with the WordPress migration and installation on their Amazon host.
  • Training for the client’s Marketing and Development teams.

Taking the Proposal to the Next Level

I’ve gotten quite good at writing estimates in the last few years, but this one needed more care.

I have a spreadsheet that I use for estimating hours that I used to feed all the info I had about this project into and came up with a preliminary number, but I knew that was just the beginning; I was very afraid of putting in something that was too low and terrified of comitting to something so big and fast without some input from someone else who had been there before. I needed to find out what team members I needed to pull in and get some estimating help from a friend who runs a web development studio and has more experience with quotes for this size project.

I met with my friend and things really started to flow from that meeting. Ron had two employees that had some time available in the following two weeks, which coincided with the short deadline, and between them they could provide the custom programming and some plugin support for about 25 hours of time. This was great! He helped me tweak my estimate and get in an appropriate amount of time for project management and unforeseen contingencies, and in the end I felt comfortable with the range of fees we provided to the client in the final version of the estimate.

Filling Out the Team

Writing the proposal helped me get a better handle on who I needed for the team. I had my programing covered, but I called on another colleague familiar with WordPress to do some tasks for me like managing widget placement and SEO tags on all pages, and then put out a call on the Women Designers’ Group mailing list, where I’m a member, for a few others who were experienced with custom theming for WordPress.

I was very lucky to find two women who had the time available to commit. One had a lot of custom theming experience similar to mine, and the other wound up contributing as quality control.

Jumping In With Both Feet

The client was happy with our quote and so they hired us and we were off and running. We had roughly 10 days to get the project to a point it was ready for extensive review and testing by the client’s Development and Marketing teams, and then three more days until it went live. The quick timing was due to some advertising that was coming out right after the launch date.

I’d never managed a project so big nor had I ever had so many subcontractors working on a single project. In order to help me keep everything together and moving forward steadily I used two tools:

  • activeCollab, my project management site, where I set up milestones and tasks for everything in the project development sequence, and where we posted files and held discussions between team members and the client’s contact people.
  • A Google Apps spreadsheet that served as the master guide for everything. This spreadsheet took about half a day to put together. It showed every page on the site, it’s statuses for content migration, custom templating and programming if needed, notes, review/QA status and other elements. One of my subcontractors serving as QA/QC checked off pages in review as they were completed, and the other subs had access to mark their progress on various tasks for each page.

The client was pleased with our implied level of understanding of the minutiae of the project based on the spreadsheet and basically let us go, checking in every day and asking/answering questions as needed. They kept a very close eye on our work, and during the entire course of the project we ran into very few snags. Things went pleasantly smoothly.

The Team!

Could not have done this without the subs, in particular the custom themer that made it possible for us to offer additional features in the templates that we originally told the client would not be possible given the short timeframe, and the programmer that took the initiative to move things forward based on ongoing conversations with the client’s lead developer.  The choice of subs turned out to be very nearly perfect and it was fortuitous that everyone on the team had the time to throw at this project during the work period.

Launch and Beyond

We had a few hours of hiccups when the site was migrated from my production server to the client’s Amazon Web Services hosting, but the project launched on time  and the client was very pleased. I provided training sessions and extensive documentation for them, and we’ve established a strong working relationship that is moving into Phase 2 at this time.

The Most Important Things I Learned

  • Allow plenty of time for project management and be sure to put in an equal amount of time for contingencies because you just never know what’s going to happen.
  • Get the right people to help.
  • Stay organized, used tools accessible by all team members to stay on top of every task taking place across the board.
  • Find some time away whenever you can. I wound up with a nasty bacterial infection during the launch phase that began as a simple cold, I’m pretty sure it was due to the 12-14 hour days I put in near the end.

And, having a good client is also a huge contributing factor for the success of this project. The Marketing and Development staff and the project manager for the client were all passionate about their company, knowledgeable (or enthusiastic and willing to learn) about how our contributions would be affecting their daily work after launch, and easy to work with, and that was refreshing; it helped us keep moving forward at a rapid pace with few interruptions. The project was complex but the experience was great for me. I’m looking forward to working with this client in the future.

Ever had trouble finding the right widget to display what you want? This happens to me a lot.

Earlier today I was looking for a recent posts widget for a restaurant menu that would let me:

  • Show only one post from a particular category
  • Let me hide the post title
  • Show the complete content of the post
  • Show the date with PHP formatting
  • Retain the CSS formatting of the post

I tried four plugins before I found Justin Tadlock’s amazing Query Posts plugin. It does all of those things and much more, with around 40 options. It’s like the Swiss army knife of recent post widgets.

Last year, sometime in February I think, a couple of design/marketing friends and I got together for coffee and one of the things that came up in conversation was an idea for a particular type of website that’s not represented in our region of the country. Let’s call it Idea X, just for kicks.

I was intrigued by Idea X – I’d been playing with the concept for a few months, but when it was also mentioned by someone else, I really couldn’t get it out of my head.

I started doing some research into how to implement Idea X in a website. I wound up installing a copy of Joomla and spending time looking for the right combination of plugins to build my site. Months later, I’d spent a lot of time on this project – a huge amount of time customizing the plugins’ styling, and learning how to build a custom template for Joomla. But it just wasn’t working the way I wanted it too, and I was at a standstill on getting help for the main plugin that formed the glue of my site.

I had a few colleagues test the site, and the results were not good. Last summer, I wound up walking away from the project for awhile.

Enter WordPress

Then, around July or August, I got a couple of WordPress projects back to back. I didn’t know how to theme WordPress at that point, so I hired someone to do it for me. To make an icky little story shorter,  my designer totally missed the mark and failed to deliver. That turned out to be a huge blessing in disguise – I was forced to sit down and learn how to theme WordPress myself. The first one took 10 hours; now I can do it in 2-3, pixel-perfect.

So after a few more months and a lot more WordPress work, I once again found myself thinking about Idea X. I wondered if it could be implemented in WordPress?

The short answer: not easily. The long answer: how much time do you have and are you willing to spend a large amount of it hunting for obscure answers on Google?

I jumped back into it and set up a WordPress site. I found some really intricate and well-written tutorials about doing Idea X in WordPress, pretty cool stuff, although most of it was not up to date.

I recreated the site, plus a few extra features, in WordPress. I translated my custom Joomla template over to WordPress, added in the recommended plugins, then got my hands dirty learning how to do programming to customize the plugins according to the tutorials I found.

This version of the site took less time than the Joomla one. When I sent it out for testing, the results were mixed, but better – it was clunky, but it was a good idea. It didn’t do ‘y’ or ‘z’ the way it was expected too, but my testers could see the value of such a site.

Some of the things that were problematic for the testers were issues that I couldn’t resolve – they were products of the outdated plugins, and I didn’t have the programming knowledge to fix all of them. And I was beginning not to like the template anymore.

Frustrated, I walked away again.

Round 3

But I came back over Thanksgiving weekend – I scrapped what I was doing, installed a fresh copy of WordPress with none of the old plugins, and reworked the template until I was happy.

I read a chapter in a book that taught me how to build a job board (one of the extras I’d planned) from scratch – I happily followed the tutorials and then spent a few weeks customizing it. It’s cool, it looks pretty good and it works – and I learned a lot in the process, learning to work with some of the tried-and-true WordPress plugins like TDO Miniforms.

I did more research on Idea X and WordPress, hoping to find something more current. I thought I had – I purchased a plugin, installed it, was very pleased with it right out of the box and spent, again, a lot of time customizing the look and feel.

Until the developer dropped off the radar in March. He took down his forum and stopped responding to any support requests. Custom fields entered using his plugin are not saved to the WordPress database, and I lack the time and inclination to fix that.

Today I found another plugin – current, with an active forum and support ticketing system. I more or less like the look of the showcase sites and the demo, and sent a list of questions to the developer to see if this will be my holy grail for getting Idea X off the ground. I’m not opposed to switching again, but I think this will be the last time I do it, if it turns out that this plugin will indeed do what I need it to do.

At least for a few months.

I spent a few hours this weekend going over my website, Red Kite Creative, making some changes to improve readability and better show what I can do for clients. I haven’t really done this since the ‘new’ site went up about 15 months ago (not to the whole site, anyway)… it’s ironic that it’s hard to keep my own site up to date, as a web designer. Sigh.

So, I made some changes:

  • Cut back the text quite a bit on many pages, including the home page. I replaced blocks of text  with lists when possible, or put them into blockquotes to set them apart from regular paragraphs. Less wordy, more concise.
  • I removed the ugly little email newsletter sign up form from the top section of my site and moved it into the sidebar, above the fold. I redesigned it to be smaller, but with a big obvious ‘Sign Up’ button. Before it wasn’t so obvious, and I haven’t had a lot of registrations for my newsletter in the past.
  • I added information specifically about WordPress – WP is really becoming my platform of choice lately and I want to promote my skills. I added a block of content on the home page about it, and a brand new page just for WordPress.
  • Created a new services page; the old one was way too long.
  • Replaced the old services menu with a new one that always shows subpages.
  • Replaced the old ‘website makeovers’ page with a new redesign page – I’m using HighSlide to show before-and-after screenshots of redesigned sites.
  • Created a new page for custom portfolio and gallery design. I’m a landscape architect by education, and I work with a number of architects, designers, photographers and artists. I really love building imagery-focused sites and want to make this a more prominent part of my business. I showed a few example screenshots from some of my portfolio projects on this page, too.

I’m happier with the site now – it’s much cleaner-looking and there’s not as much reading required to get the point across. I hope prospective clients agree!

Very happy to report that the new site for Loveland Habitat for Humanity launched this week. A pro bono project, I’ve been working closely with Habitat and Rob Advertising to ensure that the final result is easy to use (both for visitors and the Habitat staff that will be managing and editing the site), attractive, and focused on delivering the organization’s message with clarity.

I chose WordPress as the development platform because of its flexibility and low learning curve for the admin users. The new site integrates a custom theme, blog, Google events calendar, donation forms and Success Stories slideshow. WordPress will enable the Habitat staff to grow the website as needed in the future, and add new functionality without much fuss.

I’m also adding another custom WordPress site to the portfolio today, Front Range Factoring. FRF stretched my WordPress capabilities; the project’s intent at the beginning was adjusting a purchased theme for a live site, but in the interest of time and efficiency the client and I decided to create a new custom theme that would be easier for him to manage after relaunch.

Using the WP Framework  I worked with FRF to come up with a fresh design for his existing site. I incorporated a tabset plugin and column plugin for some of the internal pages, and learned how to add widgets wherever one might be needed in the page.

Finally, Kontour is the third new project going into the portfolio today. Kontour’s owner is a graphic designer and typographer, and she approached Red Kite to create a clean, well-commented XHTML/CSS template set that she could apply to the rest of her site redesign. I created a slideshow for the home page and a gallery template as well.

I have a pet project using WordPress that’s close to the final testing stage. I really wanted to have the page that opens when a user wants to edit their profile look like the rest of my site, not like a stripped-down version of the WP dashboard.

I’d been trying to use a combination of  the Customize Your Community plugin, which puts the login, registration, password reminder and profile pages into your theme, but Create Your Community was having a conflict with the custom user meta data display. After a number of attempts to get around that problem, I decided to go ahead and do it the other way – customize the core file responsible for the ‘edit profile’ page, which is /wp-admin/user-edit.php.

Now this work only effects the ‘edit profile’ page, it has no effect on the login/registration/password reminder pages. For that, I found the Theme My Login plugin. Works well, puts those functions right into your theme, and is oretty easy to style with CSS.

So now I’m a happy camper. I wish there’d been a way to easily make the profile page work with my theme, but going this route was not that big of a deal. I simply took the header and footer sections from my theme and replaced the “include(‘admin-header’.php);” and “include(‘admin-footer.php’); statements in /wp-admin/user-edit.php. It took only about 5 minutes to get this looking right, and now I’m just doing a little bit of styling on the form itself.

Of course, whenever WP updates I’ll have to replace the two code snippets in the new user-edit.php file. That’s not a huge deal. But eventually perhaps WordPress will have a feature that enables one to keep all the user accessible pages in the theme rather than on the admin side.