New docs/catalogue-intelligence.md for Alexander's idea of a catalogue the plant presses for itself. Why (idle Classic hours ~60k to 160k records a year at 60 % specials on the doc basis; two-week represses from the metal archive; Thai catalogue sells in Japan, EM Records, ZudRangMa), scope (Poy Records as seed; customers' data and press dates protected), data sources with access terms (Bandcamp ship-to fields, distributor sell-through clauses, opt-in record passport registrations, Spotify for Artists, Discogs CC0 dumps; Discogs API marketplace and want data restricted), ERPNext touchpoints (Licence, Channel Sales Report, Catalogue Recommendation, geocoded addresses, CRM), PDPA rules for the map, dashboard views on an open-source map stack, a staged demand model with a stocking rule for run size, a propose-only advisor on an open-weights model, phasing, cost estimates, risks and open decisions. Backlinks: README (planning documents, layout), roadmap item 28, digital-factory tool rule, artist-platform repress pre-orders, production-timeline repress, revenue-model ResurRec Japan.
592 lines
32 KiB
Markdown
592 lines
32 KiB
Markdown
# Artist Platform: Upload, Price Calculator and Fan-Funded Pressing
|
||
|
||
A web platform where anyone who wants records made, from a bedroom
|
||
artist to a label, can:
|
||
|
||
1. **Configure a record in a calculator** and get a transparent,
|
||
itemised offer: what every line costs, which costs are per title and
|
||
which per copy, how the price per copy falls with quantity, and when
|
||
it ships.
|
||
2. **Upload the master and the artwork**, and have both checked before
|
||
anyone pays for anything.
|
||
3. **Either order directly**, as any label would, **or launch a
|
||
fan-funded campaign**: a page the artist shares with fans, who
|
||
pre-order their copy. If enough fans commit before the deadline, the
|
||
plant presses and ships each fan's copy. If not, every fan is
|
||
refunded and nobody is left with a garage full of records.
|
||
|
||
The calculator is for every customer. The campaign is the part that
|
||
opens vinyl to artists who could never front the cost of a run. Both sit
|
||
on top of what the plan already has: the stages and the three artist
|
||
gates in [process flow](process-flow.md), the lead times in
|
||
[production timeline](production-timeline.md), the order intake, client
|
||
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.
|
||
|
||
**Investor demo.** [Make a record](make-a-record.html) (test site
|
||
`/demos/make-a-record/`) is the same flow as a customer would see it,
|
||
built for presenting: a to-scale mock-up with a record that spins at the
|
||
chosen speed, the checks in plain words, one price with the itemised
|
||
lines folded under it, the fan campaign on a phone, the production
|
||
timeline, and a **record passport** for one delivered copy (stamper,
|
||
press, cycle time and side, per [traceability](traceability.md) and
|
||
[quality automation](quality-automation.md)). An "Investor notes" switch
|
||
adds the business case to each step, sourced from this page, the
|
||
[revenue model](finance/revenue-model.md) and the
|
||
[production timeline](production-timeline.md); a guided tour (`#tour`
|
||
after the URL, `#notes` for the notes) walks the whole flow in about a
|
||
minute. It uses the same price list and stage table as the detailed
|
||
demo, so a rate change goes into both pages.
|
||
|
||
**Step-by-step order tool.** [Order a record](order.html) (test site
|
||
`/demos/order/`, October 2026, after the configurator at
|
||
[mobineko.com/order](https://mobineko.com/order)) is the order flow as a
|
||
plant's online order form: a rail of numbered steps (order type, size,
|
||
discs, vinyl colour and effects, labels, inner sleeves, jacket and
|
||
finish, extras, mastering and cutting, test pressings, shipping, track
|
||
list, artwork, how to pay, review), each step's choices beside a large
|
||
live picture of the record, and a running price and ship date. The review
|
||
lists what is still missing before an order can be placed. It carries the
|
||
same price list, so a rate change goes into all three pages.
|
||
|
||
**Fan funding in the order tool** (user, 20 October 2026: the new tool
|
||
offers fan funding too, so the investor deck's platform pictures come
|
||
from one tool and one calculator). Step 15 "How to pay" chooses between
|
||
paying the plant directly (the deposit, the rest before dispatch) and a
|
||
fan-funded campaign with the same inputs and the same campaign maths as
|
||
[make-a-record](make-a-record.html): the artist sets the fan price
|
||
(default 1,200 THB) and the campaign length, the fans needed are the
|
||
larger of break-even and the 100-copy minimum run, and the tool shows
|
||
what the artist keeps at the goal and with more fans, after the payment
|
||
fees (~3.5 %, to confirm with the provider), the one-off setup and the
|
||
pressing. Step 16 becomes "Review & launch" and simulates the campaign's
|
||
outcome. For the same record both pages give the same numbers (checked
|
||
headless over 40 combinations, October 2026): the default record at
|
||
1,200 THB needs 100 fans (break-even 41) and keeps ~548 THB a copy; the
|
||
Splatter 12" preset needs 100 fans (break-even 46) and keeps ~480 THB a
|
||
copy. Indicative demo prices.
|
||
|
||
**Mastering as a choice** (user, October 2026): the order tool lets the
|
||
customer pick the mastering: none (the master is final and only prepared
|
||
for the lathe), CNX vinyl mastering in-house per side, or full mastering
|
||
by a partner studio at **60 USD a track** (team figure, about 1,980 THB).
|
||
The example partner is [Brandenburg Mastering](https://www.brandenburgmastering.com)
|
||
in Amsterdam, which quotes on request and publishes no price list
|
||
(checked October 2026); it is not contracted. Partner mastering replaces
|
||
the in-house line rather than adding to it, and keeps gate 2: the artist
|
||
approves the master before cutting.
|
||
|
||
## Why it fits this plant
|
||
|
||
- **The bottom of the Thai market is unserved.** The one Thai plant we
|
||
have seen quotes a 150-unit minimum that is "rarely accepted because
|
||
the cost is way too high", so runs under 300 are effectively
|
||
unavailable ([revenue model](finance/revenue-model.md)). The reason is
|
||
a per-title cost (imported stampers, outsourced cutting) that does not
|
||
shrink with the run. In-house cutting and plating collapses it, which
|
||
makes short runs viable for CNX in a way they are not for an importer
|
||
of metalwork. Short runs need a channel; this is it.
|
||
- **Fan funding removes the artist's risk.** What stops an indie artist
|
||
ordering 200 records is not the price per copy, it is paying for all
|
||
200 up front without knowing whether they sell. A campaign turns that
|
||
around: the fans pay first, the run is exactly as big as the demand.
|
||
- **CNX owns the presses.** The known platforms of this kind are brokers
|
||
over a network of other people's plants. A plant-owned platform
|
||
controls its own price, schedule and quality, and keeps the margin on
|
||
manufacturing instead of a commission.
|
||
- **Transparency is already the brand.** The plan is built on
|
||
traceability that customers can see. The same event log can tell a fan
|
||
"cut on 12 March, plated, test pressing approved by the artist,
|
||
pressing now, ships next week", automatically and truthfully.
|
||
|
||
## Who else does this, and the lesson
|
||
|
||
| | Model | Notes |
|
||
|---|---|---|
|
||
| **Qrates** (Japan, global) | Crowdfunding plus pressing through partner plants, with a profit calculator for the artist | Its site carries a notice (October 2026) that the service is suspended "due to unforeseen financial difficulties"; artists report funded projects caught in the wind-down |
|
||
| **Diggers Factory** (France) | Upload tracks and artwork, set a sales goal; if missed, the project is cancelled and everyone refunded, or the artist funds the rest; about 8 weeks of manufacturing after success (2023 description); also sells direct pressing paid up front | An on-demand network rather than a single plant |
|
||
| **elasticStage** (UK) | Each record made when it is ordered, no minimum, no campaign | Its own on-demand production technology; a different answer to the same problem |
|
||
|
||
**The Qrates lesson is the design rule for the money**: fan payments are
|
||
held apart from the company's own money and are never working capital,
|
||
so that if anything goes wrong, fans can be refunded and artists keep
|
||
their projects. See "Payments" below.
|
||
|
||
## The calculator
|
||
|
||
### What the customer chooses
|
||
|
||
| Choice | Options |
|
||
|---|---|
|
||
| Format | 12" LP, 10", 7"; single or double disc; 33⅓ or 45 rpm; 7" with a small or a large (dinked) centre hole |
|
||
| Weight | 140 g, 180 g |
|
||
| Colour | Black, solid colour, marbled or splatter (the semi-automatic line's speciality); for colour, whether the press is cleaned first |
|
||
| Quantity | Free entry, with the price-per-copy curve shown live |
|
||
| Labels | Paper labels pressed into the record: printed, or plain white or black (white labels for promos and DJ copies) |
|
||
| Run-out inscription | The customer's catalogue number or text, scribed next to the run-out groove of every side (letters and numbers, up to 15) |
|
||
| Inner sleeve | Paper, poly-lined |
|
||
| Jacket | None (customer supplies), plain, printed single, printed gatefold; printed by the local packaging partner |
|
||
| Extras | Insert, hype sticker, shrink wrap, numbered edition, download card, barcode sticker |
|
||
| Audio source | Digital files, analog tape (transferred in-house), or a lacquer cut by the customer's studio (straight to plating; must arrive within days of cutting) |
|
||
| Audio services | Customer supplies a vinyl-ready master, or CNX vinyl mastering per side, or full mastering by a partner studio per track |
|
||
| Metal | Lacquer cutting and stampers (in-house; bridge stampers from Stamper Discs until the galvanics line exists) |
|
||
| Test pressings | Number of copies for the artist |
|
||
| Delivery | Bulk to one address, dropship to each buyer, or collect at the plant |
|
||
|
||
### Benchmark: Record Industry's calculator (October 2026)
|
||
|
||
Record Industry (Haarlem, NL; host plant of Making Vinyl Europe 2026)
|
||
runs a public calculator
|
||
(https://www.recordindustry.com/calculator/, checked October 2026): seven
|
||
steps (pre-production, vinyl, labels, inner sleeve, outer sleeve, extras,
|
||
quote or order) with an itemised cost list beside the form that updates
|
||
on every choice, an info box under each question, and a draft order
|
||
that the plant confirms by hand before the pre-payment invoice. Prices
|
||
are computed on its server. What it shows that this plan had not
|
||
covered, and what the demos took from it:
|
||
|
||
- **Taken into both demos:** audio arriving as tape or as a supplied
|
||
lacquer (it charges 470 EUR for cutting plus stampers from a digital
|
||
master, 570 from tape, 240 for plating a supplied lacquer), plain white
|
||
or black labels, press cleaning before a colour run (60 EUR, with the
|
||
warning that without it records can carry the previous colour), the
|
||
dinked 7", download cards and barcode stickers, and a catalogue number
|
||
scribed in the run-out (letters and numbers, up to 15). The new rates
|
||
are estimates with its prices as the basis, listed in the detailed
|
||
demo.
|
||
- **Left out for now:** label print modes (CMYK, Pantone, one colour),
|
||
board grades and finishes (kraft, Hansaboard, matt or gloss varnish,
|
||
laminates), die-cut holes, spines other than 3 and 5 mm, booklets, foil numbering,
|
||
sticker position, protective outer sleeves, BIO PVC and a recycled
|
||
colour mix, and multi-address shipping. Each is a price-list line once
|
||
the packaging partner and the compound suppliers quote.
|
||
- **Commercial terms worth deciding for CNX:** a flat order set-up fee
|
||
(60 EUR) and a small-run surcharge (60 EUR under 300, 40 under 500);
|
||
20 copies over the order invoiced to cover under- or over-production,
|
||
credited if fewer are delivered; customers asked to accept about 2 %
|
||
rejects; full pre-payment for new customers; minimum 200 copies.
|
||
|
||
Its prices and lead times are recorded as a benchmark in the
|
||
[revenue model](finance/revenue-model.md) and the
|
||
[production timeline](production-timeline.md).
|
||
|
||
### What the customer gets back
|
||
|
||
- **Every line itemised**, grouped into **per title** (mastering,
|
||
cutting, stampers, test pressings, setup) and **per copy** (pressing,
|
||
labels, sleeve, jacket, extras), with pass-through items such as the
|
||
printed jacket marked as such.
|
||
- **The price per copy against quantity** as a curve, so it is obvious
|
||
why 100 copies cost more each than 500, and where the steps are.
|
||
- **A lead time in weeks** from the quote table in
|
||
[production timeline](production-timeline.md): counted from
|
||
test-pressing approval, with the stages before it shown separately as
|
||
"typically X weeks, subject to your approvals", exactly as that page
|
||
says a quote should be made.
|
||
- **An offer** with a validity date and the price-list version it was
|
||
computed from.
|
||
|
||
### How it computes
|
||
|
||
Price = sum of the per-title lines + quantity × sum of the per-copy lines,
|
||
with quantity tiers where a supplier's price steps (jacket print runs).
|
||
All rates come from **one versioned price list** in the factory
|
||
application, and every offer records the version it used, so any old
|
||
offer can be reproduced to the baht. That follows the append-only rule
|
||
the factory application already applies to everything else.
|
||
|
||
Transparency rules, so the word means something:
|
||
|
||
- every line visible, no fees that appear later;
|
||
- pass-through costs (the jacket) shown at what the partner charges plus
|
||
a stated handling margin;
|
||
- quoted in THB for Thai customers and in USD for export customers, the
|
||
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 demos use these (October
|
||
2026):
|
||
|
||
| Format | Comfortable | At most | Songs a side, at most |
|
||
|---|---|---|---|
|
||
| 12", 33⅓ rpm | 18 min | 22 min | ~4.9 |
|
||
| 12", 45 rpm | 12 min | 15 min | ~3.3 |
|
||
| 10", 33⅓ rpm | 12 min | 15 min | ~3.3 |
|
||
| 10", 45 rpm | 8 min | 12 min | ~2.6 |
|
||
| 7", 33⅓ rpm | 5 min | 7 min | ~1.5 |
|
||
| 7", 45 rpm | 4.5 min | 5 min | ~1.1 |
|
||
|
||
**At most** and **songs** are the table the team supplied in October
|
||
2026, from recordplayerexpert.com ("How much can a vinyl record hold",
|
||
https://recordplayerexpert.com/vinyl-record-capacity, checked October
|
||
2026), which counts songs at an average length of 4:32. **Comfortable**
|
||
is the lower end of each range in the microcut.studio format guide
|
||
(https://microcut.studio/guides/vinyl-format-guide-12-10-7/).
|
||
|
||
The published cutting-room figures disagree with the at-most column in
|
||
three places, so treat those as re-check points for the cutting engineer:
|
||
10" at 33⅓ rpm (15 min here; microcut.studio up to 16, Diggers Factory
|
||
17), 10" at 45 rpm (12 min here; microcut.studio 11, Diggers Factory 10,
|
||
so this table is the most generous) and 7" at 45 rpm (5 min here, as
|
||
Diggers Factory; microcut.studio 6). Diggers Factory lists hard maxima of
|
||
22, 12, 17, 10, 6 and 5 minutes for the six 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
|
||
assumptions in the revenue model: **38,000 THB per title** (mastering,
|
||
cutting, stampers, test pressings; range 19,000 to 57,000), **132 THB per
|
||
copy** for pressing, labels, inner sleeve and assembly (range 115 to 150),
|
||
plus **~100 THB per copy for a printed jacket and shrink** at short run
|
||
(estimate, until the packaging partner quotes). Black 12", 140 g:
|
||
|
||
| Copies | Per-title share per copy | Per copy | Per copy, all in | Order total |
|
||
|---|---|---|---|---|
|
||
| 100 | 380 | 232 | **~612 THB** | ~61,200 THB |
|
||
| 200 | 190 | 232 | **~422 THB** | ~84,400 THB |
|
||
| 300 | 127 | 232 | **~359 THB** | ~107,600 THB |
|
||
| 500 | 76 | 232 | **~308 THB** | ~154,000 THB |
|
||
| 1,000 | 38 | 232 | **~270 THB** | ~270,000 THB |
|
||
|
||
**Do not read the level off this table.** At these Western-benchmark
|
||
rates the 300-copy price lands near 360 THB, while the Thai market pays
|
||
650 to 950 THB for 300 today. That is the very gap the revenue model
|
||
flags as its biggest open question. The real price list is set after
|
||
market validation ([roadmap](roadmap.md) item 1); the calculator only
|
||
makes whatever prices are chosen legible.
|
||
|
||
## Artwork templates and files
|
||
|
||
Decided for the demos (user, October 2026): the order tool offers a
|
||
**spine choice** and **templates to download**, and accepts the files
|
||
designers actually deliver, **PDF and Illustrator (AI)** as well as
|
||
images.
|
||
|
||
- **Spine.** Thin, 3 mm, holds one record in its inner sleeve; thick,
|
||
5 mm, holds two, or one with a thick insert or a poster. Plants publish
|
||
templates for both, and for 7 or 9 mm on a gatefold (Mighty Media Discs:
|
||
12" sleeve 633 x 315 mm with a 3 mm spine, 635 x 315 mm with 5 mm;
|
||
Implant: 5 mm for two records; RPM Records: gatefold with a 7 mm spine;
|
||
XVinylX: 9 mm gatefold; all checked October 2026). A double album in a
|
||
single jacket takes the 5 mm spine without asking. The thick spine is
|
||
an extra line on the quote, an estimate until the packaging partner
|
||
quotes: Quality Record Pressings (US) lists a generic wide-spine jacket
|
||
at 0.90 USD against 0.55 for a standard one, and Kudos (UK) charges
|
||
137.50 GBP per order for an extra wide spine (price lists, checked
|
||
October 2026). A 7" jacket keeps the 3 mm spine.
|
||
- **Templates** follow the format, the jacket type and the spine chosen:
|
||
the jacket spread (back, spine, front) with 3 mm bleed, a 5 mm safe
|
||
area and the folds marked, a second page for the inside of a gatefold,
|
||
and a label template with one page per side (centre hole, and the
|
||
large hole of a dinked 7"). They are vector PDFs with trim and bleed
|
||
boxes set, so they open in Illustrator, InDesign and Affinity. Until
|
||
the packaging partner supplies its dielines the sizes come from the
|
||
published templates above; 10" and 7" panels are the mock-up's sizes.
|
||
- **Files accepted:** PDF (PDF/X-4 preferred), Illustrator files saved
|
||
with PDF compatibility (an AI file without it is refused with
|
||
instructions), and 300 dpi images. Plants ask for the same: Mobineko
|
||
publishes PSD, AI and PDF templates, New Orleans Record Press takes
|
||
print PDFs and refuses flattened images (checked October 2026). The
|
||
preflight reads the page boxes, colour spaces and fonts from the file,
|
||
checks the trim against the chosen spine (a spread made for a 5 mm
|
||
spine is flagged on a 3 mm order), the bleed, CMYK against RGB, and
|
||
whether fonts are embedded or outlined, and renders the front panel
|
||
into the mock-up.
|
||
|
||
## Fan-funded campaigns
|
||
|
||
### Before the campaign goes live
|
||
|
||
Nothing goes in front of fans that the plant cannot make:
|
||
|
||
1. **Upload**: master files (WAV/FLAC/AIFF) with checksums at both ends,
|
||
resumable for album-size uploads, straight into the encrypted client
|
||
vault (module 2 of the factory application).
|
||
2. **Automatic audio checks**, reported to the artist within minutes:
|
||
format, sample rate and bit depth, clipping and true peak, **side
|
||
length against the chosen format**, and low-frequency phase problems
|
||
that make a groove hard to cut.
|
||
3. **Automatic artwork preflight**: label and jacket files against the
|
||
templates (size, centre hole and safe area for the pressed-in label,
|
||
bleed, resolution, colour space), with a rendered mock-up of the
|
||
jacket and the vinyl colour; templates and accepted files in
|
||
[Artwork templates and files](#artwork-templates-and-files).
|
||
4. **Engineer check**: a cutting engineer confirms side length and level
|
||
are cuttable. On a Sillitoe lathe this is a number from the software's
|
||
virtual groove (disk capacity in percent) without a test cut; see
|
||
[vendor landscape](suppliers/vendor-landscape.md).
|
||
5. **Rights**: the artist confirms they own or have licensed the
|
||
recordings and the compositions (covers need a mechanical licence),
|
||
and an automatic audio fingerprint check (open tools such as
|
||
Chromaprint/AcoustID) catches obvious bootlegs before a person looks.
|
||
6. **Gate 1, master plan approved**, recorded as the event the
|
||
[process flow](process-flow.md) already defines, plus the approved
|
||
artwork proof that packaging QC later checks print against.
|
||
|
||
### The campaign page
|
||
|
||
- Artwork mock-up, story, track list, **short audio previews** (a few
|
||
seconds to a minute per track at reduced quality, rendered by the plant
|
||
from the master; the full master never leaves the vault, which matters
|
||
because pre-release audio is a leak target per
|
||
[facility security](facility-security.md))
|
||
- Price per copy, shipping by destination, goal, progress, deadline,
|
||
**estimated ship month** (campaign close plus the quoted lead time),
|
||
and what happens if the goal is missed
|
||
- Sharing built for where the fans are: a link, a QR code for gigs and
|
||
merch tables, and **LINE** alongside the international networks; Thai
|
||
and English
|
||
- Duration chosen by the artist, **14 to 45 days** (estimate)
|
||
|
||
### The goal
|
||
|
||
The artist sets only the fan price; the goal, the number of fans
|
||
needed, follows from it (decided October 2026). It is the larger of two
|
||
numbers:
|
||
|
||
- **the plant's minimum campaign run**, set by setup and stamper
|
||
economics on the semi-automatic line (**100 copies** as a planning
|
||
figure, to be decided), and
|
||
- **the artist's break-even**: the copies at which the fan price covers
|
||
the per-title costs, the per-copy costs and the payment fees.
|
||
|
||
Both demos show it in fans and as the pre-order amount (fans × fan
|
||
price); the investor demo also says from which fan price the 100-copy
|
||
minimum is enough (about 640 THB in the illustration; below it the
|
||
break-even sets the goal).
|
||
|
||
With the illustration above and a fan price of 1,200 THB (an example,
|
||
not a recommendation) and payment fees of about 3.5%: break-even is
|
||
38,000 / (1,200 − 42 − 232) ≈ **41 copies**, so the goal is the 100-copy
|
||
minimum. At 100 copies the artist keeps about **546 THB a copy**, at 300
|
||
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.
|
||
|
||
### Payments
|
||
|
||
The decision that matters most, and the one Qrates got wrong.
|
||
|
||
| | A. Charge at pledge, refund on failure | B. Save card, charge at success |
|
||
|---|---|---|
|
||
| How | Fan pays when pledging; money held in a ring-fenced account; automatic refund if the goal is missed | Card stored by the payment provider; charged only when the campaign succeeds |
|
||
| Thai fit | Works with **PromptPay QR**, cards and wallets, which is how Thai fans pay | Cards only; excludes PromptPay |
|
||
| Risk | CNX holds fan money for the campaign's length: must be ring-fenced and legally clean | Some charges fail at the end, so a campaign that "succeeded" can come up short |
|
||
| Note | Refund paths differ by payment method; confirm each with the provider | A card authorisation cannot simply be held: Opn (Omise) allows an authorise-and-capture pause of up to 7 days, far short of a campaign |
|
||
|
||
**Recommended: A**, with three rules. Fan money sits in a **separate
|
||
account** and is never used for operations until the campaign succeeds.
|
||
**CNX is the seller of record** to the fan (CNX makes and sells the
|
||
record, the artist licenses the music and receives the margin), which
|
||
keeps VAT, consumer protection and refunds in one place. And before the
|
||
first campaign, **a Thai legal opinion** on whether holding pre-order
|
||
money for a third party's project needs anything beyond that, for
|
||
example under the Bank of Thailand's payment-service rules. Card data
|
||
never touches CNX servers: the provider's hosted payment page or fields
|
||
keep it out of scope.
|
||
|
||
### When the campaign succeeds
|
||
|
||
The campaign becomes a production order and runs the normal chain:
|
||
vinyl mastering if ordered and **gate 2** (master approved by the
|
||
artist), cutting (only now, because a lacquer has to be plated within
|
||
one to three days), stampers, test pressings and **gate 3** (artist
|
||
approves the test pressing; a photo or short video of it to the fans is
|
||
cheap marketing), the run, packaging, and **dropshipping one parcel per
|
||
fan** with tracking, which is fulfillment step 9 as already planned.
|
||
|
||
Fans follow it on the campaign page, fed from the order's records in
|
||
ERPNext and the plant's event log: the progress is the plant's own record, not a status someone
|
||
remembers to update. If a stage slips, the estimated ship month moves
|
||
and every fan is told.
|
||
|
||
An optional **"test pressing first"** campaign does mastering, cutting and
|
||
test pressings before launch, so fans hear and see the real record. The
|
||
artist pays the per-title services up front for it; it suits artists
|
||
with an audience but no track record.
|
||
|
||
### When it does not succeed
|
||
|
||
Automatic refunds to every fan, or, if the artist chooses, the artist
|
||
pays the shortfall and the run goes ahead at the minimum (the Diggers
|
||
Factory option). The artist's uploaded master and artwork stay in the
|
||
vault for a second attempt.
|
||
|
||
### After the first run: repress on demand
|
||
|
||
Once a title exists, its father and mother sit in the archive (a mother
|
||
gives about ten stamper sets, and a worn one is replaced from the father
|
||
without a new cut) and a repress takes
|
||
**1.5 to 2.5 weeks** of plant time
|
||
([production timeline](production-timeline.md)). The campaign page can
|
||
reopen as "pre-order the repress, pressed when 100 more are in", which
|
||
turns one release into a recurring one. This is the part a plant with
|
||
in-house plating can offer and a broker cannot. The same pre-order is
|
||
the market test for titles of our own
|
||
([own catalogue](catalogue-intelligence.md)).
|
||
|
||
## For labels and regular customers
|
||
|
||
The same calculator and upload path, with an account:
|
||
|
||
- negotiated rates as a customer-specific price-list version;
|
||
- direct orders with a deposit instead of a campaign;
|
||
- the three gates approved in the customer portal
|
||
([digital factory](digital-factory.md), modules 1 to 3 and 10);
|
||
- bulk delivery, dropshipping, or both.
|
||
|
||
## How it is built
|
||
|
||
Same stack and same rules as the factory application in
|
||
[digital factory](digital-factory.md): Rust (axum, SQLx, minijinja,
|
||
HTMX) on PostgreSQL, in the `cnx-factory` repository, packaged as a
|
||
flake, deployed by the clan. The platform extends modules 1 (orders and
|
||
releases), 2 (audio intake and the client vault), 3 (the gates) and 10
|
||
(customer portal) with a price list and calculator, campaigns, pledges,
|
||
payments and per-fan shipments.
|
||
|
||
**Where the public side runs.** The digital factory plan accepts that a
|
||
WAN outage at the plant stops the customer portal. That is acceptable for
|
||
a label checking an order, not for a campaign page in the hour an artist
|
||
posts it, or for payment-provider webhooks. Proposal:
|
||
|
||
- the **public process** (calculator, campaign pages, checkout, payment
|
||
webhooks, upload staging) runs on a fleet machine with a public
|
||
address, `web01` or a sibling declared in the clan the same way, with
|
||
its own small PostgreSQL for campaigns and pledges;
|
||
- the **plant core stays the authority** for everything with a
|
||
production identity: when a campaign succeeds it becomes an order on
|
||
`vinyl-core`, and from then on the fan-facing progress is read through
|
||
the plant, as the portal is. Design decision 7 ("the portal is a view,
|
||
not a copy") still holds for production data; campaigns and pledges are
|
||
new data that start life in public;
|
||
- **uploads** land encrypted in a staging area on the public machine, are
|
||
pulled over the mesh into the client vault, checksum-verified on both
|
||
sides, and deleted from staging; **previews** are rendered on the plant
|
||
and published outwards, so a full master never rests outside the
|
||
vault.
|
||
|
||
No SaaS beyond the payment provider (Opn/Omise, 2C2P or a bank gateway,
|
||
to be chosen), in line with the plan's standing rule that every plant
|
||
service runs on the NixOS fleet.
|
||
|
||
**ERPNext** (decided October 2026: the plant runs ERPNext as its only
|
||
system of record, and what we build are tools and interfaces on it;
|
||
[digital factory](digital-factory.md#erpnext-the-plants-erp)). The
|
||
platform keeps no business records of its own. For the platform that
|
||
means:
|
||
|
||
- the **price list** behind the calculator is an ERPNext price list
|
||
(the demos' `R` list is its prototype), synced out to the public
|
||
process, so the calculator and the invoice never disagree;
|
||
- an artist or label account is linked to one ERPNext **customer**; a
|
||
direct order becomes a **sales order** when it is confirmed;
|
||
- a **campaign** is a custom Campaign document in ERPNext from launch;
|
||
each pledge is posted as an advance **payment entry** into the
|
||
ring-fenced account as it arrives, with the fan as a customer; when the
|
||
campaign succeeds it becomes a sales order the advances are allocated
|
||
to, and fan shipments become delivery notes; the refunds of a missed
|
||
campaign are posted as payment entries too. The public process holds
|
||
sessions and a cache of what it shows, nothing else;
|
||
- every posting goes through the plant's integration layer and its
|
||
outbox over the mesh; the public side never talks to ERPNext directly.
|
||
|
||
**Personal data.** Fans' names and addresses are personal data under
|
||
PDPA, with CNX as controller as the seller of record. An artist gets
|
||
fan contact details only where the fan ticked a consent box; that list
|
||
is worth a lot to an artist, and consent is what makes it legal to hand
|
||
over.
|
||
|
||
## The calculator is also a research instrument
|
||
|
||
Every configuration anyone builds, anonymously logged, is a data point on
|
||
what people actually want to order: run size, colour, weight, packaging,
|
||
how many walk away at which price. The revenue model's open **run-size**
|
||
question ([roadmap](roadmap.md) item 1) is exactly that distribution. So
|
||
the calculator should go public **long before the plant exists**, with
|
||
indicative prices and a "tell me when it opens" list, and no payments.
|
||
|
||
## Phasing
|
||
|
||
| Roadmap phase | Platform step |
|
||
|---|---|
|
||
| 0 to 1, validate | Public calculator with indicative prices and an interest list; configuration logging feeds market validation |
|
||
| 3, build | Direct orders, uploads, automatic checks and gates, as part of factory application v1 |
|
||
| 4, launch | Campaigns go live **after** the first paying releases have shipped and lead times have been measured. No fan money is taken against a plant that has not yet delivered |
|
||
| 5, expand | Repress pre-orders, numbered editions, international shipping at scale, cassette and CD formats from the business plan's scope |
|
||
|
||
## Rough cost (estimate)
|
||
|
||
| Item | THB | USD |
|
||
|---|---|---|
|
||
| Public side on top of the factory application: calculator, campaigns, payments, uploads and previews, preflight, fan accounts | 1.3M – 3.0M | 40k – 90k |
|
||
| Hosting | on the existing fleet | negligible |
|
||
| Payment fees | per transaction, inside the fan price | about 3 to 4% on cards, less on PromptPay (to be confirmed with the provider) |
|
||
|
||
Not yet in the roll-up in
|
||
[total investment](finance/total-investment.md); listed there as added
|
||
scope.
|
||
|
||
## Risks
|
||
|
||
- **Most crowdfunding campaigns fail**, and each failed one still costs
|
||
CNX checking and setup time. A small non-refundable setup fee, credited
|
||
against the order if the campaign succeeds, is one answer; decide it
|
||
before launch.
|
||
- **Lumpy demand.** Campaigns end on dates nobody controls. The scheduler
|
||
in the factory application should see live campaigns, weighted by how
|
||
close they are to their goal, and cap how many can close in the same
|
||
week.
|
||
- **Fans are not labels.** They expect a perfect record and a date.
|
||
Clear wording on what vinyl sounds like, the artist's test-pressing
|
||
approval, and honest ship months carry most of this.
|
||
- **Rights.** Someone will upload music that is not theirs. Warranty,
|
||
fingerprint check, a human look, and a takedown route.
|
||
- **Money.** Covered by the payment rules above; the legal opinion comes
|
||
before the first campaign, not after.
|
||
|
||
## Open decisions
|
||
|
||
1. **Seller of record**: CNX (recommended) or the artist.
|
||
2. **Payment model**: charge-and-refund into a ring-fenced account
|
||
(recommended) or save-card-and-charge; legal opinion either way.
|
||
3. **Fee model**: margin inside the published price list only
|
||
(recommended, it is what "transparent" means) or a separate platform
|
||
commission.
|
||
4. **Minimum campaign run**: 100 copies as the planning figure.
|
||
5. **Public price list**: fully public rates, or public list prices with
|
||
account-specific rates for labels.
|
||
6. **Hosting split**: public process on a fleet machine as proposed, or
|
||
everything on the plant core at launch volumes.
|
||
7. **Name**: under CNX Vinyl, Poy Records, or its own brand.
|