NetNet is built entirely with Shopify Polaris components and App Bridge. No custom UI, no external redirects. Merchants never leave their admin.
For DTC operators who live in the Shopify admin and would rather not learn a second one to see their true profit.
Every button, card, table, and form uses Shopify's native design system. Consistent with the admin merchants already know.
Sidebar navigation via <s-app-nav>. Links via <s-link>. The app feels like a native section of Shopify admin.
No separate login. Authentication uses Shopify session tokens — merchants are already logged in.
Full Polaris + App Bridge is required for the 'Built for Shopify' badge. NetNet meets all requirements.
Dashboard LCP target < 2.5s. Pre-calculated aggregations mean no heavy queries on page load.
Dashboard, P&L, Orders, Products, Customers, Geography, Discounts, Marketing, UTM, AI Reports, Costs, Plan, Settings.
NetNet uses Shopify's own design system (Polaris components), so every button, table, card, and input field looks identical to native Shopify. Merchants never notice they're in a third-party app — there's no learning curve.
NetNet appears in Shopify's app navigation sidebar. One click from any admin page. No separate login, no external URL.
Merchants are already logged into Shopify. NetNet uses Shopify session tokens — instant access, no password required.
All plan upgrades happen inside the admin. No redirect to an external payment page. Shopify handles billing, we handle the app.
Shopify delivers order webhooks directly to NetNet. No polling, no delays. Data is live within 2 seconds of an action.
Stay in Shopify. Open orders, check profit, update costs — all without leaving the admin. No tab flipping.
Your accountant, manager, or store manager already has a Shopify staff account. Give them permission in one click. No separate user management.
Partners, agencies, and consultants who access your admin will see a native-looking profit app. Professional, not bolted-on.
Building on Polaris and App Bridge is not a shortcut to a design system. It is a decision about where attention should go.
A merchant checking margin does not want to learn a second interface. Every unfamiliar control, every different word for the same concept, every layout that behaves not-quite-like the admin costs a little attention that was meant for the numbers. Matching the host removes that tax entirely — navigation, tables, filters and date pickers behave the way the rest of the admin already taught you.
It also means the app inherits Shopify's accessibility and keyboard behaviour rather than reimplementing them badly, and stays visually current when Shopify updates its own surfaces.
No context switch. The data sits inside the admin you already have open, next to the orders it describes. Investigating an unusual figure does not mean moving between two tools and reconciling what each calls things.
Session and permissions come from Shopify. There is no separate login to manage, and staff access follows the permissions you have already configured.
Familiar conventions where they matter most. Financial tables are dense by necessity, and density is where an unfamiliar interface hurts most. Using the same table, filter and pagination patterns as the admin means the hardest screens are the ones you already know how to read.