2025 · Architect & lead developer
The internal foundation behind every Shopify app we ship. A multi-process Next.js architecture with Shopify session auth, a typed event bus over BullMQ, GraphQL codegen, Prisma ORM with encrypted fields, GDPR compliance, and a Polaris + shadcn UI layer. All wired up so new apps start shipping features in minutes, not days.
Every Shopify app at Edition started the same way: set up auth, wire webhooks, configure the database, add GDPR endpoints, build the job queue, scaffold the admin UI. A full day of real work before you wrote a single line of product logic. The app template solves that. Clone, configure, ship.
The template handles the entire Shopify OAuth flow: App Bridge sends a session token, the server exchanges it for an offline access token and stores it encrypted in Postgres. A withAdminAuth middleware verifies every API request. Handlers receive a typed context with shop, session and store ID.
Three BullMQ queues (system, app-events and scheduled) handle everything that shouldn't block a request. AppBus is a typed event system: publish from any process, subscribe in the worker. Event names and payloads are defined in one map, so a typo is a build error.
GraphQL operations are organised by domain, written as #graphql tagged strings and typed end-to-end via codegen. The admin client caches per-shop clients with a 5-minute TTL and handles Shopify's leaky-bucket throttling transparently. It reads the actual cost from the API response, calculates the wait, and retries.
Shopify OAuth + session token exchange. Encrypted access tokens in Postgres. GDPR webhook handlers. Webhook HMAC validation with deduplication. BullMQ job queues with exponential backoff. Typed cross-process event bus. GraphQL codegen with inferred types. Shopify Polaris + shadcn/ui + Tailwind CSS. next-intl i18n with compile-time key checking. Health endpoint with DB + Redis checks.
Run pnpm setup, answer a few prompts, and the template generates your .env, starts Docker, runs migrations and opens the app. A single ROUTES registry drives sidebar, navigation and link generation. Environment variables are Zod-validated at startup.