App or Theme Code: Where Shopify Logic Belongs

The Architecture Decision

Custom Shopify functionality can live in theme code or in apps. The choice affects maintainability, performance, and capability. Making the wrong choice creates problems later.

Theme Code

What it is

Liquid templates, CSS, and JavaScript that live in the theme. Modified through theme editor or direct code changes.

Good for

  • Presentation and layout
  • Simple client-side interactivity
  • Theme-specific customization
  • Quick changes by theme developers

Limitations

  • Cannot access external APIs server-side
  • Cannot store custom data
  • Lost when theme changes
  • No admin configuration UI

Apps

What they are

External applications that connect to Shopify via API. Include backend logic, database, and optional storefront components.

Good for

  • External integrations
  • Custom data storage
  • Complex business logic
  • Admin interfaces
  • Functionality that survives theme changes

Trade-offs

  • More complex to build
  • Requires hosting
  • Ongoing maintenance
  • Separate deployment from theme

App Extensions

Middle ground

App extensions (theme blocks, checkout extensions) provide app functionality integrated into themes. Portable across themes, maintainable by app developers.

Use cases

  • Custom sections that should survive theme changes
  • Checkout customization
  • Widgets that need backend data

Decision Framework

Needs external API?

App. Theme code cannot reliably call external APIs server-side.

Needs custom data storage?

App with database, or metafields if data fits Shopify's model.

Should survive theme changes?

App or app extension. Theme code is theme-dependent.

Purely presentational?

Theme code is simpler and faster to implement.

For development guidance, see custom Shopify apps.

Working with LiftKit Digital

LiftKit Digital advises on architecture for custom Shopify functionality. We choose the right approach for your requirements.

To discuss, get in touch.