Back to Blog
GuideSep 12, 2026 10 min

The Modern Shopify App Tech Stack in 2025

A practical breakdown of the tools, frameworks, and APIs you need to build production-ready Shopify apps — based on what we've learned shipping real apps.


Building a Shopify app in 2025 looks nothing like it did two years ago. The shift from Express-based monoliths to Remix + Polaris has been dramatic — and for good reason. After shipping multiple apps through the Shopify App Store review process, here's the tech stack we recommend and why.

The Core: Remix + Shopify CLI

Shopify officially recommends Remix as the framework for app development, and the Shopify CLI (v3+) handles project scaffolding, dev server management, and deployment. Remix gives you server-side rendering, nested routes, and built-in data loading — all critical for a responsive admin UI. The CLI eliminates the boilerplate pain: `npm init @shopify/app@latest` gets you OAuth, session management, and a working dev environment in under 60 seconds.

Admin UI: Polaris + React

Polaris is Shopify's design system, and it's not optional if you want App Store approval. Every admin page must use Polaris components — Page, Card, Layout, Banner, and so on. The good news? Polaris v12+ is mature, well-documented, and plays nicely with React 18. We use it for everything from settings pages to complex data tables. The key is to embrace Polaris constraints rather than fight them — your app will look native, and reviewers won't flag UI issues.

Database: Prisma + PostgreSQL

Shopify apps need persistent storage for shop sessions, billing records, app configuration, and business data. We use Prisma ORM with PostgreSQL (via Supabase or Railway for hosting). Prisma's type-safe queries eliminate an entire category of bugs, and the schema migration system keeps your database in sync as your app evolves. For smaller apps, SQLite works in development, but PostgreSQL is non-negotiable for production.

Checkout & Backend Logic: Shopify Functions (Rust/WASM)

Shopify Functions replaced Shopify Scripts for checkout customization. They run as WASM modules on Shopify's infrastructure, executing in under 10ms per request. You write them in Rust (or JavaScript), define your input/output schema in GraphQL, and deploy via the CLI. Functions handle discounts, payment customization, delivery customization, and order routing. The learning curve for Rust is real, but the performance and reliability gains are worth it.

What About Billing?

The Shopify Billing API lets you charge merchants through their regular Shopify bill. You create recurring or one-time charges via GraphQL, and Shopify handles payment processing, proration, and cancellation. It's the only monetization path that doesn't require you to handle PCI compliance. We'll cover the implementation details in a dedicated post, but the key takeaway: integrate billing from day one, not as an afterthought.

The Full Picture

Put it all together: Remix handles routing and server logic, Polaris renders the admin UI, Prisma manages your data, Shopify Functions power checkout customizations, and the Billing API handles monetization. This stack is production-proven, App Store compliant, and scales from your first user to thousands. That's exactly what we built ShopForge around — every template in our scaffold uses this exact stack, pre-configured and ready to extend.