How Crowd Content uses DigitalOcean

“We came to DigitalOcean out of a search for a solution that was high-performance enough to meet our needs.”
Eric Hoppe, Director of MarketingDirector of Marketing, Crowd Content

How Crowd Content uses DigitalOcean

Connecting content creators with the marketplace

We’re Crowd Content. Based in Victoria, BC, Canada, we’ve grown to become one of the leading providers of quality content writing services globally. We provide a digital marketplace where businesses can find and hire talented writers to produce the content they need — blog posts, newsletters, product descriptions, social media posts, and everything in between. Since founding the company in 2011, our goal has been to make the process of sourcing great content faster and easier by streamlining our customers’ search for capable writers who can provide the high-quality copy they seek.

A business’s content needs can change rapidly, and our customers expect our website to be highly available as their demands for fresh copy run on a 24/7 cycle. Because traffic can fluctuate substantially with the needs of our customers, our infrastructure has to be flexible enough to meet their requirements. We’ve come to rely on DigitalOcean to help us stay agile and respond to surges in web traffic. Thanks to DigitalOcean’s diverse product offering and ease-of-use, it has been simple for us to scale our infrastructure and provision the tools we need, when we need them.

We’ve been using DigitalOcean Droplets for several years, and today about 95% of our infrastructure is hosted on DigitalOcean. Since we spun up our first Droplet, we’ve seen a 240% increase in our number of customers, and our pool of writers has increased by more than tenfold. Additionally, following an upgrade from Standard to Optimized Droplets earlier this year, we’ve seen a 20% increase in page loading speeds.

How we drive great content

Our customers range in size from one-person startups to enterprise-level businesses, and their content needs are equally varied. Some clients come to Crowd Content in hopes of finding a writer to put together one or two blog posts a month, while larger customers may need hundreds or thousands of product descriptions in a given week.

After signing up, clients can create new content orders through our customer portal. They’re given a number of options for customizing their order and tailoring it to attract writers whose experience aligns with their needs. These options include the kind of content they want, the particular qualifications they’re looking for in writers, their required turnaround time, and any specific instructions the writer should know before they begin drafting. In addition to procuring ad hoc writing services, our platform also allows our clients to design content marketing campaigns and create automated content requests for their recurring needs.

We stress the importance of quality at Crowd Content, and that starts with our writers. Before they can begin producing content on our platform, new writers must first go through our rigorous application process, which has roughly a 15% acceptance rate. Once writers begin working on projects, customers assess the quality of their output, providing them with an average score that will give future potential customers a good idea of that writer’s abilities. This gamified marketplace has resulted in open content orders being written remarkably fast, with Crowd Content’s average words per hour sitting at 370 for a given content order. This means that a standard 500-word article can be ordered and completed within hours.

While our primary goal is to facilitate great content and satisfy our customers’ needs, we also strive to support our growing community of writers. We offer a variety of resources to help new writers get started on our platform, including guides on how to use the Writer’s Dashboard, best practices for communicating with clients, and general company policies. We’ve also established our Writer’s University, a collection of tutorials designed to help Crowd Content writers hone their skills and learn about subjects like SEO, advanced proofreading, and best practices for producing diverse types of content.

Our technical setup

With nearly 95% of our infrastructure on DigitalOcean, we leverage Droplets, Block Storage, and Spaces as part of our setup, positioning these products within a broader ecosystem to serve our website and applications. Our current setup looks like this:

We use Docker Swarm to streamline the process of clustering and scheduling our Docker instances, and we use Portainer to manage our Docker environments. We rely on a multi-server MySQL database cluster to store and track content orders, and our team uses DigitalOcean Spaces to store automated hourly backups of these databases. We chose Spaces over other object storage solutions for its affordability, its close proximity to our Droplets (which helps to shorten backup times), and the fact that it integrates easily with our existing setup and other DigitalOcean products we use.

We use Percona XtraDB as a fault-tolerant, highly-available MySQL clustering solution. This Percona cluster was originally stored directly on a local storage device, but this sometimes caused issues when a database server needed maintenance. If the server was pulled out incorrectly, then it was likely to crash, resulting in costly downtime.

While we were in the middle of upgrading from standard to optimized Droplets, DigitalOcean’s Customer Success team recommended that we switch to storing our database clusters on DigitalOcean Block Storage as a means of mitigating this vulnerability. Now, when a database server is undergoing maintenance, a secondary database server is spun up which then mounts the block storage volume. The new server then copies the database information from the block storage volume and begins working right away. Connecting all of our databases to block storage has increased the redundancy of our databases and they now function with zero downtime even when undergoing maintenance. We have also recently added ProxySQL, which can detect a downed MySQL instance within three seconds and route traffic accordingly.

We currently have four front-facing load balancer Droplets using HAProxy which are connected to DigitalOcean Reserved IP addresses. The advantage of this is that if one of these IPs becomes compromised, we can easily get a new one without having to change the physical Droplet’s IP. Of these four Droplets, only three are in use at any given time. The reason for this is that if one load balancer goes down or is in need of maintenance, we can quickly switch the Reserved IP to an available server without interrupting any customers using our platform.

Previously, we managed our own firewalls on each server. Not only did this practice consume additional resources, but it also required us to manage rules across servers. As a result, we switched to DigitalOcean Cloud Firewalls. Because Cloud Firewalls are located in front of the Droplet and are not connected to iptables, they are easier to manage than our previous solution.

Why we love DigitalOcean

As we continue to scale, our infrastructure needs can change with very little notice. A previously low-maintenance client may decide to ramp up their content strategy and begin looking for dozens of writers to fill their website with content at the drop of a hat. Consequently, it must be easy and quick to scale our infrastructure to meet the changing needs of our customers. We love that DigitalOcean makes it simple for us to scale out our infrastructure in order to meet the demands of our customers.

To this end, we maintain snapshots of Droplets used in our infrastructure which show everything each of them needs to function. When we do need to scale up, we use a script to automatically spin up a fresh Droplet using one of these snapshots, add tags to automatically update the Cloud Firewall rules, connect the Droplet to our VPN, and run a command to add it to our Docker swarm. From there, we can begin using it right away to scale up the service (or services) as needed.

DigitalOcean Block Storage makes it easy for us to scale our storage without having to change the underlying Droplet. It also streamlines the process we go through to upgrade our databases; we simply disconnect the block storage volume from the server, spin up a new Droplet, reattach the block storage volume, migrate if needed, and repeat until everything has been upgraded.

Looking ahead

Since founding Crowd Content, the content marketing industry has already seen significant changes. Thanks to our focus on quality and customer satisfaction, we’ve been able to stay on top of new trends and remain a market leader. In 2017, we had more than 5,000 writers using our platform who collectively wrote more than 27 million words for our customers. We’ve consistently our earnings grow by double digits, and in 2017 alone we had 56% year-over-year revenue growth.

As with any online marketplace, traffic to Crowd Content can fluctuate widely, and this necessitates easily scalable infrastructure. Thanks in large part to DigitalOcean’s broad product offering, seamless integration with other services, and overall ease of use, we’ve been able to build and maintain a platform that’s always ready to meet the needs of our customers and writers. We’re grateful for all the opportunities we’ve had for growth, and are excited to continue building out our infrastructure on DigitalOcean well into the future.

Crowd Content

Industry

Content Marketing

HQ

Victoria, BC, Canada

Start building with DigitalOcean!

Sign up now and you'll be up and running on DigitalOcean in just minutes.

Try DigitalOcean

Start building today

Sign up now and you'll be up and running on DigitalOcean in just minutes.