• i only speak liquid
  • Posts
  • "i only speak liquid" #70: Your Shopify App Might Not Need a Database – Heard of Metaobjects?

"i only speak liquid" #70: Your Shopify App Might Not Need a Database – Heard of Metaobjects?

Written by Miguel (a Storetasker Expert)

Hey everyone,

Here we go for Miguel’s 2nd of 4 edits of “i_only_speak_liquid”

Miguel (a Storetasker Member) is an experienced Shopify developer based in Colombia. He brings a wealth of operational experience having been on in-house teams, at agencies and now freelance.

Let’s GO 📚

What I’ve been thinking about:

When Does Your App Actually Require a Database?

If you're building a public Shopify app, having a database is usually a must. You need to store merchant data, track installations, and manage subscriptions if your app has a paid plan. That’s a given.

However, some apps—or even just certain features within an app—might not technically require a database at all. This is where metaobjects come in.

My App as a Case Study

In my own app, Hubble: Target Customers, one of the core features—Customer Account Blocks—is built around metaobjects. These metaobjects are queried via GraphQL directly in the customer account UI, eliminating the need for redundant database storage.

That said, we do use a database for certain sensitive or essential data that needs to persist independently of a store’s installation. After all, metaobjects live within each Shopify store and are only accessible while your app is installed on that store. So, if you need to store crucial app-level data, a database is still the way to go.

The Advantages of Using Metaobjects

Metaobjects provide several key benefits that can make them a viable alternative to traditional databases for some use cases:

1. Standard Accessibility Across Shopify Surfaces

  • Accessible from themes (via Liquid), UI extensions (via GraphQL), and headless storefronts (via Storefront API).

2. Global Distribution for Faster Requests

  • Metaobjects are served from Shopify’s CDN, ensuring that requests are handled by the closest Shopify server.

  • This can be significantly faster than fetching data from an app’s server, especially if your app doesn’t have global replicas on the edge.

3. Cross-App Data Sharing

  • Instead of setting up custom API connections between apps, we can use metaobjects as a centralized store for shared data. At Overse, we integrate apps into a fleet that shares data between them.

"But Metaobjects Have Limits!"

Yes, metaobjects do have limits—currently, Shopify limits the number of metaobject definitions and total entries per store. However, these limits are quite generous:

  • Basic Shopify Plan: Up to 64,000 metaobject entries across all definitions.

  • Higher Plans: Even more capacity.

For many use cases, these limits aren’t an issue. It really depends on your app’s requirements.

The Future: Standard Metaobjects

Shopify has announced Standard Metaobjects, which won’t count toward these limits. Once fully released, these standard definitions will allow apps to store unlimited metaobjects within predefined structures.

If a standard definition aligns with your use case, you could take advantage of infinite storage without hitting Shopify’s current limits. We’ll have to wait for the full rollout to see how flexible these will be, but it’s an exciting development!

When Should You Use Metaobjects Instead of a Database?

Custom Apps for a Single Merchant

  • If your app is meant for one store only, metaobjects can often handle all the data storage you need.

Public Apps with Storefront Features

  • If your app has a feature that relies on fast, public-facing data access, metaobjects are ideal.

  • Since Shopify serves metaobjects via its CDN, storefront requests will be much faster compared to fetching data from your own server.

1 app I like:

Rebuy has always been a favorite of mine. It enables deep customization of key store sections to optimize sales—something that fits well with how metaobjects can be leveraged for personalized experiences.

One learning as a freelancer:

"When building for merchants, code quality matters—but what matters more is delivering high-impact solutions, fast."

  • A dynamic backend and perfectly optimized code are great, but they don’t drive business results on their own.

  • Focus on building what merchants actually need, not what’s technically impressive.

  • Prioritize speed and real-world impact over over-engineering solutions.

Final Thoughts

Metaobjects are not a complete replacement for databases, but they can be a powerful alternative for specific use cases—especially in storefront-heavy apps or single-merchant custom apps.

If you haven’t explored them yet, now’s the time!