GoneTooSoon is one of the biggest online memorial websites in the world with over 100,000 active registered members, and at it’s peak saw in excess of 80,000 unique visitors per month.
Joining the project early on, we worked on a complete ground-up rebuild for version 4 of the site – up to now, the site had mostly been static with a simple MySQL DB and a few forms to leave tributes anonymously. Once complete, the entire site had been redesigned, user accounts implemented and all data migrated into the new DB schema.
The sites themselves were hosted on a distributed setup, with 3 debian web servers sat behind a load balancer, an NFS drive holding the 2+ terrabyte of uploaded user images, songs, etc, and a high powered dedicated database server running PostgreSQL. As the site was incredibly picture-heavy, in order to improve performance and reduce load on the NFS drive we implemented a image caching at a code level, saving copies of each image when it was requested for the first time in that size. At the load balancer, we implemented squid as a reverse proxy, caching all images served for 24 hours and bringing the number of hits on the web server down to a fraction of what they were.
We also reduced load on the database drastically by using a combination of APC for object caching, and memcache to cache the results of highly used DB queries.
Once the infrastructure was in place, we were able to begin stage 2. This involved the implementation of multiple payment gateways, in order to sell memorabilia and launch a “sponsorship” program to help pay for the site’s running costs. We also built several customization apps to allow users to personalize their memorials, such as a photo frame generator with live previous, a HTML5 Christmas tree to decorate throughout November and December.