How WhyDonate switched from Google Cloud, saved 80+ work hours, and now pays 8x less
WhyDonate is a leading global fundraising platform dedicated to making online fundraising easy for individuals and charities. They host fundraisers for everything from animal ambulances in the Netherlands to whydonate programs in Lithuania. Founded in 2012, the company has seen significant transaction and visitor growth in the last few years — which caused scaling headaches and skyrocketing bills on Google Cloud Platform (GCP). When they decided to start using Cloudflare Worker, someone suggested integrating it with PlanetScale — and they are very glad they listened.
For the last three years, Neils Corver, the Co-Founder and Managing Director of WhyDonate, has been grappling with a problem most businesses would love to have — they’ve grown 60% to 80% year-over-year. The challenge is that they accomplished that with an extremely lean development team. Before this period of growth, they only had four programmers, which they doubled over the last two years to eight.
That lean strategy was deliberate. WhyDonate is one of the only online fundraising sites that doesn’t charge platform fees. Keeping the costs down for customers while still delivering amazing features is a core company value — and their unique value proposition in a crowded market. They’ve accomplished that without compromising performance or growth by adopting a strategy of buying versus building. They also leveraged third-party tools to work as efficiently as possible including using tools like Cyprus for deploys, Century for book reporting, and GitHub.
We want to focus on building features for our customers. Hiring a DevOps team member would not directly result in more features and therefore we prefer not hiring such a person.
But WhyDonate found that Google Cloud Platform didn’t fit with their lean strategy. Despite being a managed service, GCP required considerable DevOps support. On a team that didn’t have the capacity to hire someone exclusively for database work, that proved a challenge. Since there wasn’t a dedicated DBA, the job fell to whomever on the team had previous database experience. The Lead Developer eventually stepped up to take on the DB tasks — but at great cost to the team’s overall goals and velocity.
Every time we did a migration or something went wrong, everyone was anxious to make any updates to the database.”
WhyDonate’s biggest challenge? Schema migrations. They consistently cost the team a significant amount of time and led to errors. As Neils recalls, migrations were a nightmare with GCP. Because of the amount of time they took, the team thought they could try automating them but that didn’t work. They needed to do manual updates — which created other problems. Case in point: it took two full weeks of their Lead’s time — an astounding 80 hours — just to fix one botched migration.
Speed was an issue on GCP, as well. WhyDonate’s business model is reliant on organic search — which brings in 70% of their new customers. If the performance of their website was too slow that had a huge impact on SEO, dropping them down in the search rankings. Their lower search ranking would then result in less traffic and that would lead to less revenue. It was a cycle they needed to stop.
After checking if their API could be the problem, they realized the issue was how GCP handled peak loads. They had to create a cache and add another layer to their stack to correct for GCP’s slowness. All those challenges combined made the development team unwilling to make database requests — which impacted the quality and development of their product.
That’s when they started looking into Cloudflare Workers, a platform that globally distributes serverless functions so that they run closer to end-users. Only they needed a database to integrate with. That’s when Neils joined the Cloudflare Discord group and started asking others using Workers for advice.
The answer he got was unanimous. Use PlanetScale. Since their main challenge was that GCP required more DevOps work than their small team could tackle, moving to PlanetScale fixed their problems.
Serverless is the most simple setup.”
The ability to revert a schema change has been a huge boost in confidence for our team. It’s ended our migration anxiety.
That’s a big shift for the team — they no longer have to worry that a mistake will result in 80 hours of costly manual remediation. That’s helped them improve their continuous integration (CI) and continuous delivery (CD) workflows — leading to greater development velocity and improved business results.
If the same job can be done in less time with fewer efforts, it will always result in more revenue and opportunities. Features will be released sooner and more customers will come in. When building new features, I would say we reduce 10% of the total time spent using PlanetScale. There are many feature plans that we will now be able to launch sooner.
The biggest surprise after moving to PlanetScale was the change in pricing. “Google Cloud Platform costs more,” says Neils. While PlanetScale extended WhyDonate non-profit pricing, even without that discount, Neils says they would be paying eight times less than they used to pay on GCP. They also save considerable work hours now that their top development talent is no longer focused on managing their database. Outsourcing their database maintenance work to PlanetScale has truly transformed their team. They can focus instead on things that have revenue impact — like improving their product.
The whole team can now work on our database and make changes in their own database branches. We don’t have to worry about any mistakes because we can simply decide not to merge the branch.
Neils is excited that with PlanetScale, WhyDonate can continue to keep its development team small and agile. He loves how the PlanetScale branching feature has empowered everyone on WhyDonate’s development team to be more involved in the database. It’s transformed their workflow.
While Neils can’t put a figure on their intangible savings from PlanetScale — they’re considerable. They no longer have to worry that a schema migration will cause the team to unexpectedly lose 80 hours just as they’re sprinting to launch a new feature. That kind of peace of mind? It’s priceless.
- Previous Database
- Google Cloud Platform
- Achieved with PlanetScale