How to Run a Non-Profit or Social Enterprise Website For Cheap

This post is written by Jérôme Gagnon-Voyer, co-founder and also the technical person behind ChooseSocial.PH. Jérôme is an IT consultant by day and has also worked on developing technologies for non-profits both professionally and as a volunteer over the past few years.

When we started building ChooseSocial.PH, we wanted a website that would be reliable and fast while also being affordable. We want ChooseSocial.PH to become the ultimate resource for anyone who wants to learn about social enterprises in the Philippines. We also want it to eventually become profitable, though we admit we’re far from having a sound business model at this point. All things considered, this blog post is about the technical choices and services that we use in order to keep our operating costs to a minimum in the meantime.

First of all, we have to recognize that building a website and the applications that power it is rarely cheap. The fact that I have a technical background and that I decided to spent countless hours on the technical implementation myself allowed us to build our platform and website with minimal dollar investment. An NGO or social enterprise without in-house IT talent would need to invest in the initial implementation of their platform. That said, this article is about keeping your website online for cheap after it’s built.

One-time costs
There were some initial investments we had to make on the graphic design side. These are the “one time costs” that won’t be needed until your next redesign. We hired someone to create our logo (tip: get Daisy Munoz, she’s amazing), a website theme ($25 on ThemeForest) and stock pictures (65$ on Stocksy, they have great unique shots).

While it may be tempting to choose only the free or least expensive themes and stock photos, we would caution against this. Most people or small businesses will be doing the same, and it really wouldn’t be ideal to see elements of your website popping up everywhere.

Costs you can’t avoid – The domain name
You will always need a domain name and if you want to host and run your own website, you will have to pay for it every year. It can typically be $15 for a .com, but in our case we had to get a .PH domain name for Philippines (+/- $33 on Web.com.ph).

Infrastructure
This is the part that gets more technical and might change based on your own technology stack. Keep in mind that the technical choices that we have made are for a moderately popular website  that could support somewhere in the range of 10 000 to 50 000 visits a month. Some of the services we are listing don’t recommend their free plan to be used in production for commercial usage. However, we have found that their stability and speed were sufficient for our needs.

We have both a website and a backend application (which we use to input the information and research that we conduct on each social enterprise featured on our website) that are running on a single Node.js application. We use the Heroku free plan to host the application. For our MongoDB database, we use the sandbox plan on mongolab, which offers 500Mb for free. We have a cron job setup for free locally to backup our database daily. The search engine powering our internal search is Azure Search and free as well when using less than 10 000 records.

To host the images on our website, we use AWS Amazon S3. The cost varies on the bandwidth being used, which is typically less than $1 a month. One way to keep the bandwidth cost low for S3 is to cache its content with CloudFlare. CloudFlare provides an amazing service that will cache all the static content of your website (images, javascript, css), deliver it from a server (CDN) near to the location of your visitor, and provide your site with protection against bots and DDOS attacks. All of this is free.

Email services
In order to let people email us with the Contact Us box on our website, we use SendGrid which allows 400 emails a day for free. People can also sign up for our newsletter using MailChimp, which supports up to 2000 free subscribers. In order to have an email associated with our domain name (info@choosesocial.ph) we use Zoho Mail that lets you to create 10 free email addresses with the Lite plan.

Maps
We built a map on our Explore page that lets people explore social enterprises based on their location in the Philippines. For various reasons we wanted to avoid Google Maps so the map is using the community and open-based OpenStreetMap. In order to render the map on a page, you need a server that will provide you with the tiles. You can get free tiles with MapQuest, which is what we used for a while. However, we weren’t very satisfied with the visual quality of those maps (colors are not great and the resolution is poor) so we switched to Mapbox. Their free plan is 50,000 views a month, which goes a long way. If you need more,  you can get a discount on their paid plan if you mention to them that you are a non-profit.

Monitoring
To ensure the stability of our website, we have various tools that help us monitor the performance and alert us of eventual problems. We use the free plan at UptimeRobot to monitor the website and email us if it goes down. We use the NewRelic stark free plan with Heroku to analyze and measure the speed of the website. And finally we use the Heroku free test plan at Raygun to email us if a user encounters an application error while browsing the site.

In conclusion
All of these services have allowed us to successfully launch ChooseSocial.PH and accomplish the technical goals we had set: reliability, speed and affordability. Feel free to contribute in the comments if you have found other useful and affordable services that could be useful for those in the NGO, social enterprise, and start up community!

Advertisements

One thought on “How to Run a Non-Profit or Social Enterprise Website For Cheap

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s