close

Quick project menu

bUnited unites consumers

Consumers have always valued the recommendations from their social offline and online circles. Although marketers are spending millions of dollars on different advertising campaigns, often a simple and free word of mouth recommendation from a trusted source, can bring better results, or turn for the worse. bUnited.com is a website that unites consumers into one large membership organization to transform the relationship between big business and consumers. For good behavior, companies get rewarded with purchases from bUnited members.

bUnited is more than just becoming the largest buying group in the world; it’s also about becoming one of the most powerful forces in the world for helping companies improve our environment.

What triggers consumers to join 

By joining and referring friends to join bUnited, an individual can help a community to grow, and become a large customer. As a large customer, they can better reward the good companies and get even better terms and service from them, while doing tremendous good and reaching their targets for their global initiatives faster.

The Core of the bUnited website is a referral system

Although bUnited.com might be seen as the average website at the first glance, it was technically very demanding to develop. The core of the project is referral system, where users invite their friends and earn points for successful referrals. We had to carefully architecture this system with performance and scalability in mind. Our architecture allows us to build the full invite tree, to quickly add new branches (successful referrals) and to quickly fetch statistics for each user with a minimal number of database queries.

bUnited 2

Demanding requirements

One of the client’s first requirements was that the website has to be able to scale extremely quickly (millions of users in a couple of months) and to handle huge spikes of traffic (50.000 users per hour). These two requirements dictated our architecture and a lot of decisions regarding our development process, like choosing hosting infrastructure, investing heavily into automated testing, and using established 3rd party providers for tasks like sending emails, monitoring, AB testing, etc. On the top of that, we’ve significantly customized Django admin so that administrators can get a quick overview of referral tree and statistics for each user.

Sharing website content

With referral system as a core of bUnited website, we had to make it as easy as possible for users to share website content with their friends. Since we had to cover multiple social networks and other channels, we quickly decided to go with AddThis as the most cost effective and robust solution. AddThis handles details of integration with various channels (Facebook, Twitter, Google+, WhatsApp, Email) and our custom AddThis integration allowed us to skin it in line with the rest of design and modify its behavior depending on the platform.

bUnited 3

Another crucial piece of referral system is analytics

Users can collect points by sharing various pieces of content (photos, video, text) on multiple channels (social networks, email, WhatsApp) and each combination can result in different success rate. We’ve implemented a number of custom Google Analytics events, custom dashboards and reports which give bUnited administrators all the crucial information they need to optimize their campaigns and content on various social networks.

We’ve decided to use Heroku for hosting bUnited application as it offers rock-solid infrastructure, which can be scaled extremely quickly both horizontally and vertically. We’ve used Heroku dynos for running the application, Heroku Postgres database for storing text-based content and Amazon S3 file storage for storing multimedia content. We’ve also integrated a number of 3rd party services to help us send email (SendGrid), monitor performance (New Relic), AB test (Optimizely), log (Logentries), monitor errors (Sentry), analyze user behaviour (Google Analytics), share content (AddThis), stress test application under heavy load (Loader.io), detect users’ country (Telize) and protect the website (CloudFlare).

bUnited 1

Giving users the best possible UX

We’ve implemented a total of 5 login/sign-up options: email, Facebook, Google, Twitter and LinkedIn. We’ve significantly customized login flow to give users the best possible UX: e.g. we verify emails on Twitter signups (Twitter doesn’t verify their users emails), but don’t verify them on Facebook signups (Facebook does verify their users emails, so we don’t have to and therefore we save couple of clicks and seconds for Facebook users). Also, on login and sign-up, we redirect users to various pages depending on a set of parameters (completed profile, starting page, has begun sharing action).

bUnited 4

Rapidly releasing core capabilities using agile development

Agile development methodology helped us to release core functionality quickly and to get real-time feedback from our client on a daily basis. We’ve decided early to invest significant resources to integration tests, which proved to be an excellent decision. A complex application like bUnited requires hours and hours of manual testing that each scenario works correctly, and this testing had to be repeated each time we add a new feature or apply bug fixes. The referral system is thoroughly covered with integration tests which have already saved us weeks of manual testing and will significantly decrease time to develop new features in the future. Also, to make sure the application can handle a heavy load in production, we have successfully stress tested it with 60.000 users and 240.000 clicks per hour. Since, users are jumping repeatedly from one screen to another on their user journey, most often thanks to email and social sharing, responsiveness was the important part of development. In order to deliver good results on mobile devices, we were making sure that UX and information architecture was consistent across all types of devices.

bUnited 5