Wednesday, November 10, 2010

Ten+ things you have to do before you launch a website

After reading some good advice, some very specific to SEO, what to do after launching a website which I ran across on HN I decided to write my own. This is a checklist if you're in charge of creating a website. I wrote it, so I would think about it myself, but I'm looking forward to your comments. I have a "regular" website with mostly text and image content in mind, but lots of it applies to forums, wikis, html5 apps etc.
  1. You may or may not be the person who came up with the idea of the website
    1. Create a list of all features, break them up in smaller pieces until you can approximate how long each step will take. This is called a work-breakdown-structure. Talk to the client / partners about these features and how long you think they'll take.
    2. Figure out what is important about the website. Get the priorities right, some features may not make the initial launch. Suggest less expensive alternatives.
  2. What parts are you responsible for? The content, the design or the implementation? (MVC anyone?)
  3. Find out who the website's audience will be.
    1. What is the audience looking for on the site? How can you help with that?
    2. Does your audience have special needs, think about accessibility.
    3. What kind of traffic will you get? How will you accommodate for that?
  4. If you're responsible for implementing the design, decide which browsers you would like to support:
    1. A-Grade as defined by Yahoo maybe?
    2. What about mobile? Separate site or a fluid layout using media queries?
  5. Learn the SEO Basics
    1. Make sure the basics of your website work without JavaScript as well as it does without.
    2. Have nice URLs
    3. If it's a relaunch, make sure, the old URLs forward to a sensible place and not a 404 page.
  6. Features
    1. What content types have you identified? Can they be simplified? 
    2. Avoid feature creep.
    3. If your editors want to embed videos, mp3s, PDFs, DOCs, PPT etc, how should they do that?
    4. How is search done?
    5. What users and access controls should exist?
    6. What social media integration?
      1. User sign up?
      2. Twitter, Facebook, Google, OAuth etc.
      3. Comments? By Disqus or IntenseDebate or with own user accounts only?
    7. Figure out if you'll need a content workflow, like a review process for new user generated content or regular content from editors.
  7. What development framework do you want to use?
    1. The main point is: Will you use a out-of-the box solution, like a CMS or do you want to use a web development framework? Lots of options, no way of finding out what is the right tool, getting a broad overview is important though.
    2. Will you always be the only one working on it? If not, consider how difficult it is to find smalltalk-devs for seaside... Maybe Drupal is the bettter alternative, lots of PHP devs around, filtering out the bad ones is the bigger task. With Rails its a little more work, but also more control, ruby developers tend to have a better grasp of the technologies they are using. 
  8. Security
    1. Avoid all the common security vulnerabilities:
      1. SQL injections
      2. HTML injections
      3. XSS
      4. CSRF
      5. ...
    2. Protect yourself against session hijacking, have a SSL version available
    3. Set up a backup process and test it
    4. Make sure you're able to apply security updates to the whole stack: OS, WebServer, Database, Language, Framework, Plugins
    5. Apply them.
  9. Testing
    1. Use unit tests
    2. Create integration tests
    3. Do uptime monitoring and set up alerts
    4. How will you do the load-testing?
    5. What are the response times you're aiming for?
    6. Use YSlow to see how you can improve performance.
    7. Will you need more than one database-, web- or cache-server?
  10. Hosting
    1. Have a plan how you'll deploy, also how you'll continue development and testing once it's launched
    2. Avoid a shared hosting environment (it's also a security issue), use a VM at least (they're cheap too).
    3. Try the backup if there is one that comes out-of-the-box  by your hosting provider
If you think this should be a wiki page, let me know if you know the right place where to put it, so people can find it and contribute easily. Wikibooks maybe?

Edit: Just found this pre-launch list as well... 

    No comments: