diff --git a/README.md b/README.md
index d55e3c9..1b94790 100644
--- a/README.md
+++ b/README.md
@@ -167,6 +167,14 @@ The detail lives in dedicated documents:
(for artists, labels and any other customer), and optionally launch a
fan-funded campaign that the plant presses and ships to each fan once
enough have pre-ordered, with refunds if not
+- [Artist ordering demo](docs/artist-order.html): the artist platform as a
+ clickable single page: configure a record, type the track list or drop
+ the master files and artwork (checked in the browser, never uploaded:
+ format, sample rate, bit depth, clipping, side length against the
+ format, print resolution), approve gate 1, get the itemised offer with
+ its price curve and lead time, then order directly or run a fan-funded
+ campaign to a funded or missed end (refund, or go ahead at the
+ minimum) and follow the production through the three artist gates
- [Steam and cooling](docs/steam-cooling.html): the utility plant for the
five-press fleet as a clickable process diagram: water treatment, feed
tank and heat recovery, a bank of two 500 kg/h boilers, the steam header
@@ -265,6 +273,7 @@ docs/
│ schedule (pea/), biomass fuel market
│ reports (biomass/)
├── suppliers/ Supplier contacts, vendor landscape, supplier map
+├── artist-order.html Artist ordering and fan-funding demo page
├── artist-platform.md Upload, price calculator, fan-funded pressing
├── biomass.md Biomass fuel strategy and the 60 rai coppice idea
├── boi.md BOI promotion strategy and requirements
diff --git a/docs/artist-order.html b/docs/artist-order.html
new file mode 100644
index 0000000..df3f344
--- /dev/null
+++ b/docs/artist-order.html
@@ -0,0 +1,960 @@
+
+
+
+
+
+
+CNX Vinyl · make a record, or let your fans fund it (demo)
+
+
+
+
+
+
+
Make a record
+ CNX Vinyl · artist ordering demo · indicative prices · nothing is uploaded, sent or charged
+
Configure a record, check your music and artwork, and get an itemised
+ offer. Then order it directly, or launch a fan-funded campaign: fans pre-order,
+ and if enough of them do before the deadline the plant presses and ships each
+ fan's copy; if not, everyone is refunded. Every rate, and how it was set, is
+ listed at the bottom of the page.
+
+
+
+
+
+
+
+
+
Format
+
Size
+
Speed
+
Discs
+
Weight
+
Vinyl colour
+
Colours
+
+
+
Copies, for a direct order
+
Copies
+
+
From 100 copies. In a fan-funded campaign the run is set by the pre-orders instead (step 4).
+
+
+
Sleeves and jacket
+
Inner sleeve
+
Jacket
+
Extras
+
+
+
+
+
Labels are printed and pressed into the record, the only kind this plant makes. Printed jackets come from a local packaging partner and are passed through at the partner's price plus a stated handling margin.
+
+
+
Audio and test pressings
+
Master
+
Test pressings for you
+
Cutting and plating happen in-house: lacquer, father, mother and stampers. The mother is kept, so a repress later skips cutting.
+
+
+
+
+
+
+
Release
+
Artist
+
Title
+
+
+
Tracks and sides
+
+
+
+
+ Music
+
+
+
+
+
Artwork
+
+
+
+
The real platform checks every file against the CNX templates (size, centre hole, safe area, bleed) and renders a proof. Template sizes here are placeholders until those templates exist.
+
+
+
Automatic checks
+
+
+
+
+
+
+
+
+
+
+
Your offer
+
+
+
Excludes 7 % VAT and freight. ↗ pass-through lines are what the partner charges plus the handling margin shown.
+
+
+
Price per copy against quantity
+
+
The per-title costs are spread over the run, so the price per copy falls fast up to a few hundred copies. The small steps are the jacket printer's price breaks at 300, 500 and 1,000.
+
+
+
When it ships
+
+
+
+
How do you want to pay for it?
+
+
Order directly
Like any label: a deposit now, you approve the master and the test pressing, and the run ships to you or straight to your buyers.
+
Let your fans fund it
Fans pre-order on a campaign page. Pressed if enough of them do before the deadline, every fan refunded if not. Nothing to pay up front.
+
+
+
+
+
+
+
+
+
Campaign
+
Fan price per copy THB
+
Runs for days
+
Limited edition copies at most, 0 = no cap
+
Copies for yourself
+
+
The record itself is set in step 1 (format, colour, packaging); the run size comes from the pre-orders. Shipping is charged to each fan at cost at checkout and is not in these numbers.
+
+
+
The goal, and what you keep
+
+
+
+
Where the fans' money goes
+
+
Charged when they pre-order, by PromptPay QR, card or wallet, which is how Thai fans pay.
+
Held in a separate account and never used to run the plant until the campaign succeeds. This is the lesson of Qrates, whose service is suspended (notice on its site, October 2026) with funded projects caught in the wind-down.
+
Refunded automatically to every fan if the goal is missed.
+
CNX is the seller to the fan: it makes and sells the record, you license the music and receive the margin, so VAT, consumer protection and refunds sit in one place.
+
Card data never touches CNX servers: the payment provider's hosted page takes it. A Thai legal opinion on holding pre-order money comes before the first real campaign.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/artist-platform.md b/docs/artist-platform.md
index e782b37..9e0289e 100644
--- a/docs/artist-platform.md
+++ b/docs/artist-platform.md
@@ -24,6 +24,18 @@ vault and customer portal in [digital factory](digital-factory.md), and
the dropshipping already in the fulfillment step. Every figure on this
page without a source is an estimate.
+**Demo.** The [artist ordering demo](artist-order.html) (test site
+`/demos/artist-order/`) walks this whole flow on one static page:
+configure a record, type the track list or drop the master files and
+artwork (read in the browser and never uploaded: format, sample rate, bit
+depth, sample peak and clipping, side length against the format, print
+resolution and colour space), approve gate 1, get the itemised offer with
+its price curve and lead time, then order directly or set up a campaign
+and run it to a funded or a missed end, with the production steps and the
+three gates after it. Its price list (version `demo-0.1`) splits the
+illustration rates below into lines; every split is an estimate and the
+page lists each rate with its basis.
+
## Why it fits this plant
- **The bottom of the Thai market is unserved.** The one Thai plant we
@@ -113,6 +125,31 @@ Transparency rules, so the word means something:
currency choice the [revenue model](finance/revenue-model.md) already
recommends deciding early.
+### Side length per format
+
+The audio check compares each side with the format's limit. Until the
+cutting engineer sets CNX's own figures, the demo uses published
+cutting-room guidance (checked October 2026):
+
+| Format | Comfortable | At most |
+|---|---|---|
+| 12", 33⅓ rpm | 18 min | 22 min |
+| 12", 45 rpm | 12 min | 15 min |
+| 10", 33⅓ rpm | 12 min | 16 min |
+| 10", 45 rpm | 8 min | 11 min |
+| 7", 33⅓ rpm | 5 min | 7 min |
+| 7", 45 rpm | 4.5 min | 6 min |
+
+Source: the microcut.studio format guide
+(https://microcut.studio/guides/vinyl-format-guide-12-10-7/, lower end of
+each range). Diggers Factory lists hard maxima of 22, 12, 17, 10, 6 and 5
+minutes for the same formats (stricter on 12" at 45 rpm), and A to Z Media
+14 to 18 minutes as ideal on a 12" LP. Loud or bass-heavy music needs
+shorter sides: Diggers Factory's dance-music figures are about 60 % of its
+standard ones (11:27 against 19:23 on a 12" LP), which the demo applies as
+a factor of 0.6. The engineer check, not this table, decides whether a
+side is cuttable.
+
### What it looks like with numbers
An illustration of the **shape**, using the midpoints of the working
@@ -199,6 +236,11 @@ about **799 THB**, because the per-title cost spreads. The calculator
shows the artist this before launch, for any price they type in. Shipping
is charged to the fan separately at checkout, at cost.
+VAT is not in this example. With CNX as seller of record (open decision
+1), a 1,200 THB fan price includes about 79 THB of VAT (7/107), which
+comes out of the artist's margin; the demo can show the numbers with and
+without it.
+
Over-subscription is good news: the run is pressed at the final number
plus the artist's own copies and the spares the reject allowance already
covers. An artist can cap a campaign for a limited, numbered edition.
diff --git a/site/build.sh b/site/build.sh
index 29625c8..72e0406 100644
--- a/site/build.sh
+++ b/site/build.sh
@@ -21,6 +21,7 @@ DEMOS=(
"docs/plant-operation.html demos/plant-operation/index.html"
"docs/fleet-calculator.html demos/fleet-calculator/index.html"
"docs/steam-cooling.html demos/steam-cooling/index.html"
+ "docs/artist-order.html demos/artist-order/index.html"
)
for entry in "${DEMOS[@]}"; do
read -r src dst <<<"$entry"
diff --git a/site/public/index.html b/site/public/index.html
index 4949da8..f5fd59b 100644
--- a/site/public/index.html
+++ b/site/public/index.html
@@ -103,6 +103,17 @@ document.documentElement.setAttribute("data-theme",t);})();
demand against installed capacity.
+