← Blog Shopify July 15, 2026 · The ReDock team

Shopify app development on localhost: tunnels, OAuth, and webhooks that work

A local Shopify app dev environment needs a public HTTPS tunnel, the right Node version, seeded env files, and a session store, here's how to get all four.

Shopify app development on localhost has four moving parts that trip people up: OAuth needs a public HTTPS callback, webhooks need a public URL to POST to, your app needs the Node version it was written for, and it needs somewhere to store sessions. Get those wrong and the app either won’t install or silently drops events. ReDock — a free-while-in-alpha native macOS app — sets up a Shopify app development environment that handles all four: a public HTTPS tunnel, auto-detected Node version, env-file detect and seed, and a session Postgres. To be clear up front: this is an environment for building Shopify apps, not a tool for managing a store’s products or orders.

Why localhost alone doesn’t work for Shopify apps

A Shopify app isn’t a static page you preview locally. It talks to Shopify’s platform, and the platform talks back — which is where localhost breaks down:

  • OAuth redirects to a public URL. When a merchant installs your app, Shopify redirects to your callback. http://localhost:3000 isn’t reachable from Shopify’s servers, so the handshake fails without a public HTTPS address.
  • Webhooks are inbound POSTs. Shopify sends order, product, and app events to a URL you register. If that URL is localhost, the events go nowhere.

So the first requirement is a public HTTPS tunnel pointing at your local app. That’s the piece a plain npm run dev doesn’t give you.

The four things ReDock sets up

Here’s how ReDock covers the Shopify app dev checklist:

  1. Public HTTPS tunnel. ReDock exposes your local app at a real HTTPS URL so OAuth callbacks resolve and webhooks arrive. No separate tunnel tool to wire in.
  2. Auto-detected Node version. It reads engines.node — including in a web/ subpackage, which Shopify app templates commonly use — and runs your app on the version it expects, instead of whatever Node happens to be on your PATH.
  3. Env-file detect and seed. It detects the env files your app needs and seeds them, so you’re not hand-copying .env.example and guessing which keys matter.
  4. Session Postgres. Shopify apps need a session store; ReDock provisions a Postgres for it, no manual database setup.

The stacks docs cover the Shopify app environment, and the first-site guide covers importing your app.

What this environment is — and isn’t

This is the honest boundary, and it matters:

  • It is a place to develop a Shopify app: run it locally, complete OAuth, receive webhooks, iterate. The Node version, tunnel, env, and database are handled so you spend time on your code, not the plumbing.
  • It isn’t a store-management tool. ReDock doesn’t edit products, fulfill orders, or operate a live shop. If you’re looking for an agent that manages a storefront, that’s a different category — Shopify MCP: what agents can and can’t do draws that line carefully.

Keeping that distinction clear saves you from expecting the wrong thing.

Testing the full install flow locally

Because the tunnel is real HTTPS, you can exercise the parts that usually only work when deployed:

Everything runs on your Mac; only the tunnel is public, and only while you’re sharing it.

FAQ

Can ReDock manage my Shopify store’s products or orders?

No. ReDock is a Shopify app development environment — it runs and exposes your app locally with OAuth, webhooks, Node, env, and a session database. It does not manage storefront data.

Do I still need ngrok?

No. ReDock provides the public HTTPS tunnel your app needs for OAuth callbacks and webhooks, so you don’t wire in a separate tunnel tool.

How does it know which Node version to use?

It reads engines.node from your app, including a web/ subpackage if present, and runs the app on that version rather than whatever Node is on your PATH.


Building a Shopify app and tired of the setup? Download ReDock to ReDock and get a working local app dev environment.