Unlocking Ecommerce Excellence: How Vendure and Stellate Supercharged an Online Art Supply Store

There's no amount of money we can throw at our server that's going to remotely compete with the load times we get with Stellate.

Michael Bromley

Co-founder & CTO of Vendure

48%

Faster p50 API response time

44%

Less API traffic

Ken Bromley Art Supplies is an ecommerce store that has been operated by the Bromley family for generations. The Bromleys built the original website from scratch over 15 years ago, and while it served its purpose for many years, they decided it was time for a change. 

Wanting full control over the platform and data ownership, they didn't want to use a solution like Shopify, Magento, BigCommerce, or WooCommerce.  Unfortunately, there weren't any solutions that the team could customize and implement. So Michael Bromely decided to build Vendure, an open-source headless commerce platform built on Node.js, TypeScript and GraphQL. 

Vendure solves another big problem with out-of-the-box ecom platforms: scalability.  Many larger ecommerce companies run into problems with third-party platforms because scaling requires accumulating a large suite of plugins, which often start to conflict with one another. Not to mention, it can become quite expensive to pay for so many plugins.

"Vendure is also way more agile. We can think of a feature and have it implemented in a few days," says Bromley.

While Vendure proved to be exactly what the Bromleys needed, they still had to tackle the challenge of caching—a challenge with any GraphQL based architecture.

Caching: The Final Puzzle Piece

When Michael Bromely built Vendure, he knew there would be some trade-offs moving away from the old site—generated on a server with PHP—towards a headless model. Most significantly, the server with PHP allows you to directly call the database, which is typically very fast. 

But, Michael shared, "when you go headless, one of the trade-offs that you have to deal with is that now everything's over network calls." Once you’re making network calls, now you have to solve for latency and slower response times.

For example, Ken Bromley's Art Supplies' main mega menu has over 600 categories and 12,000 products. When they first went headless, this menu could take 500 milliseconds to load because it's deeply nested. And for large ecommerce websites like Ken Bromley's Art Supplies, a slow loading page can cost thousands of dollars in lost conversions.

The ideal solution to improve load times is to implement caching. 

In the case of the mega menu, caching is a great solution because it’s queried by everyone who visits the site. If caching was implemented correctly, it would significantly reduce API traffic to the server, thereby reducing cloud resource costs and speeding up the user experience.

Why not just build it?

Despite the team’s technical savvy allowing them to build Vendure from scratch, caching is a whole other beast.

In the past, companies working with GraphQL had to create their own caching infrastructure, but doing so requires specialized knowledge and often years of engineering resources to build and maintain. Another option is to upgrade to a more powerful server, but doing so can still result in slower performance compared to a cache. 

Thankfully, this is when the Bromley team found Stellate, a GraphQL edge caching solution.

The Caching Difference

After implementing Stellate and caching some of their heavier requests, the Bromleys reduced API traffic by 44% and saw a 48% increase in API response times.

Before implementing Stellate, assembling the mega menu took about 500 milliseconds. However, that query has a 99% cache hit rate, and after implementing Stellate, it now loads in about 50 milliseconds. 

"We're saving so many CPU cycles on our server; it's just incredible," says Bromley.

Reducing API traffic also helped them significantly reduce cloud resource costs.

Another benefit of implementing caching is that it helps busy ecom stores like Ken Bromley Art Supplies handle traffic spikes more effectively. This was essential during major sales, like Black Friday, and even during popular email promotions.

As an edge caching solution, Stellate is well designed to improve performance for companies with a global customer base, like Ken Bromley's Art Supplies. 

"Before switching to Stellate, our origin server was somewhere in Europe, but we had customers in Australia. So a round trip from Australia would take two or three seconds just in latency."

Now that the online store uses Stellate's edge caching solution, Australian users receive content from the distributed server located in Sydney in about 50 milliseconds. "There's no amount of money we can throw at our server that's going to remotely compete with that," says Bromley.

In addition, Stellate makes it easy to optimize your caching strategy. With Stellate’s instant cache purging, fine grained cache controls, and detailed metrics suite, it’s easy to quickly identify the best caching opportunities and track the impact.

You can Vendure too!

The new and improved Ken Bromley’s Art Supplies site now enjoys blazing fast load times around the world, improved stability and reduced cloud costs all thanks to the headless power of Vendure and the caching engine of Stellate.

If you’re curious to explore a similar infrastructure, Vendure is an open-source project designed with extensibility in mind. If you’ve outgrown Shopify or find yourself regularly infuriated by Woocomerce, the creators and contributors of Vendure have provided a developer-friendly alternative that allows you to build anything and scale at your pace.

And if you want to see for yourself how Stellate can help you reduce costs and improve performance and stability, schedule a demo or try it out today

Read more

Stellate is about peace of mind for your GraphQL API. Analytics and security features are included by default.

What are you waiting for?

Set up Stellate in less than 5 minutes to unlock the full potential of your GraphQL API.