Home Our Work Running Duck Studio

Case Study — Art Gallery + App

Running Duck Studio.
Selling art online
is harder than it looks.

A WooCommerce art gallery with augmented reality painting previews, a Flutter app that shows the work in your space before you buy, and a custom plugin suite built specifically for how a working artist studio actually sells.

WC
Sales Platform
5
Custom Plugins
AR
In-Room Previews
8.4MB
Flutter PWA

Overview

What it actually is

Danielle runs a working art studio. She paints originals, prints limited editions, and sells through the website. The standard WooCommerce experience was not built for original artwork — there is no concept of a one-of-a-kind piece that is gone when it sells, no way to mark something as SOLD with context rather than just deleting it, and no way to show the buyer what the painting looks like at life size on their wall before they commit.

So we built what was missing. A custom plugin suite that handles the art gallery's specific needs: SOLD badge display with history tracking, a commission inquiry form, an artwork dimensions field, category filtering for the gallery view, and a Related Works shortcode. On top of that, a Flutter progressive web app with augmented reality, where the buyer can point their phone camera at their wall and see the painting at real scale.

The AR feature is the part that takes the most explaining but sells the hardest when people actually try it. Danielle uploads a photo of the painting and a short video. The AR target gets compiled in the browser. The Flutter app opens a camera overlay and shows the work in the room.

"Selling original art online has one central problem: people cannot tell how big it is or whether it will work on their wall. The AR preview solves that directly."

Running Duck Studio website
WordPress WooCommerce Flutter Web Augmented Reality Gelato Print-on-Demand Custom Plugins REST API

Signature Feature

How the AR preview works

Danielle does the entire setup from the WordPress admin. No technical knowledge required after the initial build. The whole pipeline runs from her laptop.

1
Upload painting + video

Danielle uploads a flat-on photo of the painting and a short video of it hanging in the studio. Both go into the rds-ar-manager plugin.

2
AR target compiles in-browser

The plugin uses browser-based AR target compilation. No server-side processing, no external AR service subscription. The target image descriptor is stored with the product.

3
Buyer opens Flutter app

The Flutter PWA at flutter.rds.ink reads the product data via REST API. The buyer taps "View in your space" and the app opens a camera overlay showing the painting at real scale on their wall.

Honest note

The AR feature works well on mid-range Android and current iOS. Older phones with limited camera APIs see a standard overlay without full spatial tracking. It is a genuine enhancement for most buyers, not a universal replacement for visiting the studio. We document this clearly in the app.

Custom Development

Five plugins, one purpose

Standard WooCommerce treats every product the same. These plugins exist because original artwork is not the same as a T-shirt. Each one addresses a specific gap in how the gallery actually works.

Commerce Layer

Originals plus print-on-demand

Running Duck Studio sells two things: original paintings at original prices, and print reproductions via Gelato. Gelato handles fulfilment — they print and ship from the production facility closest to the buyer. The WooCommerce integration connects the two.

🎨

Original paintings

Each original is a single WooCommerce product with a custom SOLD state. When it sells, the product switches to SOLD, shows the sold price and date, and remains visible as portfolio history rather than disappearing from the site.

🖨️

Gelato print-on-demand

Limited edition prints are fulfilled by Gelato. The buyer places a WooCommerce order; Gelato picks it up automatically and handles printing, packaging, and shipping. No inventory, no fulfilment work on Danielle's end.

📦

Commission inquiries

The commission form (part of rds-core) captures buyer requirements, preferred size, colour palette, and budget. It feeds into a structured email workflow rather than a generic contact form. Danielle gets everything she needs in one message.

Honest note — Gelato

Gelato's WooCommerce API has specific requirements around product variant mapping that we had to document carefully. When Gelato updates their product catalogue, variant IDs can change and previously mapped products need re-linking. It is not a set-and-forget integration. We handle those updates as part of the ongoing management relationship.

Mobile Experience

The Flutter app

The Flutter progressive web app at flutter.rds.ink is a 8.4 MB build that runs in the browser on any device. No app store download required. The buyer opens it from their phone browser or via a QR code on the gallery page.

The app reads product data from the WordPress REST API on launch. Featured collections, theme colours, and the gallery structure all come from the rds-flutter-config plugin — so the app stays in sync with the website without being redeployed every time Danielle adds a new collection.

Core screens: gallery browse by category, individual artwork detail with AR trigger, Danielle's story, commission inquiry form, and a direct link to the WooCommerce cart. The cart itself runs in a WebView pointed at the WordPress site to avoid duplicating the payment integration.

📱

PWA — no app store required

Works on Android and iOS via the browser. Users can add it to their home screen for an app-like experience. The service worker caches the gallery for offline browsing.

🔗

Live data from WordPress

The app reads the product catalogue via REST API. New artwork appears in the app automatically when published in WordPress. No separate app deployment needed for content updates.

🛒

Cart via WebView

Purchases complete through the WooCommerce site inside a WebView. No duplicated payment integration, no Stripe keys managed in two places.

Technical Details

Full stack

Web platform

WordPress 6.x WooCommerce Elementor Pro rds-core rds-ar-manager rds-flutter-config rds-image-guard rds-seo-command Gelato integration

Mobile app

Flutter 3.x Dart WebXR AR Service Worker PWA REST API consumer WebView cart

Infrastructure

DirectAdmin — brisbane01 PHP 8.4 MariaDB Let's Encrypt SSL rds.ink (WooCommerce) flutter.rds.ink (Flutter PWA)
What this costs to run

The platform runs on shared infrastructure on the same Brisbane server as the rest of the HELP4BIS portfolio. Total hosting cost for rds.ink and the Flutter subdomain is included in the Tailored Website Management plan at $200/month. Gelato charges per print fulfilled; there is no monthly fee for their integration.

Want a WooCommerce store that actually fits your business?

Standard WooCommerce is a solid foundation. The question is whether it fits what you actually sell. If it does not, we build the parts that are missing.

← Back to all work