Growthify (All-in-One Shopify Suite)
com.aoneahsan.growthify
Growthify is an all-in-one embedded Shopify app β popups, reviews, wishlists, bundles, cart upsells, cookie consent, push, analytics and 50 storefront blocks behind one subscription β built as a Remix + Neon-Postgres backend, a React 19 + Radix marketing site, and a Shopify theme-app-extension, all in a single yarn-workspaces monorepo.
At a glance
- Category
- full-stack
- Status
- In progress
- Started
- Jan 2025
- Last updated
- 2 months ago
Identifier
com.aoneahsan.growthifyPreview
Take a look before you go
The still below is painted first, then the running site loads behind it β so the dialog is never an empty rectangle waiting on a network round trip. Where a site allows framing the live app takes over; where it refuses, the still stays and says so. Nothing is requested until you press.
About
What this actually is
If a growth tool lives on its own domain, a merchant opens it once.
The Shopify admin is where the working day actually happens, and anything asking a merchant to leave it is competing directly with the reason they signed in.
A merchant's problem is rarely one thing either. It is a product page that does not convert. A collection nobody browses. A promotion that has to be configured in three separate places and then remembered in all three.
So Growthify is embedded.
It runs inside the Shopify admin and bills through Shopify's own billing, which means the tool and the subscription both live where the merchant already is rather than in a second place they have to remember.
Every capability also has to survive a merchant who installs it, configures nothing and expects it to work, because an embedded app has no onboarding call standing behind it.
The storefront half carries a stricter constraint again.
Changes to a shop's public pages ship as a theme app extension rather than as edits to the merchant's theme, so what the app adds and what the merchant owns stay separable. That is a distribution decision as much as a technical one.
Growthify is a yarn-workspaces monorepo. Three parts come out of it.
A Remix backend and admin application, embedded in the Shopify admin, carrying the conversion, merchandising and growth tooling.
A theme app extension shipping 50 Liquid blocks that a merchant places from the theme editor.
And a React 19 marketing web application, with a Capacitor wrapper prepared rather than published.
Shared TypeScript packages keep the three from disagreeing about the same merchant, and Prisma holds the data underneath them.
The marketing site exists because an embedded app is invisible until somebody installs it. A merchant deciding whether to install has nowhere inside the admin to read about it first.
Tiered billing plans are defined in the app and charged through Shopify's billing, so a subscription to this sits with the merchant's other Shopify charges instead of arriving as a separate line from a company they have never heard of.
The costs start on the storefront.
A Liquid block renders inside a theme somebody else wrote. 50 blocks is 50 pieces of markup that have to behave in a design nobody here has ever seen, which is a genuinely different discipline from building a page you control end to end.
Embedded means somebody else owns the frame.
The platform's conventions, its session model and its review process are givens rather than choices, and a change on their side is a change nobody here scheduled. That is the trade for being in the one screen that matters.
Billing through Shopify is the right call and it removes a lever. Pricing moves through their model rather than through mine.
One person maintaining a Remix app, a Liquid extension and a React site is one person moving between three sets of conventions in a day. The shared packages reduce that and they do not remove it.
The Capacitor wrapper is prepared and not published, and this page uses the word prepared because that is the accurate one.
There is no iOS build. There is no Apple Developer account behind this work, so the mobile route here is Android.
Growthify is in progress. The honest version of that sentence is a page describing the blocks a merchant can place today, and saying nothing at all about the ones they cannot.
Worth knowing
- The "sixteen-module growth suite" headline resolves to 7 typed core modules (popup, reviews, wishlist, bundles, cart, cookie_consent, reports) expressed through 50 storefront Liquid blocks β a deliberate moduleβblock fan-out, not 50 disconnected widgets.
- Two UI systems on purpose: Shopify Polaris inside the embedded admin (so it's indistinguishable from native Shopify) and Radix Themes on the public marketing site β each chosen for its environment instead of forcing one library everywhere.
- License = Shopify App Subscriptions only, no custom keys. Premium features are gated server-side by typed `Entitlement` records with request-time `maxUsage` enforcement β billing truth lives in `billing-plans.ts` as the single source.
- Honest engineering decision recorded in code: Prisma was *not* blindly bumped to 7 β it's pinned to 6 with a loud in-file comment because the official Shopify session-storage adapter doesn't support Prisma 7 yet. Build stays green; the deferral is documented rather than hacked.
- No-Extension rule is IRON-SOLID β the project explicitly refuses to grow a browser extension; a generic "add onboarding extension" prompt is blocked unless the user types an exact confirmation sentence. (An untracked `apps/extension/` leftover exists in the worktree but is deliberately not committed.)
- Serverless, branch-per-environment data β Neon Postgres with Prisma, Fly.io for the app, Vercel for marketing: no always-on paid cluster.
- Theme-extension self-validates β its typecheck step asserts all 50 blocks have matching assets and all 50 schemas are valid, so a missing asset/schema fails the build.
- Trapeze-driven native config (`apps-config.yaml`) keeps the Capacitor identifiers in sync declaratively.
Built with
- Remix
- React
- TypeScript
- Shopify App
- Liquid (Theme App Extension)
- Prisma
- TailwindCSS
- CapacitorJS
- Turborepo/Yarn Workspaces
Key features
What it does, and what that costs to build
Each of these is a capability the stack genuinely provides. None of them is an outcome nobody measured β there is no "cut onboarding by 40%" on this page, because no one measured onboarding.
- Embedded Shopify admin app (Remix)
- 50 storefront Liquid blocks (theme app extension)
- Tiered Shopify billing plans
- Marketing web app (React 19)
- Shared TypeScript packages
- Capacitor mobile wrapper (prepared)
Screenshots
5 slots, 2 of them filled in
These are designed frames, not pictures. Each one records what belongs in the slot and at what width; the capture itself is taken from the running app. Drawing a fake screenshot here would put an image on the site that no build has ever produced.
Timeline
Still being worked on
Jan 2025
Work started
The earliest month on record for Growthify (All-in-One Shopify Suite).
Sep 2026
Last change
Status is in-progress β 2 months ago. Ongoing, so this row moves whenever something lands.
Questions
Common questions
The questions that actually arrive, answered in the first sentence.
- Who built Growthify?
- Ahsan Mahmood built it alone, and the marketing surface is at growthify.aoneahsan.com. The Remix admin app, the theme app extension, the shared TypeScript packages and the React marketing site all come out of one yarn-workspaces monorepo maintained by one person. It is marked in progress here, so this page describes what runs today.
- Is Growthify free?
- Growthify carries tiered billing plans defined in the app and charged through Shopify's own billing, so a merchant's subscription to it sits alongside their other Shopify charges rather than in a separate checkout. Which tier gives what is managed inside the product, because that is the sort of detail a portfolio page gets wrong within a month of writing it down.
- Does Growthify work on iPhone?
- No. Growthify is an embedded Shopify app used in a browser inside the Shopify admin, and the marketing application has a Capacitor wrapper prepared for Android rather than published. There is no iOS build and there never has been, because there is no Apple Developer account behind this work.
- What are the 50 storefront blocks?
- They are Liquid blocks shipped as a theme app extension, which a merchant places from the theme editor rather than by editing theme code. That is what lets storefront changes arrive as an app capability instead of as a modification somebody has to undo later. The blocks cover the conversion and merchandising side of the product.
- Where does Growthify actually run?
- Inside the Shopify admin, as an embedded app built on Remix, with a separate public marketing site outside it. Being embedded is the whole design: a merchant runs their shop from that one screen, and a growth tool that asks them to open a different one is a tool that gets opened once. Prisma holds the data behind it.
Keep looking
More full-stack products
- CL
ClearHire
com.aoneahsan.clearhire
A hiring platform built around one idea: employment claims should be checkable. Resume builder, candidate and company workflows, a verified-employment system, and 50+ career tools.
- TR
Trizlink
com.trizlink.app
Branded short links, link-in-bio pages, click analytics and a suite of utilities.
- LA
LabFlow
com.aoneahsan.labflow
Multi-tenant laboratory information system across three production surfaces.