Now booking new projects. 2 build slots open this month. Start a project →
E-commerce

How to Build a Custom Shopify App in 2026

Updated 2026-06 · 8 min read · By the Former CTO and Co-founder

Building a custom Shopify app is the most direct way to extend your store beyond what public apps offer. Whether you need a bespoke inventory sync, a private wholesale portal, or a checkout extension that matches your exact pricing rules, a custom app gives you full control over the logic and the data.

This guide walks through the full process as it stands in 2026, covering app types, required scopes, the development environment, and what to expect in terms of time and cost. We assume you are comfortable with JavaScript or another server-side language and have a Shopify Partner account ready.

Need this on your store?Custom Shopify features and automations, shipped in two weeks.

Choose the Right Custom Shopify App Type

Shopify offers two custom app paths. A custom app built inside the Shopify admin is tied to one store, needs no app listing, and is the fastest way to get API credentials for internal tooling. A Shopify Partner app lives in your Partner Dashboard and can be installed on multiple stores, which makes sense if you are building for a client network or planning to sell the app later.

For most merchants building internal tools, the admin-created custom app is the right starting point. It takes about ten minutes to configure, and you get API access tokens without going through the OAuth flow. If you later need multi-store support, you can migrate the logic to a Partner app without rewriting the core functionality.

Set Up Your Development Environment

Shopify recommends the Shopify CLI 3.x for scaffolding apps. Run 'shopify app init' to generate a project with a Node.js or Remix backend and a Polaris-based frontend. You will also need a development store, which you can create for free inside your Partner Dashboard. The CLI handles tunneling so Shopify can reach your local server during development.

Your package.json will include '@shopify/shopify-api' for server-side API calls and '@shopify/app-bridge-react' if you are building an embedded admin UI. Pin your versions and read the changelog before upgrading. Shopify releases breaking API changes on a versioned schedule, and the current stable version as of mid-2026 is the 2026-01 release.

Request Only the API Scopes You Need

Scopes are declared in your shopify.app.toml file. Request only what your app actually uses. Common scopes include 'read_products', 'write_orders', 'read_customers', and 'write_inventory'. Shopify's app review process (for public apps) and merchant trust both benefit from a minimal scope list. Over-scoped apps get flagged, and merchants are less likely to install them.

If your app uses webhooks, register them in the same toml file rather than via API calls. This ensures the subscriptions persist across installs and are visible in the Partner Dashboard. Webhook delivery uses HMAC verification on the 'X-Shopify-Hmac-Sha256' header, which you must validate on every incoming request.

Need this on your store?

Custom Shopify features and automations, shipped in two weeks.

See the Shopify Build

Build and Test Core Features

The Shopify Admin API is GraphQL-first. The REST API still works but is deprecated for new endpoints. Use GraphQL queries and mutations for products, orders, and metafields. The Shopify GraphQL explorer inside the admin is useful for drafting queries before you add them to your app. For bulk operations on large datasets, use the BulkOperation API to avoid rate limit errors.

Test with real data by creating sample products and orders in your development store. Use the Shopify CLI's 'populate' commands to seed the store quickly. For checkout extensions, the checkout editor in the admin lets you preview your UI block without a real purchase. Write integration tests that replay Shopify webhook payloads to verify your handler logic before you go live.

Deploy and Maintain Your Custom App

For a custom admin app tied to one store, deployment is straightforward. Host the backend on a platform like Render, Railway, or Fly.io. Expect to pay $7 to $25 per month for a small app. Set environment variables for your API keys and never commit them to source control. Point the app URL in the Shopify admin to your live server and test the token flow once.

Plan for ongoing maintenance. Shopify retires API versions on a rolling 12-month basis. Subscribe to the Shopify changelog and set a reminder to review your API version every quarter. Most version bumps require updating a version string in your API calls, but some include schema changes that need code updates. Budget roughly four to eight hours per year for routine version maintenance.

Key takeaways

  • Admin-created custom apps are the fastest path for single-store internal tools and skip the OAuth flow entirely.
  • Use the Shopify CLI and the 2026-01 API version to scaffold your project and stay current with supported endpoints.
  • Declare only the scopes your app uses, and register webhooks in shopify.app.toml for reliable delivery.
  • Host your backend for $7 to $25 per month and budget four to eight hours per year for API version maintenance.

Frequently asked questions

A simple internal tool with one or two API integrations typically costs $2,000 to $8,000 in development time if you hire a developer. More complex apps with checkout extensions, custom UIs, and third-party integrations can run $15,000 to $40,000 or more. Hosting adds $7 to $25 per month.

No. Admin-created custom apps are private and only installable on the store where they were created. Partner apps can also be kept unlisted and shared via a direct install link, which is common for agency-built client apps.

Shopify's official CLI scaffolds Node.js apps using Remix. You can also use Ruby, Python, or PHP with the Shopify API libraries, but the Node.js path has the most up-to-date tooling and examples from Shopify in 2026.

Yes, if you request the appropriate scopes such as 'read_customers' or 'write_customers'. You are responsible for handling that data in compliance with your privacy policy and applicable regulations including GDPR and CCPA.

A basic app that reads and writes products or orders can be scaffolded and deployed in one to three days. A production-ready app with error handling, webhook verification, a polished UI, and staging and production environments typically takes two to six weeks.

Free project plan

Tell us what you are building

Get a plan and a fixed estimate at no cost. A real engineer, not a sales rep, replies within one business day.

No spam, ever. One reply within one business day.

Thank you. Your brief is on its way. We reply within one business day.

Prefer to talk first? Book a 30-minute call or connect on LinkedIn.

SH
Former CTO and Co-founder, Seven Hills

I started Seven Hills to do the work I am proudest of, directly with the people who depend on it. As a CTO and co-founder I led an 18-engineer team and personally shipped the products behind these case studies, from a Fortune 100 shipping system to a SaaS product we built and sold. You work with that experience, not a sales layer on top of it.

Connect on LinkedIn →
Start a projectBook a call