This is not a market-research deck. It is a library of 28 workflow-grounded personas and 14 strategic typologies written against the engine's real surface area — named routes, named presets, named transitions, named limits. For a project planner, it is a constraint map disguised as a cast list.
01 — Orientation
Before you plan against this, know which layer you are reading. They are built with different intents, and conflating them is the fastest way to misuse the set.
Real workflows against real surfaces. Each names the routes, presets, transitions and capabilities they actually touch — /engine, /versions/film.html, kraft, whip-blur, BPM detection, the 12-bin chromagram, MediaRecorder WebM export, magic-link login.
Grouped as 10 per-surface · 5 cross-cutting · 13 domain.
Roles the engine's creator thinks with, not users to market to. Every section is reframed around how the typology would push his own work forward. No "what they would click."
Four modes: Auditor · Practitioner · Broker · Cross.
A granular end-user library (buskers, beatmakers, real-estate agents, AR business-card designers) started and cancelled at the creator's request. Kept on disk under marketing/personas/abandoned/ as a record — explicitly not part of the deliverable.
Do not plan against this layer.
02 — The surface area
This is the spine of the library. A planner should read the surface, not the persona, first — the surface tells you what breaks and who notices. Click any card to filter the persona index below.
● Storyboard engine (SB) is planned — seven personas design against it anyway, which is a signal worth carrying into planning.
03 — Anatomy
Every workflow persona uses the same template. Learn it once and you can scan all 28 in minutes — the useful fields are "a typical session" and "what would make them leave."
04 — Coverage
Count of the 28 workflow personas touching each surface. For a planner this is a blast-radius map: change the top two surfaces and you have changed the library.
Presets (22) and the recorder (20) are the most-touched surfaces — and the two with the cleanest mental models (an anchor map, a WebM file). The engine core sits just behind at 20: connective tissue almost every workflow passes through, rarely anyone's primary surface.
Projects/auth is touched by only 6 personas — the smallest set, with the strongest signal: every one of them trusts the magic-link login specifically, and none would accept OAuth as a substitute.
The 14-FX pipeline is touched by 10 personas — and in 7 of those, chroma is the exact uniform they push. It is the single most-named specific feature in the whole library.
05 — Index
Filter by surface or search by name and one-line. Start from the surface you are about to change.
06 — Signals
Both READMEs close with a "what we noticed" pass. These are the findings a planner should treat as constraints.
Of the 7 storyboard personas, only 4 also touch the recorder. The other 3 treat the storyboard as a planning artifact, not a render target. Storyboard-first users are not recorder-first users.
All 9 transition users fire them manually, on phrase boundaries. Every one of them would leave if the engine started auto-firing on every bar.
Take-home loops (curator, therapist) vs. merch-table posters (touring visualist, poster maker). Both insist on no-login share links. The 5-second record limit is a shared tolerance, not a complaint.
Audio analysis is overwhelmingly used as a sanity check on the 12-bin chromagram, not the BPM. Two personas use it as a primary surface; the other eight use it to validate another surface's claim.
Six of the 14 library users re-tag assets or constrain the ShotPicker to a tag bucket. Nobody's problem is browsing.
Three personas explicitly capture multiple takes and pick the best. They would leave if the engine started auto-picking a single take.
Three personas flatly refuse any "smart" auto-correction or "trust the AI" pass. The engine's refusal to smooth the surface is a feature for them, not a limitation.
The designer, the philosopher and the multisystem specialist leave the moment the engine starts hiding its seams — a real constraint on any redesign that smooths the surface.
Five typologies (meditator, author, music tutor, musician, writer) have zero tolerance for popups, notifications, nudges, streaks or share-prompts. The largest single signal about who not to please.
07 — Playbook
Write the spec against ENG, VER, FX, TX, AR, SB, REC, PST, AAP, LIB or AUD. If a feature does not land on a surface, no persona in this library can validate it.
Use the coverage matrix as the invite list. Changing presets means 22 stakeholders. Changing auth means 6 — but all six are immovable on the mechanism.
"A typical session" tells you where the workflow breaks today — usually the almost quit line. That is your real acceptance test, and it is usually not a crash.
These are non-negotiables, not preferences. Write them as regression tests.
Each line is a documented abandonment condition from the files.
The AR loop (8 personas) fails the moment viewing requires a login. The link must open for someone with no account — that is the entire point of sending it.
All 6 projects/auth personas would leave. Venue laptops, hospital firewalls and agency procurement do not support it.
26+ visual styles stay peers. A "theme picker" dropdown or a single mood dropdown drops the variant collector, the touring visualist, the anchor curator and the live VJ.
The silence between transitions is the work. Auto-firing on every bar costs you all 9 transition users.
A "trust the AI" button, or an auto-correction that snaps a detected key to a diatonic default, removes the override workflow that is the whole reason these people came.
The recorder's MediaRecorder → WebM path is the assumption under every downstream ffmpeg, Vimeo, SoundCloud and archive pipeline in the library.
The largest single signal in the strategic set: five typologies have zero tolerance for nudges or share-prompts.
The chromagram is treated as ground truth; a model guessing tags from clip content would be wrong ~20% of the time and cost you the tag janitor.
"Use a mobile device for live AR" is read as honest, not broken. It is a tolerated limitation forever — do not "fix" it into a login or a desktop fallback.
Open question the directory raises
"What is the engine refusing to do, and is the refusal deliberate?"
The strategic README flags this as the most actionable item in the set: the typologies converge on it, and no public answer exists. For a planner, it is the question that determines whether the next release is a design decision or a surrender.
Partial answer found in section 11. The live product does document deliberate refusals — zero backend, no install, no render farm, no ffmpeg.wasm. But the same pages add new refusals the persona library never saw, and at least one of them contradicts a documented persona tolerance.
08 — The live product
Everything below is from the deployed site at sainted-word-records.vercel.app — landing, campaign, profit-plan, market-study and the versions/status page. Author on all pages: Kai Djuric.
The whole engine, one HTML file. No node_modules for the user.
Bass, mid, treble, air, sub — plus rms, centroid, beat, onset, bpm in the feature set.
Each with its own blend mode and a stack of reactors. Bindings, not keyframes.
Demo assets. Auto-classified by motion, luma and mean hue, then routed to a role.
No API keys, no external services, no server-side render. MIT license on the source.
Most visualizers just react to the spectrum. This one classifies every asset — motion, brightness, hue — and routes each one to the band of the song that suits it. The composition is algorithmic; the score is the audio.
Single-file variants of the same engine. Same controls, same library, same MP4 export.
Test in browser · limited demo library · 10-second watermarked clip · 1–2 styles · self-serve, no support.
No watermark · 10/15/30/60s or full song · all 5 styles · custom artwork · higher-quality exports · commercial rights · 9:16 + 1:1 + 16:9.
Pay once, no subscription · render credits that never expire · watermark removed · persistent IndexedDB library · 1–2 years of updates by tier.
Stated rationale for credits over subscription: indie musicians ship irregularly — four singles, then six months of nothing. A subscription punishes them for not shipping.
A planner should read these as one funnel in tension rather than one coherent pitch. Each page frames the product for a different reader.
Three creator paths (musician / designer / mixed-media). Self-serve, open source, MIT, "drop a song, hit REC." 8 named user profiles, each pointed at one of the 5 versions.
"Sell promotion-ready videos, not an audio-reactive visual engine. The engine is your competitive advantage — it is not the thing they buy." Five curated media sets, €25–€75 service tiers, €120–€600 licence tiers.
Market-study paywall first (page already exists), then per-video service, library presets, visual commissions, and a hosted $8/mo tier as the Q1 groundwork.
09 — Release history
The published status page is the source of truth for what is live, deprecated and next. It also documents a late change that no persona in the library was written against.
The engine creates new audio-reactive personalities on its own. A daily cloud pipeline ships 2 fresh presets every morning (10 shaders × 8 palettes × 7 motions), the engine ingests them on load, and after 3 uses of a single persona it mutates a personalised variant tuned to your song's BPM and key.
The engine stops being a static visualizer. Manifest endpoint, a presets.client.js ingest layer (load / diff / markSeen / apply), a "N new personalit*" pill in the footer, macOS crontab, and automated Vite deploy.
Splash at /, app at /engine/, no index.html at root. PWA launches straight into the app. Service worker bumped to swr-v2 to invalidate the old cache.
Each style is a self-contained engine variant at /versions/*.html with its own GLSL post-process pass. Same WebGL pipeline, different uniforms plus a page-specific effect function. One GLSL with a switch on u_page (0..5).
The engine works. Drop a song, drop a library, get a music video. WebGL post-process with 14 FX uniforms (temp, mut, chroma, vignette, grain, sepia, glow, blur, grayscale, posterize…), audio features (bass / mid / treble / air / sub / rms / centroid / beat / onset / bpm), MediaRecorder MP4 export, and project save/load.
First commit. Single HTML file, two layers, one shader pass. "The idea is simple: a music video shouldn't require an editor, a renderer, or a render farm."
This is the single largest addition the persona library never saw. It replaces the fixed preset set the personas were written against with a container that ingests fresh presets daily and mutates a personal variant after three uses.
Read against the strategic set, it is a direct hit on the largest documented anti-signal: five typologies have zero tolerance for popups, notifications or nudges. A daily-arriving gold pill is exactly that mechanism. And read against the live VJ, whose anchor map is a hand-authored set list, a pipeline that ships presets overnight means the map is a moving target.
Schema swr-preset/v1 — 12 required fields, 3 optional. Validated by preset-pipeline/verify.mjs (20/20 checks).
A preset is a complete FX state + a palette + an audio-reactive mapping. swr-preset/v1.5 is drafted for Q3 2026: an LLM-curated novelty pass plus a cross-engine compatibility field.
Four places on the site count the visual styles differently. For a planner this is the cheapest concrete inconsistency to fix, and it is worth fixing before anything is marketed by count.
Named, described, with a dedicated directory page: Neon, Film, Grid, Smoke, Hallucination.
landing · campaign · "5 visual languages"
The v0.6 release entry: neon, film, grid, smoke, hallucination, glitch, aurora, pulse, void, chrome, watercolor, fractal (+ eclipse legacy).
versions · "12 visual styles"
The live-state probing value on the status page: "22 per-page GLSL".
versions · live state panel
Every named style in the Visual styles list — including whole surfaces that are not styles at all.
versions · "25 self-contained engine variants"
A preset is a look. A page is a tool. They are listed in the same breath.
Read against the persona library, that count is not cosmetic: "the 26 variants stay peers" is a documented abandonment condition for several personas. A planner cannot scope "keep the variants" until the set has one definition.
10 — Route map
The persona library works in abstract surface codes (ENG, PST, REC…). The shipped site uses real paths. Below is the real map, grouped by function, followed by the specific places where the two disagree.
6 pages
19 pages
the funnel
The paywall is a client-side localStorage stub — fully bypassable with one DevTools edit. The profit plan flags this itself as Risk 1 and says ship real Stripe / Lemon Squeezy with server-side verification, "not just a CSS flag flip."
The persona library's most-cited abandonment condition is a login-gated share link. The site does not list /ar-loop among its public routes at all — the AR surface exists as a style entry and in persona workflows, but has no discoverable entry point on the homepage. That is a gap between the strongest persona signal and the shipped navigation.
The live site ships its own personas page describing 8 personas with concrete starting points. The engine licence page advertises 23 personas. The directory you are reading holds 28 workflow + 14 strategic. Three different persona counts are public at once — a planner needs one canonical answer before any persona-led marketing.
Galleries include surfaces far outside the audio-reactive core — T-shirts, posters, album art, VR, glyphs, a Point4 brand system, even a weddings vertical. The route budget is already wider than the campaign's stated niche (indie musicians and bedroom producers), and the profit plan's ads warning applies directly: broad surfaces dilute a narrow service pitch.
11 — Revenue, market & risk
The site publishes a service offer, a licence offer, a five-vector plan, a market study with its own sizing, and a ranked risk list. A planner needs all of it in one place, plus the one thing none of those pages say out loud.
Curated media sets rather than uploaded assets: pick a mood, send your song, get a finished MP4. Five sets are named — Neon Church, Morning Haunt, Brutalist Grid, Dream Sequence, System Error.
1 set · 1 song · 30-second render
1 curated set · 1 format (9:16, 1:1 or 16:9) · 2 revision rounds · 48-hour delivery · commercial-use rights.
2 sets · 1 song · both rendered
2 sets to choose from · 2 formats · 3 revision rounds · 48-hour delivery · A/B test which vibe fits.
All 5 sets · 1 song · 5 renders
All 5 sets · all formats · unlimited revisions within scope · 48-hour delivery · "perfect for label pitching."
your assets + 1 SWR set
Send your own footage + photos · blended with 1 SWR set · all formats · 3 revision rounds.
add-ons +€10 for 60-second length · +€25 full-song render · +€5 Spotify Canvas crop · +€15 24-hour rush. Bundle: 3+ songs = 15% off any tier. Founding customers (first 5 orders) get 30% off in exchange for portfolio display rights — after that, listed prices apply.
Pay once, no subscription. Credit-bank rather than seat-based, justified by irregular release rhythm. Keys arrive by email as swr-{tier}-{code} and are activated via the PT chip in the engine header.
one-time · 50 render credits
Full engine access · 50 credits (1 credit / minute at 1080p) · all personas · all 20 CSS filters · watermark removed · WebM export 1080p/30fps · 1 year of updates · persistent IndexedDB library.
one-time · 150 render credits
Everything in Solo · 150 credits · MP4 export when v1.1 ships, included · per-clip rotate / randomise tools · 2 years of updates · priority email support.
one-time · 500 render credits
Everything in Band · 500 credits · 5 seats (shared library) · 4K vertical export when v1.3 ships · Yugo pack (Belgrade-scene presets) · lifetime updates · dedicated support.
From the 90-day plan. Each stands alone — none requires the others to be live.
Organic-only, one channel at a time, no paid acquisition. Headline range: $3,200–$7,400 total revenue across the first 90 days.
| Vector | Wk 1–2 | Wk 3–6 | Wk 7–10 | Wk 11–13 |
|---|---|---|---|---|
| Market study paywall | $80 | $300 | $400 | $300 |
| Per-video service | $0 | $250 | $500 | $500 |
| Library presets | $0 | $120 | $300 | $400 |
| Visual commissions | $0 | $0 | $400 | $600 |
| Hosted tier (Q1) | $0 | $0 | $0 | $150 |
| Total | $80 | $670 | $1,600 | $1,950 |
The $1k-per-week milestone hits at week 6 if two vectors are live by then (paywall + one of per-video or presets). The single metric it optimises for: $1,000 of revenue per week, sustainable for four weeks in a row.
Fragmented, no clear leader — top five tools hold ~38% share. Built from 47 interviews across March–July 2026, telemetry from 6 tools (~340k monthly active creators), 18 months of search and social signals.
Bedroom producers are the volume segment at the lowest ARPU (median $48/yr). Labels are the inverse: 17% of paying users, 38% of revenue, median $340/yr. n = 12,400 paying users.
Van Westendorp PSM across 312 indie creators, May 2026. Indie sweet spot: $8–12/month for unlimited exports, or $0.50–$1.00 per single export pay-as-you-go.
A $5 "remove the watermark" one-time purchase "lands inside the lower edge of the WTP range and tests well."
Anyone who tries the demo and learns it is bypassable assumes production is the same — and either does not pay when they should, or tells friends. Fix: real Stripe / Lemon Squeezy plus server-side verification.
Single-file and easily forkable. If a competitor adds cloud sync and ships first, the per-video service is the only moat. Market study and visual commissions are not forkable — prioritise them.
$5/day on "music video generator" burns $150/month on clicks from people who will never pay $5 for a study. Run ads only after the per-video service shows a 20% repeat-customer rate.
Already solved: any audio file works (MP3/WAV/M4A/FLAC), the interactive how-to walks the full 30s flow, and the 5 versions are click-to-try with no setup.
The thing none of these pages say out loud
The landing page and the campaign page both sell native H.264 + AAC export as the thing that removes ffmpeg, a server and a transcode step. The campaign page's own "read this before you sell" section states that while the source is MIT-licensed, the bundled visual library is not — stock footage, images and clips are not covered — so every asset in a rendered output must be verified for commercial use and redistribution before it is sold. It also notes customers must own or have permission for the audio they submit, and that the docs say modern Chrome or Safari with a wide window, so identical output should not be promised across browsers and devices.
For a planner, that is the top of the dependency list — it sits underneath the entire service tier, the per-video vector and the €55 custom-source tier at once. It is also exactly where the persona library's library-as-metadata finding meets reality: the personas treat the library as tags and metadata, and never once discuss rights.
Three claims the campaign makes as a wedge rather than a constraint: local pricing power (€25 reads as a marketing expense in the EU, a real purchase in Serbia, so the same job wins at roughly double the margin), an authentic Yugo-nostalgia angle (brutalist architecture, CRT scan lines, the warm/cool palette of late-Yugoslav design — "a San Francisco competitor can copy the SVG, they can't copy the intuition"), and in-person closes at KC Grad, Drugstore or Dot.
12 — Reconciliation
Not conflicts to smooth over — the useful part. Each row is a decision a planner has to make, with both sides stated.
One-time purchase, explicitly not monthly. The guitar-poster maker, the AR artist, the touring visualist and the wedding videographer all name a flat yearly or lifetime figure and refuse subscriptions. The licence page agrees and even defends credits over subscriptions.
The same licence page lists "a hosted $8/mo studio tier" as vector 5 and the long-term play, with a Q1 target of $1.5k MRR — and the market study finds the indie WTP sweet spot is $8–12/month.
DECISIONThe documented persona refusals only fire on the watermark, the login and the smoothing — not on a hosted tier per se. But the moment the hosted tier gates a library, a share link or an export, four personas leave. Keep hosted as additive storage, never as gate.
WebM is the assumption under every downstream pipeline: ffmpeg transcode, Vimeo upload, SoundCloud visual, YouTube Shorts. "You would leave forever if the recorder dropped MediaRecorder support for anything other than WebM."
The landing page advertises "a real MP4 comes out" and the campaign sells native H.264 + AAC as the headline advantage. The licence tiers say the opposite in the fine print: WebM export in PT Solo today, MP4 export when v1.1 ships.
DECISIONThese are two different features sharing one word. The persona library's entire recorder surface is built on the live-capture WebM path; the marketing copy is built on the native encoder path. A planner should keep both and name them apart, because 20 personas depend on one and the campaign depends on the other.
Zero backend, no install, no render farm, local-first. The export-first renderer specifically refuses cloud rendering: "your laptop is faster than a serverless function." The AR educator and therapist have no budget and need no login.
Export is metered in render credits — 50 / 150 / 500 — decremented per minute at 1080p, topped up by buying another key. The free demo clips at 10 seconds with a watermark, which is precisely the artefact the AR and educator workflows distribute.
DECISIONCredits meter a local render, which is coherent — but the free tier is the only version the education, clinical and museum personas could ever use, and a watermark plus a 10-second cap makes the free tier unusable for all three. If those personas are meant to be a real segment, they need a stated non-commercial tier rather than a smaller free tier.
The anchor map is the mental model and the set list. 22 of 28 personas touch presets, and several would leave if the 19 anchors collapsed or if any adaptive pass smoothed the surface.
v1.0 ships two new presets every morning from a pipeline and mutates a personal variant after three uses, surfaced behind a notification-style gold pill in the footer.
DECISIONDaily generation is additive and defensible; the notification is not. Make new presets discoverable by navigation and keep the anchor map as the authored, stable reference the personas actually plan against — otherwise the curator, the live VJ and the variant collector all lose their set list.
Sell one thing: "affordable audio-reactive music videos for independent artists," €25–€40, 48-hour turnaround, fulfilled by hand for the first ten orders.
The same domain ships 19 gallery pages, five commercial pages, a weddings vertical, T-shirts, posters, album art, VR, glyphs and a Point4 brand system.
DECISIONThe profit plan's own ad warning is the answer: broad surfaces dilute a narrow service pitch. The galleries should sit behind a subdomain or be framed explicitly as R&D output, not as peers of the funnel.
The live site's own personas page: 8 personas with concrete starting points.
"All 23 personas · all 20 CSS filters" on every PT tier.
28 workflow personas plus 14 strategic typologies, counted separately because they are different layers.
DECISIONPick one canonical count and one canonical page. Sell "23 personas" today if that is the shipped set; the 28-file directory and the 14 typologies are internal thinking tools and should not be numbered in marketing copy at all. Also note the licence page advertises "20 CSS filters" while the v0.5 release notes list 14 FX uniforms — verify before printing either.
v1.0, 2026-08-17: a cron pipeline generates personalities daily, the engine ingests a manifest on load, and users get personalised variants. The build is self-evolving and automated.
"The first ten orders should be you, manually, on email." Fulfilment is WeTransfer, an email, a Stripe payment link and 30 minutes of human work per video.
DECISIONBoth can be true, but they pull attention in opposite directions. The daily pipeline is a build-and-maintain cost that produces marketing surface; the manual service is the only thing with a revenue path. For the first 90 days, the pipeline should be frozen rather than extended.
13 — Sources
Two source sets, kept separate so a planner can cite the right one. Everything is quoted, not inferred — where the sources disagree, section 12 says so.
28 workflow files + README · strategic README (14 files)
sainted-word-records.vercel.app · landing, campaign, profit-plan, market-study, versions
The persona directory and the commercial pages were written for different readers and at different times. Treat the directory as the specification of what users refuse, and the site as the specification of what is sold. Where they meet — sections 11 and 12 — that is where this project's real planning surface is.