As a web developer, whenever you take on new projects you’ll often find yourself doing the same tasks, over and over. I find it convenient to keep a checklist as a template that I use for new projects.
Development
- Create SVN repository
- Create and add favicon. (Add <link rel=”shortcut icon” href=”/favicon.ico” mce_href=”/favicon.ico” /> and upload favicon.ico to the root)
- Write documentation for environment setup (i.e. getting the site running locally)
- Are all the pages bookmarkable? A lot of Ajax sites don’t save state when bookmarked.
- Is the back button broken? Same deal, users click ‘back’ expecting to get to previous application state but end up going to the wrong page.
- Similarly, when you leave the page and come back, does it save state? If it is generated in JavaScript, you need to add hidden form fields and extra code to preserve the JavaScript state.
- Make a contact form for the site that sends to contact@[your domain].com. Add user’s browser info into a hidden form field that is POSTed along with the message and included in the email. That way, if the user complains about a bug on the site, you can tell what browser they’re on.
- Add meta tag for suppressing the IE image toolbar (annoying toolbar that appears when hovering over images)
- Make sure site is in standards mode (not a problem with my templates but surprisingly an issue with a lot of clients, when working on existing code)
- Set up Selenium for front end testing of the site
- Create Google Group
- Set up Unfuddle, Trac or another issue tracking tool
- Create milestone for next “big” goal (e.g. working demo, alpha launch, public beta)
- Triage site features into two buckets, launch requirements and backlog.
- Refine and prune launch requirements until they are absolutely clear and have minimum risk given the project timeline and/or budget
When I start a new project from scratch I use templates for the HTML and CSS. But, when working on someone else’s code, I can’t use templates. I find it hard to remember all of the little enhancements and code tweaks that improve the site. So, having this list is handy when reviewing someone else’s site and suggesting improvements or checking a site you built before launching it.
In addition to the general tasks above, you may have specialties in other areas such as usability, SEO or performance. Here are some sample tasks for these areas. For something like SEO, there are literally hundreds of things you can do to optimize the site, so I haven’t listed that many here in the interest of brevity. But feel free to add your favorite tips and tricks for any of these categories in the comments.
Usability
- Site review for issues too numerous to mention here (e.g. difficult to read text, use of “Click here” for links)
- Test 1-5 (or as many as you can get) first-time users who have never seen the site before and watch their behavior. Hey, there is even a Reader-Friendliness Checklist.
- The General Usability Checklist is ok but I really like the article Heuristic Evaluation, A System Checklist — not for websites but highly interesting nonetheless. It’s from 1993 so kind of a relic, and some of its suggestions are questionable to say the least, but worth checking out. I like this one: “Is each individual icon a harmonious member of a family of icons?”
SEO, Accessibility and Traffic Analysis
- Install Google Analytics site tracking code
- Add Google Webmaster Tools verification file
- Generate and submit XML sitemap to Google Webmaster Tools
- Make sure all images have alt attributes
- Make sure images that are purely ornamental have alt=”" rather than, for instance, alt=”divider”
- Use CSS image replacement for images that feature text
- Serve pages Gzipped, with far-future expires headers (and other Steve Souders recommendations)
- Add JavaScript for making IE6 cache CSS background images
- Review the site for potential uses of CSS sprites (mainly icons/buttons and custom corners)
- Concatenate and minify JavaScript and CSS before serving (careful with the CSS! maybe just strip out comments and whitespace)

Activity
Geir Freysson
Andrew DiFiore
zeming
Arun, Neil, shashwat
Eric, Fernando Zanatta, Jörn Zaefferer