Building a non-profit website with WordPress from scratch

Haiti Red Cross website

The finished website for Haitian National Red Cross

I am currently helping to create a website for a national Red Cross Society that doesn’t have a website yet. If you find that surprising, keep in mind that the Red Cross Red Crescent has 186 National Societies and many of them are in very poor countries where other things have a higher priority. And that is not necessarily a bad thing – after all what good is a website if you don’t have the resources to maintain it?

Anyhow, this project gives me the rather enviable opportunity to create something from scratch without having to worry about integrating any other systems or databases. And of course, in my mind I have played the “what if”-game many times. Now is my chance to put it into practice.

The conditions:

  • Website must be easy to maintain
  • Must have a backend
  • Must have a backend in a language that can be used by the people maintaining it
  • Multilingual support
  • Cheap
  • Site should be up as quickly as possible
  • Big developer community

With all that in mind I suggested to use WordPress as a CMS to drive the website. The National Society accepted this proposal and I have been fine tuning it since then. It’s running on a dedicated virtual server. For the design we decided to modify a premium theme.

Below is the set-up that I have in place so far. Please chip in, if you have any additional suggestions. I hope others will find it useful as well. All plug-ins can be downloaded from

  • After the deadline
    Checks spelling, style and grammar of your English language posts.
  • Category header content
    Let’s you add HTML at the top of your category or tag-pages. In my opinion, you shouldn’t need a plugin to do that, but it’s the only way I found to add custom text to the top of category or tag-pages.
  • Contact Form 7
    A customizable contact form. Supports many languages.
  • Dagon Design Sitemap Generator
    Generates a human readable sitemap.
  • Easily navigate pages on dashboard
    The site will have a lot of pages (as opposed to posts). This plugin makes it easier to jump to individual pages.
  • Google XML Sitemaps
    Adds a Google XML site map.
  • Lightview Plus
    Improves the standard WordPress gallery and has slide show features. I have not figured out how to make this multi lingual yet. The plugin requires that you buy  the lightview script for 3 euros.
  • Media Tags
    Allows you to assign tags to your media files which will make it easier to find them in the future.
  • Registered Users only
    Hides the site from anonymous users while still under development.
  • Sociable
    Adds Twitter/Facebook etc. “share” buttons to all posts and pages. I love how customizable this plugin is!
  • WP DB backup
    Emails me a complete database backup every day. The frequency is customizable, as are the tables that are being backed up.
  • WPML multilingual CMS
    This plugin is seriously impressive! WPML does not only create a multilingual structure for your site but also helps your editors with the translation workflow and even supports translations of widgets and text-strings (though that doesn’t always work 100%). Since my day job is to maintain a multilingual site I can tell you that I’d be much happier if we had this!   The plugin was developed by a translation company that integrates their translation services into the plugin. Very smart.
  • WPtouch iPhone theme
    Delivers site news for mobile devices (not just iPhones). Since the site is for a disaster-prone country where mobile phone are widely used, this could be a useful feature.

I am still looking for a good comments-plugin that is available in multiple languages. Please leave a comment if you know one.

Update 17 may 2012: In light of a recent successful hack of this blog I’d like to make two security-related additions:

  • Simple Login Lockdown
    After five unsuccessful login attempts, it blocks the IP address of the person trying to log in for a certain time (default is one hour)
  • Sucuri Security
    Sucuri is a  service first and plugin second. For 90 USD per year, Sucuri monitors your site to make sure that nobody is making changes without your knowledge and cleans up your site if it has been infected with malware. The nice thing is, that you can even sign up if your site has already been infected. Their service also includes a plugin that helps you to close some WordPress vulnerabilities and blocks IP addresses which are known to be the source of comment spam. While Sucuri costs money, I found that it’s definitely worth it. 

