Empora for WooCommerce
com.aoneahsan.empora
Empora for WooCommerce is a freemium WordPress plugin (free on WordPress.org, premium on CodeCanyon) that replaces a sprawling stack of single-purpose WooCommerce plugins with 35+ swappable modules behind one polished React admin โ backed by a Laravel SaaS dashboard, Stripe billing, multi-site license activation, and a self-hosted updater, all engineered in a single Turborepo monorepo with shared UI, auth, observability, and file-storage packages.
At a glance
- Category
- full-stack
- Status
- In progress
- Started
- Jan 2025
- Last updated
- 8 days ago
Identifier
com.aoneahsan.emporaPreview
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
Open the plugins page of a working WooCommerce store and count the rows.
Each row is an update cycle, a licence to renew and an author who may or may not still be maintaining the thing. Any one can break a checkout.
That is the tax on a platform whose greatest strength is that anybody can extend it.
A store that has been trading for a while is carrying a mixture nobody chose on purpose. It arrived one decision at a time, and every one of those decisions was reasonable on the day it was made.
Consolidating some of that into one product sounds obvious, right up to the point where you have to ship it.
A WooCommerce product lives in two worlds at once.
The free half is distributed through WordPress.org, which has its own review rules and its own settled idea of what a plugin is allowed to do inside somebody's store. The premium half is sold through CodeCanyon, which has different rules again.
WordPress.org does not distribute premium plugins.
So a premium edition cannot receive an update through the channel every WordPress user already trusts, which means it needs an updater of its own before it can ship a single fix. That constraint is the reason this product has a backend rather than only a plugin.
Empora is a Turborepo monorepo. Three things come out of it.
A WordPress plugin, carrying a React admin of 35+ modules that runs inside wp-admin rather than as a settings page which grew one tab at a time.
Then a marketing and dashboard web application, wrapped with Capacitor for Android.
A Laravel 11 backend handling auth, Stripe billing, licence activation and the self-hosted updater the premium edition depends on.
The proposition is one install, one update cycle and one place where the settings live.
The monorepo is what lets those three agree with each other. A licence issued by the backend, checked by the plugin and displayed in the dashboard is one concept held in one place rather than three implementations quietly drifting apart.
Now what it costs.
A monorepo means a single version bump touches PHP, React and Laravel at once. The arrangement that makes a release coherent also makes every release larger than it looks from the outside.
PHP and TypeScript are two ecosystems. Maintaining both means switching context several times a day, and the switch costs more than either language does on its own.
Two channels mean two rule sets.
A change that satisfies one reviewer is not automatically acceptable to the other, and finding that out happens at submission rather than at build time, which is the worst possible moment to learn it.
The self-hosted updater is a server that has to answer every time somebody's store checks for a version.
That is the single place in this product where being unavailable is not a private problem. Everything else here degrades quietly; the updater fails in front of a customer.
Licence activation is a boundary somebody will try to walk around. Every mechanism that makes that harder also makes a legitimate install slightly more irritating, and the balance between the two is a judgement rather than a setting.
No iOS. There is no Apple Developer account behind this work, so the mobile half of Empora is Android.
Empora is still in progress. What is written above is what exists today, and this page says nothing about what comes next, because a roadmap on a portfolio is a promise nobody signed.
Worth knowing
- One source tree, two products. The freemium-aware pipeline strips premium code from the WordPress.org zip but keeps it in the premium zip โ a genuinely non-trivial build achievement that keeps both marketplace artifacts in sync without forking.
- WordPress.org reviewer-aware by design. No calls-home without disclosure, no minified vendor code without sources, no premium upsell links in the .org listing's primary surfaces โ directory compliance treated as an engineering constraint, not an afterthought.
- License client degrades gracefully. A 14-day stale-cache window means the plugin keeps working through brief backend outages instead of hard-failing on a license check.
- Dual-auth segmentation. SaaS dashboard subscribers (Sanctum tokens) and casual tool users (Firebase Google One Tap) live on completely separate, architecturally isolated auth surfaces โ no accidental privilege bleed.
- Module architecture, not a megaplugin. 35+ admin pages are lazy-loaded and individually toggleable, so a store only ships the JS for the modules it enables.
- Zero-cost cross-cutting policy. FilesHub for uploads (never Firebase Storage), no Firebase Cloud Functions, client-side compute for the web tools (Tesseract/ONNX in the browser) โ sustainable economics by design.
- Honest scope. iOS is explicitly *not* targeted (no Apple Developer account) rather than half-shipped; the browser-extension folder holds assets only and is not a v1.0 surface.
- Shared-package platform thinking. UI, auth, observability, and file storage are extracted into `@aiowc/*` packages consumed by the plugin admin, the web app, and the backend asset pipeline alike.
Built with
- WordPress (PHP)
- React
- TypeScript
- Laravel
- Stripe
- CapacitorJS
- TailwindCSS
- 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.
- 35+ module React admin
- Free + premium WP plugin distribution
- License activation + self-hosted updater
- Stripe billing
- SaaS marketing/dashboard web app
- Capacitor Android wrapper
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 Empora for WooCommerce.
Oct 2026
Last change
Status is in-progress โ 8 days ago. Ongoing, so this row moves whenever something lands.
Questions
Common questions
The questions that actually arrive, answered in the first sentence.
- Who built Empora for WooCommerce?
- Ahsan Mahmood built it alone, and it is at empora.aoneahsan.com. The WordPress plugin in PHP, the React admin inside it, the Laravel backend and the Capacitor wrapper are one person's work across one Turborepo monorepo. It is marked in progress on this site, which means the page describes what exists rather than what is planned.
- Is Empora free?
- It is freemium: the plugin is distributed free on WordPress.org, and a premium edition is sold through CodeCanyon with Stripe billing and licence activation behind it. The split is a distribution fact rather than a marketing one โ WordPress.org and CodeCanyon have different rules, and a premium plugin cannot receive updates through WordPress.org at all. Which capabilities sit on which side is managed in the product itself.
- Does Empora work on iPhone?
- No. The plugin runs inside a WooCommerce store, so the store owner uses it in a browser, and the companion dashboard is wrapped with Capacitor for Android. There is no iOS build, because there is no Apple Developer account behind this work.
- What is in the Empora plugin admin?
- A React admin of 35+ modules, running inside wp-admin rather than as a settings page that grew one tab at a time. The point of putting many store-enhancement modules behind one install is that a store owner gets one update cycle instead of a dozen. Each module is configured in the same place, by the same interface.
- How does a premium Empora licence receive updates?
- Through a self-hosted updater that the Laravel backend serves, because WordPress.org does not distribute premium plugins. Licence activation runs against that same backend, so an install knows whether it is entitled to the version it is asking for. That is also the one component in this product where being unavailable is immediately visible to a customer.
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.