[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"entry-\u002Fcase-studies\u002Fluxora-hair-luxury-ecommerce-flutter-app\u002F":3},{"id":4,"type":5,"slug":6,"path":7,"title":8,"excerpt":9,"description":10,"date":11,"modified":11,"featuredMedia":12,"heroImage":13,"heroImageWebp":13,"tier":14,"softKind":4,"blocks":15,"contentHtml":90,"renderHtml":91,"plainText":92},null,"page","luxora-hair-luxury-ecommerce-flutter-app","\u002Fcase-studies\u002Fluxora-hair-luxury-ecommerce-flutter-app\u002F","Luxora Hair Ecommerce App","Luxora Hair is a live Australian luxury hair store: Next.js SEO storefront, Flutter customer and admin apps for web, iOS, and Android, Stripe checkout, Elite loyalty, and AR try-on. Designed and built end-to-end by AL Phesda Interactive.","Case study: Luxora Hair, a custom Australian luxury hair ecommerce platform. Next.js storefront, Flutter iOS and Android apps, Stripe, and AR try-on.","2026-08-28T15:00:00",0,"\u002Fbrand\u002Fcase-studies\u002Fluxora-hair\u002Fluxora-hair-desktop-poster.webp","A",[16,19,21,23,25,27,29,31,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88],{"type":17,"text":18},"h2","The brief",{"type":17,"text":20},"A storefront Google can actually read",{"type":17,"text":22},"Flutter on phone, web, and native iOS and Android",{"type":17,"text":24},"Commerce that is not a generic catalogue",{"type":17,"text":26},"Admin the operators actually open",{"type":17,"text":28},"Technical architecture",{"type":17,"text":30},"What we delivered",{"type":32,"text":33},"p","Luxora Hair is an Australian luxury hair brand selling 100% human hair wigs, extensions, and accessories. AL Phesda Interactive designed and developed the full commerce platform: a search-ready Next.js storefront, a Flutter customer app on web plus native iOS and Android, Stripe payments, Elite loyalty, AR try-on, a Beauty Concierge, and the Flutter admin the team uses every day.",{"type":32,"text":35},"This is not a Shopify theme with a logo swap. It is one product across website, web app, and native mobile, sharing catalogue, cart, checkout, and operations so the brand feels the same on a laptop and in a pocket.",{"type":32,"text":37},"Build a luxury ecommerce system that can rank on Google, take Australian payments cleanly, and still feel like a native app on iPhone and Android. Shoppers needed catalogue, variants, cart, wishlist, and Stripe checkout. Staff needed a real admin for products, orders, CMS, loyalty, and community, not a spreadsheet beside a theme.",{"type":32,"text":39},"If you sell beauty, hair, or premium retail and templates keep flattening the brand, this is the kind of build we do. Book a Discovery Session and we will map what a custom store plus app should look like for your catalogue.",{"type":32,"text":41},"The public site is a Next.js storefront on Vercel. Category and product pages ship as real HTML so search engines index wigs, extensions, and accessories without waiting on a client-rendered app shell. GST, shipping zones, and Australian Consumer Law copy sit in the commerce layer, not in a plugin afterthought.",{"type":32,"text":43},"That split is the point. Marketing and SEO live on the website. Rich shopping, try-on, and member tools live in the Flutter app at luxorahair.com.au\u002Fapp . Same domain, same APIs, two surfaces that know their job. See our ecommerce website design guide for how we choose that split on other Melbourne builds.",{"type":32,"text":45},"One Flutter codebase (Riverpod, go_router) drives the customer app on the web and as native iOS and Android binaries. Shoppers get catalogue filters, variants (length, colour, texture, density, lace), cart and wishlist sync, Stripe Payment Sheet with Apple Pay and Google Pay, order tracking, and a path to book a consultation.",{"type":32,"text":47},"Native store listings can follow once review assets are locked. The product already runs as a same-origin web app and as native builds, which is the honest Melbourne answer when a client needs iOS and Android without two separate codebases. That is the work behind our app development service.",{"type":32,"text":49},"Luxury hair does not sell like a T-shirt grid. We built the extras that make the store match how customers actually decide:",{"type":32,"text":51},"Luxora Elite: Stripe subscription loyalty with points tiers, referrals, birthday club, and gated drops for invite-only and elite-only pieces.",{"type":32,"text":53},"Custom wig builder: length, density, lace, cap, and texture with an auto-quote, so a made-for-you piece is a product flow, not an email thread.",{"type":32,"text":55},"AR try-on: in-house Live AR (ARKit and ARCore) plus AI photo try-on, so shoppers can see a look before they buy.",{"type":32,"text":57},"Beauty Concierge: a Gemini-powered chat with tool use and a human handoff, plus WhatsApp as a second door. That is the same class of work we do in AI and automation engineering .",{"type":32,"text":59},"Inventory reservations, restock alerts, returns, and self-cancel for unshipped orders sit in the same system. Payments run through Stripe, including wallets and a path to Australian BNPL via the Stripe Dashboard.",{"type":32,"text":61},"Staff run the business from a Flutter admin at luxorahair.com.au\u002Fadmin . Orders, products, categories, discounts, shipping, customers, Elite, community, CMS pages, media, try-on settings, builder pricing, reviews, and inbox live in one console. No separate WordPress, no theme customiser, no waiting on a developer to change a landing page.",{"type":32,"text":63},"That operator product is why this sits next to our custom software work as well as ecommerce. The storefront is the shop. The admin is the business.",{"type":32,"text":65},"SEO storefront: Next.js 16 (App Router), React 19, TypeScript, Tailwind, GSAP motion, hosted on Vercel with ISR for catalogue HTML.",{"type":32,"text":67},"Customer and admin apps: Flutter with Riverpod and go_router. Web at \u002Fapp and \u002Fadmin on the same origin. Native iOS (bundle com.luxorahair.luxoraApp) and Android (com.luxorahair.luxora_app).",{"type":32,"text":69},"Commerce data: Firebase Auth, Cloud Firestore, Storage, and App Check. Shared Dart contracts in a Melos monorepo so web APIs and the app agree on cart, catalogue, and orders.",{"type":32,"text":71},"Payments: Stripe Payment Element and Express Checkout on the web, native Payment Sheet on mobile, AUD pricing, webhooks for orders, Elite, and inventory.",{"type":32,"text":73},"Email and SMS: Resend for transactional mail. Mobile Message for Australian SMS.",{"type":32,"text":75},"AI and AR: Google Gemini for the Beauty Concierge and photo try-on. Live AR via ARKit and ARCore.",{"type":32,"text":77},"Security rules, privacy export and delete, and Australian GST handling were part of the build, not a later compliance pass.",{"type":32,"text":79},"Live luxury storefront at luxorahair.com.au with catalogue, search, cart, and Stripe checkout.",{"type":32,"text":81},"Flutter customer app on the web plus native iOS and Android from one codebase.",{"type":32,"text":83},"Flutter admin CMS for products, orders, loyalty, community, and content.",{"type":32,"text":85},"Elite membership, custom wig builder, AR try-on, and Gemini Beauty Concierge.",{"type":32,"text":87},"Australian-ready commerce: GST, shipping zones, wallets, and transactional email.",{"type":32,"text":89},"Need a custom ecommerce platform, a Flutter app for iOS and Android, or both on one backend? Explore our website design and development , app development , and custom software services, or book a free Discovery Session and leave with a clear build plan.","\u003Csection>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.luxorahair.com.au\" target=\"_blank\" rel=\"noopener\">Luxora Hair\u003C\u002Fa> is an Australian luxury hair brand selling 100% human hair wigs, extensions, and accessories. AL Phesda Interactive designed and developed the full commerce platform: a search-ready Next.js storefront, a Flutter customer app on web plus native iOS and Android, Stripe payments, Elite loyalty, AR try-on, a Beauty Concierge, and the Flutter admin the team uses every day.\u003C\u002Fp>\n\u003Cp>This is not a Shopify theme with a logo swap. It is one product across website, web app, and native mobile, sharing catalogue, cart, checkout, and operations so the brand feels the same on a laptop and in a pocket.\u003C\u002Fp>\n\u003Cfigure class=\"rich-media rich-media--video rich-media--landscape\">\n\u003Cvideo autoplay loop muted playsinline preload=\"metadata\" poster=\"\u002Fbrand\u002Fcase-studies\u002Fluxora-hair\u002Fluxora-hair-desktop-poster.webp\" width=\"1280\" height=\"720\" aria-label=\"Luxora Hair desktop ecommerce storefront demonstration\">\n\u003Csource src=\"\u002Fbrand\u002Fcase-studies\u002Fluxora-hair\u002Fluxora-hair-desktop-storefront.mp4\" type=\"video\u002Fmp4\" \u002F>\n\u003C\u002Fvideo>\n\u003Cfigcaption class=\"rich-caption\">Desktop storefront on luxorahair.com.au: catalogue, cart, and checkout in the brand's own visual language.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003C\u002Fsection>\n\u003Csection>\n\u003Ch2>The brief\u003C\u002Fh2>\n\u003Cp>Build a luxury ecommerce system that can rank on Google, take Australian payments cleanly, and still feel like a native app on iPhone and Android. Shoppers needed catalogue, variants, cart, wishlist, and Stripe checkout. Staff needed a real admin for products, orders, CMS, loyalty, and community, not a spreadsheet beside a theme.\u003C\u002Fp>\n\u003Cp>If you sell beauty, hair, or premium retail and templates keep flattening the brand, this is the kind of build we do. \u003Ca href=\"\u002Fbook-a-consultation\u002F\">Book a Discovery Session\u003C\u002Fa> and we will map what a custom store plus app should look like for your catalogue.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection>\n\u003Ch2>A storefront Google can actually read\u003C\u002Fh2>\n\u003Cp>The public site is a Next.js storefront on Vercel. Category and product pages ship as real HTML so search engines index wigs, extensions, and accessories without waiting on a client-rendered app shell. GST, shipping zones, and Australian Consumer Law copy sit in the commerce layer, not in a plugin afterthought.\u003C\u002Fp>\n\u003Cp>That split is the point. Marketing and SEO live on the website. Rich shopping, try-on, and member tools live in the Flutter app at \u003Ca href=\"https:\u002F\u002Fwww.luxorahair.com.au\u002Fapp\" target=\"_blank\" rel=\"noopener\">luxorahair.com.au\u002Fapp\u003C\u002Fa>. Same domain, same APIs, two surfaces that know their job. See our \u003Ca href=\"\u002Fecommerce-website-design-melbourne\u002F\">ecommerce website design\u003C\u002Fa> guide for how we choose that split on other Melbourne builds.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection>\n\u003Ch2>Flutter on phone, web, and native iOS and Android\u003C\u002Fh2>\n\u003Cp>One Flutter codebase (Riverpod, go_router) drives the customer app on the web and as native iOS and Android binaries. Shoppers get catalogue filters, variants (length, colour, texture, density, lace), cart and wishlist sync, Stripe Payment Sheet with Apple Pay and Google Pay, order tracking, and a path to book a consultation.\u003C\u002Fp>\n\u003Cfigure class=\"rich-media rich-media--video rich-media--portrait\">\n\u003Cvideo autoplay loop muted playsinline preload=\"metadata\" poster=\"\u002Fbrand\u002Fcase-studies\u002Fluxora-hair\u002Fluxora-hair-mobile-poster.webp\" width=\"576\" height=\"1280\" aria-label=\"Luxora Hair Flutter mobile app demonstration on Android\">\n\u003Csource src=\"\u002Fbrand\u002Fcase-studies\u002Fluxora-hair\u002Fluxora-hair-mobile-app.mp4\" type=\"video\u002Fmp4\" \u002F>\n\u003C\u002Fvideo>\n\u003Cfigcaption class=\"rich-caption\">Flutter customer app on a phone: shop, book, and pay without leaving the brand.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003Cp>Native store listings can follow once review assets are locked. The product already runs as a same-origin web app and as native builds, which is the honest Melbourne answer when a client needs iOS and Android without two separate codebases. That is the work behind our \u003Ca href=\"\u002Fapp-developer-melbourne\u002F\">app development\u003C\u002Fa> service.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection>\n\u003Ch2>Commerce that is not a generic catalogue\u003C\u002Fh2>\n\u003Cp>Luxury hair does not sell like a T-shirt grid. We built the extras that make the store match how customers actually decide:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Luxora Elite:\u003C\u002Fstrong> Stripe subscription loyalty with points tiers, referrals, birthday club, and gated drops for invite-only and elite-only pieces.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom wig builder:\u003C\u002Fstrong> length, density, lace, cap, and texture with an auto-quote, so a made-for-you piece is a product flow, not an email thread.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>AR try-on:\u003C\u002Fstrong> in-house Live AR (ARKit and ARCore) plus AI photo try-on, so shoppers can see a look before they buy.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Beauty Concierge:\u003C\u002Fstrong> a Gemini-powered chat with tool use and a human handoff, plus WhatsApp as a second door. That is the same class of work we do in \u003Ca href=\"\u002Fai-automation-engineering\u002F\">AI and automation engineering\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Inventory reservations, restock alerts, returns, and self-cancel for unshipped orders sit in the same system. Payments run through Stripe, including wallets and a path to Australian BNPL via the Stripe Dashboard.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection>\n\u003Ch2>Admin the operators actually open\u003C\u002Fh2>\n\u003Cp>Staff run the business from a Flutter admin at \u003Ca href=\"https:\u002F\u002Fwww.luxorahair.com.au\u002Fadmin\" target=\"_blank\" rel=\"noopener\">luxorahair.com.au\u002Fadmin\u003C\u002Fa>. Orders, products, categories, discounts, shipping, customers, Elite, community, CMS pages, media, try-on settings, builder pricing, reviews, and inbox live in one console. No separate WordPress, no theme customiser, no waiting on a developer to change a landing page.\u003C\u002Fp>\n\u003Cp>That operator product is why this sits next to our \u003Ca href=\"\u002Fsoftware-development-melbourne\u002F\">custom software\u003C\u002Fa> work as well as ecommerce. The storefront is the shop. The admin is the business.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection>\n\u003Ch2>Technical architecture\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>SEO storefront:\u003C\u002Fstrong> Next.js 16 (App Router), React 19, TypeScript, Tailwind, GSAP motion, hosted on Vercel with ISR for catalogue HTML.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customer and admin apps:\u003C\u002Fstrong> Flutter with Riverpod and go_router. Web at \u002Fapp and \u002Fadmin on the same origin. Native iOS (bundle com.luxorahair.luxoraApp) and Android (com.luxorahair.luxora_app).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Commerce data:\u003C\u002Fstrong> Firebase Auth, Cloud Firestore, Storage, and App Check. Shared Dart contracts in a Melos monorepo so web APIs and the app agree on cart, catalogue, and orders.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Payments:\u003C\u002Fstrong> Stripe Payment Element and Express Checkout on the web, native Payment Sheet on mobile, AUD pricing, webhooks for orders, Elite, and inventory.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Email and SMS:\u003C\u002Fstrong> Resend for transactional mail. Mobile Message for Australian SMS.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>AI and AR:\u003C\u002Fstrong> Google Gemini for the Beauty Concierge and photo try-on. Live AR via ARKit and ARCore.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Security rules, privacy export and delete, and Australian GST handling were part of the build, not a later compliance pass.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection>\n\u003Ch2>What we delivered\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>Live luxury storefront at \u003Ca href=\"https:\u002F\u002Fwww.luxorahair.com.au\" target=\"_blank\" rel=\"noopener\">luxorahair.com.au\u003C\u002Fa> with catalogue, search, cart, and Stripe checkout.\u003C\u002Fli>\n\u003Cli>Flutter customer app on the web plus native iOS and Android from one codebase.\u003C\u002Fli>\n\u003Cli>Flutter admin CMS for products, orders, loyalty, community, and content.\u003C\u002Fli>\n\u003Cli>Elite membership, custom wig builder, AR try-on, and Gemini Beauty Concierge.\u003C\u002Fli>\n\u003Cli>Australian-ready commerce: GST, shipping zones, wallets, and transactional email.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Need a custom ecommerce platform, a Flutter app for iOS and Android, or both on one backend? Explore our \u003Ca href=\"\u002Fwebsite-development-melbourne\u002F\">website design and development\u003C\u002Fa>, \u003Ca href=\"\u002Fapp-developer-melbourne\u002F\">app development\u003C\u002Fa>, and \u003Ca href=\"\u002Fsoftware-development-melbourne\u002F\">custom software\u003C\u002Fa> services, or \u003Ca href=\"\u002Fbook-a-consultation\u002F\">book a free Discovery Session\u003C\u002Fa> and leave with a clear build plan.\u003C\u002Fp>\n\u003C\u002Fsection>","\u003Csection class=\"rich-section\" data-reveal>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.luxorahair.com.au\" target=\"_blank\" rel=\"noopener\">Luxora Hair\u003C\u002Fa> is an Australian luxury hair brand selling 100% human hair wigs, extensions, and accessories. AL Phesda Interactive designed and developed the full commerce platform: a search-ready Next.js storefront, a Flutter customer app on web plus native iOS and Android, Stripe payments, Elite loyalty, AR try-on, a Beauty Concierge, and the Flutter admin the team uses every day.\u003C\u002Fp>\n\u003Cp>This is not a Shopify theme with a logo swap. It is one product across website, web app, and native mobile, sharing catalogue, cart, checkout, and operations so the brand feels the same on a laptop and in a pocket.\u003C\u002Fp>\n\u003Cfigure class=\"rich-media rich-media--video rich-media--landscape\">\n\u003Cvideo autoplay loop muted playsinline preload=\"metadata\" poster=\"\u002Fbrand\u002Fcase-studies\u002Fluxora-hair\u002Fluxora-hair-desktop-poster.webp\" width=\"1280\" height=\"720\" aria-label=\"Luxora Hair desktop ecommerce storefront demonstration\">\n\u003Csource src=\"\u002Fbrand\u002Fcase-studies\u002Fluxora-hair\u002Fluxora-hair-desktop-storefront.mp4\" type=\"video\u002Fmp4\" \u002F>\n\u003C\u002Fvideo>\n\u003Cfigcaption class=\"rich-caption\">Desktop storefront on luxorahair.com.au: catalogue, cart, and checkout in the brand's own visual language.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003C\u002Fsection>\n\u003Csection class=\"rich-section\" data-reveal>\n\u003Ch2>The brief\u003C\u002Fh2>\n\u003Cp>Build a luxury ecommerce system that can rank on Google, take Australian payments cleanly, and still feel like a native app on iPhone and Android. Shoppers needed catalogue, variants, cart, wishlist, and Stripe checkout. Staff needed a real admin for products, orders, CMS, loyalty, and community, not a spreadsheet beside a theme.\u003C\u002Fp>\n\u003Cp>If you sell beauty, hair, or premium retail and templates keep flattening the brand, this is the kind of build we do. \u003Ca href=\"\u002Fbook-a-consultation\u002F\">Book a Discovery Session\u003C\u002Fa> and we will map what a custom store plus app should look like for your catalogue.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection class=\"rich-section\" data-reveal>\n\u003Ch2>A storefront Google can actually read\u003C\u002Fh2>\n\u003Cp>The public site is a Next.js storefront on Vercel. Category and product pages ship as real HTML so search engines index wigs, extensions, and accessories without waiting on a client-rendered app shell. GST, shipping zones, and Australian Consumer Law copy sit in the commerce layer, not in a plugin afterthought.\u003C\u002Fp>\n\u003Cp>That split is the point. Marketing and SEO live on the website. Rich shopping, try-on, and member tools live in the Flutter app at \u003Ca href=\"https:\u002F\u002Fwww.luxorahair.com.au\u002Fapp\" target=\"_blank\" rel=\"noopener\">luxorahair.com.au\u002Fapp\u003C\u002Fa>. Same domain, same APIs, two surfaces that know their job. See our \u003Ca href=\"\u002Fecommerce-website-design-melbourne\u002F\">ecommerce website design\u003C\u002Fa> guide for how we choose that split on other Melbourne builds.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection class=\"rich-section\" data-reveal>\n\u003Ch2>Flutter on phone, web, and native iOS and Android\u003C\u002Fh2>\n\u003Cp>One Flutter codebase (Riverpod, go_router) drives the customer app on the web and as native iOS and Android binaries. Shoppers get catalogue filters, variants (length, colour, texture, density, lace), cart and wishlist sync, Stripe Payment Sheet with Apple Pay and Google Pay, order tracking, and a path to book a consultation.\u003C\u002Fp>\n\u003Cfigure class=\"rich-media rich-media--video rich-media--portrait\">\n\u003Cvideo autoplay loop muted playsinline preload=\"metadata\" poster=\"\u002Fbrand\u002Fcase-studies\u002Fluxora-hair\u002Fluxora-hair-mobile-poster.webp\" width=\"576\" height=\"1280\" aria-label=\"Luxora Hair Flutter mobile app demonstration on Android\">\n\u003Csource src=\"\u002Fbrand\u002Fcase-studies\u002Fluxora-hair\u002Fluxora-hair-mobile-app.mp4\" type=\"video\u002Fmp4\" \u002F>\n\u003C\u002Fvideo>\n\u003Cfigcaption class=\"rich-caption\">Flutter customer app on a phone: shop, book, and pay without leaving the brand.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003Cp>Native store listings can follow once review assets are locked. The product already runs as a same-origin web app and as native builds, which is the honest Melbourne answer when a client needs iOS and Android without two separate codebases. That is the work behind our \u003Ca href=\"\u002Fapp-developer-melbourne\u002F\">app development\u003C\u002Fa> service.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection class=\"rich-section\" data-reveal>\n\u003Ch2>Commerce that is not a generic catalogue\u003C\u002Fh2>\n\u003Cp>Luxury hair does not sell like a T-shirt grid. We built the extras that make the store match how customers actually decide:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Luxora Elite:\u003C\u002Fstrong> Stripe subscription loyalty with points tiers, referrals, birthday club, and gated drops for invite-only and elite-only pieces.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom wig builder:\u003C\u002Fstrong> length, density, lace, cap, and texture with an auto-quote, so a made-for-you piece is a product flow, not an email thread.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>AR try-on:\u003C\u002Fstrong> in-house Live AR (ARKit and ARCore) plus AI photo try-on, so shoppers can see a look before they buy.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Beauty Concierge:\u003C\u002Fstrong> a Gemini-powered chat with tool use and a human handoff, plus WhatsApp as a second door. That is the same class of work we do in \u003Ca href=\"\u002Fai-automation-engineering\u002F\">AI and automation engineering\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Inventory reservations, restock alerts, returns, and self-cancel for unshipped orders sit in the same system. Payments run through Stripe, including wallets and a path to Australian BNPL via the Stripe Dashboard.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection class=\"rich-section\" data-reveal>\n\u003Ch2>Admin the operators actually open\u003C\u002Fh2>\n\u003Cp>Staff run the business from a Flutter admin at \u003Ca href=\"https:\u002F\u002Fwww.luxorahair.com.au\u002Fadmin\" target=\"_blank\" rel=\"noopener\">luxorahair.com.au\u002Fadmin\u003C\u002Fa>. Orders, products, categories, discounts, shipping, customers, Elite, community, CMS pages, media, try-on settings, builder pricing, reviews, and inbox live in one console. No separate WordPress, no theme customiser, no waiting on a developer to change a landing page.\u003C\u002Fp>\n\u003Cp>That operator product is why this sits next to our \u003Ca href=\"\u002Fsoftware-development-melbourne\u002F\">custom software\u003C\u002Fa> work as well as ecommerce. The storefront is the shop. The admin is the business.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection class=\"rich-section\" data-reveal>\n\u003Ch2>Technical architecture\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>SEO storefront:\u003C\u002Fstrong> Next.js 16 (App Router), React 19, TypeScript, Tailwind, GSAP motion, hosted on Vercel with ISR for catalogue HTML.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customer and admin apps:\u003C\u002Fstrong> Flutter with Riverpod and go_router. Web at \u002Fapp and \u002Fadmin on the same origin. Native iOS (bundle com.luxorahair.luxoraApp) and Android (com.luxorahair.luxora_app).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Commerce data:\u003C\u002Fstrong> Firebase Auth, Cloud Firestore, Storage, and App Check. Shared Dart contracts in a Melos monorepo so web APIs and the app agree on cart, catalogue, and orders.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Payments:\u003C\u002Fstrong> Stripe Payment Element and Express Checkout on the web, native Payment Sheet on mobile, AUD pricing, webhooks for orders, Elite, and inventory.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Email and SMS:\u003C\u002Fstrong> Resend for transactional mail. Mobile Message for Australian SMS.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>AI and AR:\u003C\u002Fstrong> Google Gemini for the Beauty Concierge and photo try-on. Live AR via ARKit and ARCore.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Security rules, privacy export and delete, and Australian GST handling were part of the build, not a later compliance pass.\u003C\u002Fp>\n\u003C\u002Fsection>\n\u003Csection class=\"rich-section\" data-reveal>\n\u003Ch2>What we delivered\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>Live luxury storefront at \u003Ca href=\"https:\u002F\u002Fwww.luxorahair.com.au\" target=\"_blank\" rel=\"noopener\">luxorahair.com.au\u003C\u002Fa> with catalogue, search, cart, and Stripe checkout.\u003C\u002Fli>\n\u003Cli>Flutter customer app on the web plus native iOS and Android from one codebase.\u003C\u002Fli>\n\u003Cli>Flutter admin CMS for products, orders, loyalty, community, and content.\u003C\u002Fli>\n\u003Cli>Elite membership, custom wig builder, AR try-on, and Gemini Beauty Concierge.\u003C\u002Fli>\n\u003Cli>Australian-ready commerce: GST, shipping zones, wallets, and transactional email.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Need a custom ecommerce platform, a Flutter app for iOS and Android, or both on one backend? Explore our \u003Ca href=\"\u002Fwebsite-development-melbourne\u002F\">website design and development\u003C\u002Fa>, \u003Ca href=\"\u002Fapp-developer-melbourne\u002F\">app development\u003C\u002Fa>, and \u003Ca href=\"\u002Fsoftware-development-melbourne\u002F\">custom software\u003C\u002Fa> services, or \u003Ca href=\"\u002Fbook-a-consultation\u002F\">book a free Discovery Session\u003C\u002Fa> and leave with a clear build plan.\u003C\u002Fp>\n\u003C\u002Fsection>","Luxora Hair is an Australian luxury hair brand selling 100% human hair wigs, extensions, and accessories. AL Phesda Interactive designed and developed the full commerce platform: a search-ready Next.js storefront, a Flutter customer app on web plus native iOS and Android, Stripe payments, Elite loyalty, AR try-on, a Beauty Concierge, and the Flutter admin the team uses every day. This is not a Shopify theme with a logo swap. It is one product across website, web app, and native mobile, sharing catalogue, cart, checkout, and operations so the brand feels the same on a laptop and in a pocket. Desktop storefront on luxorahair.com.au: catalogue, cart, and checkout in the brand's own visual language. The brief Build a luxury ecommerce system that can rank on Google, take Australian payments cleanly, and still feel like a native app on iPhone and Android. Shoppers needed catalogue, variants, cart, wishlist, and Stripe checkout. Staff needed a real admin for products, orders, CMS, loyalty, and community, not a spreadsheet beside a theme. If you sell beauty, hair, or premium retail and templates keep flattening the brand, this is the kind of build we do. Book a Discovery Session and we will map what a custom store plus app should look like for your catalogue. A storefront Google can actually read The public site is a Next.js storefront on Vercel. Category and product pages ship as real HTML so search engines index wigs, extensions, and accessories without waiting on a client-rendered app shell. GST, shipping zones, and Australian Consumer Law copy sit in the commerce layer, not in a plugin afterthought. That split is the point. Marketing and SEO live on the website. Rich shopping, try-on, and member tools live in the Flutter app at luxorahair.com.au\u002Fapp . Same domain, same APIs, two surfaces that know their job. See our ecommerce website design guide for how we choose that split on other Melbourne builds. Flutter on phone, web, and native iOS and Android One Flutter codebase (Riverpod, go_router) drives the customer app on the web and as native iOS and Android binaries. Shoppers get catalogue filters, variants (length, colour, texture, density, lace), cart and wishlist sync, Stripe Payment Sheet with Apple Pay and Google Pay, order tracking, and a path to book a consultation. Flutter customer app on a phone: shop, book, and pay without leaving the brand. Native store listings can follow once review assets are locked. The product already runs as a same-origin web app and as native builds, which is the honest Melbourne answer when a client needs iOS and Android without two separate codebases. That is the work behind our app development service. Commerce that is not a generic catalogue Luxury hair does not sell like a T-shirt grid. We built the extras that make the store match how customers actually decide: Luxora Elite: Stripe subscription loyalty with points tiers, referrals, birthday club, and gated drops for invite-only and elite-only pieces. Custom wig builder: length, density, lace, cap, and texture with an auto-quote, so a made-for-you piece is a product flow, not an email thread. AR try-on: in-house Live AR (ARKit and ARCore) plus AI photo try-on, so shoppers can see a look before they buy. Beauty Concierge: a Gemini-powered chat with tool use and a human handoff, plus WhatsApp as a second door. That is the same class of work we do in AI and automation engineering . Inventory reservations, restock alerts, returns, and self-cancel for unshipped orders sit in the same system. Payments run through Stripe, including wallets and a path to Australian BNPL via the Stripe Dashboard. Admin the operators actually open Staff run the business from a Flutter admin at luxorahair.com.au\u002Fadmin . Orders, products, categories, discounts, shipping, customers, Elite, community, CMS pages, media, try-on settings, builder pricing, reviews, and inbox live in one console. No separate WordPress, no theme customiser, no waiting on a developer to change a landing page. That operator product is why this sits next to our custom software work as well as ecommerce. The storefront is the shop. The admin is the business. Technical architecture SEO storefront: Next.js 16 (App Router), React 19, TypeScript, Tailwind, GSAP motion, hosted on Vercel with ISR for catalogue HTML. Customer and admin apps: Flutter with Riverpod and go_router. Web at \u002Fapp and \u002Fadmin on the same origin. Native iOS (bundle com.luxorahair.luxoraApp) and Android (com.luxorahair.luxora_app). Commerce data: Firebase Auth, Cloud Firestore, Storage, and App Check. Shared Dart contracts in a Melos monorepo so web APIs and the app agree on cart, catalogue, and orders. Payments: Stripe Payment Element and Express Checkout on the web, native Payment Sheet on mobile, AUD pricing, webhooks for orders, Elite, and inventory. Email and SMS: Resend for transactional mail. Mobile Message for Australian SMS. AI and AR: Google Gemini for the Beauty Concierge and photo try-on. Live AR via ARKit and ARCore. Security rules, privacy export and delete, and Australian GST handling were part of the build, not a later compliance pass. What we delivered Live luxury storefront at luxorahair.com.au with catalogue, search, cart, and Stripe checkout. Flutter customer app on the web plus native iOS and Android from one codebase. Flutter admin CMS for products, orders, loyalty, community, and content. Elite membership, custom wig builder, AR try-on, and Gemini Beauty Concierge. Australian-ready commerce: GST, shipping zones, wallets, and transactional email. Need a custom ecommerce platform, a Flutter app for iOS and Android, or both on one backend? Explore our website design and development , app development , and custom software services, or book a free Discovery Session and leave with a clear build plan."]