What would you add to this list?

  • Hi Timo,

    sounds quite interesting.

    For my WordPress-Installations (most of them are WordPress-Mu) i use these Additional Plugins:
    * Google Analytics (for improved Statistical Data)
    * wpSEO to improve the Search Engine Optimization
    * WP Supercache, if there is heavy traffic

    I wish you all the best for your project – I think it is a very good decision to select WP as CMS for these tasks, because it would bind many more ressources implementing a big CMS, also after implementation you need the ressources to keep everything under the surface tidy …

    Do not hesitate to contact me, if you need a beta-tester.


    • Thanks Gerald, three good additions.

  • Awesome post! Non-profits definitely need tips like this. I also think helping non-profits select the best CMS / framework from open source + enterprise world is important as well.

    I personally use wordpress all the time and professionally. I also feel that many non-profits may be able to follow this guide, but later on poorly execute their ongoing communication and engagement with their target market/audience and social media after they've got a shiny back end and website through something like WordPress.

    Time and strategy I think is the problem there and why I've been working on some solutions for streamlining engagement and collaboration when it comes to engagement, volunteering, projects and events. One of these solutions is called VolunteerACT – – still in beta but giving out invites.

    I would add Twitter tools, Facebook Connect, & DISQUS or intensedebate seem like other good options for your list.

    • Thanks Omar. I agree about intensedebate/DISQUS – my only problem is that I haven't found a way to make them work on on mutilingual site.

      Afaik both are English only and I would need English for the English version of the site and French for the French version. Have you figured out how to do that or do you know another commenting system that supports multilingual sites? I definitely need English and French – and maybe Spanish.

  • Timo, I haven't been involved with a multilingual project on wordpress so far, do these commenting systems not support UTF-8? Perhaps you could recognize the problem you're having in particular?

    • Actually the problem turned out to be that the *theme* is not localized. Here is the information I found on how to fix that. But to be honest – it's a real pain!

  • Timo,

    This sounds like a promising project, and I think it's brilliant that you're sharing your ideas on how you're building this site–so much of this info is kept hidden or only available in geek-speak.

    While I am not the Web developer for my organization's Website (I am the managing editor), we do use WordPress exclusively and I encourage you to check out the site at http:/// for ideas. Since our news is of high interest in Africa, we had to make a site that could be easily accessible in low-resource environments. So, for example, we avoided using Flash because people in Africa often have trouble downloading anything in that format. And I second using Google Analytics–nonprofits can't raise funds without decent stats on their audience/beneficiaries/donors.

    Some other features you might want to include:
    An RSS feed, which is helpful in setting up Facebook Connect and Twitter to automatically post anything that gets posted to the site.
    A "share" link that lets readers share with social networking sites other than FB and twitter. FB and twitter are popular in the US, but other sites are more popular in other countries (Friendster in the Phillippines, Hi5 in South Asia, bookmarking sites like Digg for certain professions).

    Hope this helps!

  • One great plugin I’ve begun to use is WordPress File Monitor. This plugin scans your WordPress installation and reports if any files have been added, deleted, or changed. The plugin is customizable to run on a schedule that you set. You can also exclude directories from the plugin’s reporting so that you’re not alerted every time you upload a picture to insert into a post. I, however, recommend that you do not exclude directories as that directory may be the next location of the next exploit.

  • online gradebook

    Have you figured out how to do that or do you know another commenting system that supports multilingual sites? I definitely need English and French – and maybe Spanish.

    • Not really. The best workaround I found is to use WPML with an internal commenting system (WPML doesn't work with hosted solutions.) However, I was looking for Creole which is definitely not standard. Finding Fr/Sp might be easier.

  • clamb17

    Timo, this is really useful stuff. Thanks very much for going to the trouble of posting this. A lot of other National Societies could benefit from it, I'm sure.
    What is the e-mail arrangement you made for the CR Haiti?

  • Hey Timo, be careful not to fill your wordpress installation with unnecessary plugins. Usually over twenty plugins tend to make it a bit unstable (internal server errors etc). Cheers and keep up the good work!

  • Great post! Are you taking donations on the site? If so, what are you using?

    • Hi Lynn,
      no, we didn't. The problem was that this was the website for the Haiti Red Cross and most donation systems require that you are registered as a Non-Profit in the US, which of course the Haitian Red Cross wasn't. And I don't know enough to set up a secure credit card processing API.

  • Hi and thanks for sharing this post. However I also would add to your list "WordPress Related Post Plugin" and some plugin for cache like "Quick Cache" or "W3 Total Cache", specially after the Panda and Penguin update of Google.

    Again thanks for your post!

    • Hi Carlos, can you elaborate why people should add these plugins? Thanks!

  • I would also advise adding yoast for SEO and keywordluv to your list of plugins

  • Yasser

    Nice post but I also agree with the previous 2 comments. I’d add some plugins for cache and better SEO like those provided in comments above. The loading time of our sites(site speed) has becomme more and more important latelly. Here you can see the post from Matt back on APRIL 9, 2010 when he announced that Google incorporated site speed in search rankings.

  • Mark

    Just wondering if you have come across a good donations page plugin? I find most of them are inflexible.

    • Hi Mark. Unfortunately not, but I haven't been looking that hard, either. The problem for me is that all the organizations I worked with so far are based outside the US and almost all the donations plugins I saw are geared towards the US market. Even Google Donate is only available for US charities! Sorry.

  • Thanks for the information. But you forgot to add W3TC

  • summ3r

    Hi! For the theme translation part, if you want to have a multilingual WordPress website, you can use the online localization tool
    The platform offers free account limited to 1000 strings, so it could be enough for a translating a theme.