Shopify apps
Apps that live inside the Shopify admin rather than beside it. Native Shopify APIs, an embedded interface, billing through the Shopify Billing API.
Our own apps for online retail
JRMedia builds its own Shopify apps. Each one grows out of a problem in our own retail work, runs there for months in real operation — and is only released once it has proven itself.
Built and run by one person. No roadmap promises, no features built on spec.
Focus areas
JRMedia's apps take shape in the Shopify ecosystem and in everything that connects to it. These topics come up again and again.
Apps that live inside the Shopify admin rather than beside it. Native Shopify APIs, an embedded interface, billing through the Shopify Billing API.
Changing prices, stock and metafields across thousands of products — in a way that lets every change be undone completely.
Connections between shop, marketplaces and shipping. REST and GraphQL, with proper handling of rate limits, retries and partial failures.
Recurring manual work becomes a job that runs overnight and leaves a readable report in the morning — including when something fails.
Interfaces you can operate without a manual. Accessible, as usable on a phone as at a desk, in the visual language of the platform.
Release is not the end: monitoring, updates to new Shopify API versions, and answers to user questions.
How it starts
Every JRMedia app begins as our own problem in day-to-day retail — not as a market gap and not as a commission. Only what has proven itself in our own operation gets released.
It starts with a job that repeats every week in our own shop and eats far too much time.
A clear use caseA lean build that solves exactly that one case. No settings yet, no edge cases yet.
Working prototypeWhatever daily use turns out to be missing gets added: edge cases, failure states, backups, and an interface that needs no explaining.
Rounded-out appThe app runs in real operation with real products and real prices. Whatever gets in the way is fixed rather than documented.
Months in daily useOnly once the app works reliably for our own shop does it go to the Shopify App Store.
Official releaseBetween the first line of code and release there are usually several months of daily use.
Technology
JRMedia works with TypeScript, React and Node.js, and uses each platform's native APIs rather than abstraction layers. The stack is deliberately narrow so the apps are still maintainable in two years.
Showcase
These JRMedia apps have made the whole way from our own need to the Shopify App Store.
Live · Shopify
Maintain cost prices, calculate retail prices you can explain.
Approach
JRMedia builds few apps and uses them itself. Almost everything else follows from that.
Every weakness shows up in our own shop first. Whatever is annoying in daily use gets fixed before anyone else ever sees it.
Better to solve one problem completely than five halfway. What is not needed does not get built — which keeps the apps understandable and fast.
Bulk changes to prices or stock are risky. Backup and rollback belong in the foundation, not in an add-on package.
Only the data a feature actually needs gets processed. Permissions are scoped as tightly as possible and processing is documented.
Questions
Questions about JRMedia's apps and about how they come about.
Every app begins as our own problem in day-to-day retail. First comes a lean version that solves exactly that one case; then it is built out step by step and used in our own shop in real operation. Only once it works reliably there does it go to the Shopify App Store.
Because that is where our own retail happens. The problems the apps grow out of come up while working in the Shopify admin every day — so the solution belongs there too, not in a separate tool alongside it.
The apps process only the data their features actually need, and request Shopify permissions as narrowly as possible. No end-customer data is processed. What an individual app processes is set out in that app's own privacy policy.
Before every bulk change the previous state is backed up, so the action can be undone completely. That backup is part of the core design and is not tied to a paid plan.
Yes, by e-mail to support@jrmedia.software. The reply comes directly from the person who builds the app — there is no support layer in between.
Yes. Shopify releases new API versions regularly and retires older ones, so maintenance is mandatory anyway. On top of that, every app keeps running in our own shop — which surfaces bugs and gaps by itself.
Just write. The e-mail goes straight to the person who builds the apps — not into a ticketing system.
Custom development on request.