Skip to main content

max / makenotwork

server: refocus landing fans card on Fan+, split files guide Trim the creators card to the founder grid + a single lede line, retarget the fans card entirely at Fan+ (benefits, $8/mo note, sign-up CTA), and pull "Browse creators" out as a centered link below the fork. Split the consolidated `files` guide into separate audio, video, and software pages and wire the docs index + use_cases anchors to match. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-06-03 22:14 UTC
Commit: f0766926e57d04655f4c9db432a664064d623a55
Parent: 168b193
9 files changed, +496 insertions, -141 deletions
@@ -0,0 +1,79 @@
1 + # Audio Hosting
2 +
3 + How to upload audio, how it streams, and how fans download it.
4 +
5 + ---
6 +
7 + ## Supported Formats
8 +
9 + | Format | Extension | Notes |
10 + |--------|-----------|-------|
11 + | FLAC | `.flac` | Recommended for lossless |
12 + | WAV | `.wav` | Accepted |
13 + | AIFF | `.aiff` | Accepted |
14 + | MP3 | `.mp3` | Accepted as-is |
15 + | AAC | `.m4a` | Accepted as-is |
16 + | OGG | `.ogg` | Accepted as-is |
17 +
18 + Upload the highest quality source you have. Files are stored as-is and streamed in-browser.
19 +
20 + ---
21 +
22 + ## Streaming
23 +
24 + Audio items get a built-in in-browser player. No app required. Streaming uses your original file — no separate transcoded preview, no quality loss.
25 +
26 + ---
27 +
28 + ## File Limits
29 +
30 + Per-file size limits depend on your [pricing tier](./tiers.md): {{ tier_limits.basic_per_file }} (Basic), {{ tier_limits.small_files_per_file }} (Small Files), {{ tier_limits.big_files_per_file }} (Big Files and Everything). Cover images: {{ tier_limits.basic_per_file }} on all tiers.
31 +
32 + Batch upload: up to 50 files at once.
33 +
34 + ---
35 +
36 + ## Upload Process
37 +
38 + 1. Drag files onto the upload area (or click to browse)
39 + 2. Files upload in parallel with progress indicators
40 + 3. Add metadata while uploading or after
41 + 4. Set tags, pricing, visibility
42 + 5. Save as draft or publish immediately
43 +
44 + ---
45 +
46 + ## Metadata
47 +
48 + **Required:** Title
49 +
50 + **Optional:** Description, genre tags, release date, credits/collaborators, lyrics
51 +
52 + **Auto-extracted:** Title, artist, album, track number, cover art (when embedded in the audio file). Override any auto-extracted value during upload.
53 +
54 + ---
55 +
56 + ## Album Upload
57 +
58 + 1. Create a [project](./projects.md) first
59 + 2. Upload all tracks
60 + 3. Drag to reorder
61 + 4. Set album-level metadata
62 + 5. Publish project (publishes all tracks)
63 +
64 + ---
65 +
66 + ## Downloads
67 +
68 + Fans who purchase the item or subscribe to a tier can download the original file directly. No DRM, no device tracking, no per-download fees. Re-downloads allowed anytime.
69 +
70 + To offer multiple formats (e.g., FLAC and MP3), upload them as separate [versions](./items.md#versions) of the same item.
71 +
72 + ---
73 +
74 + ## See Also
75 +
76 + - [Video Hosting](./video.md)
77 + - [Software & Downloads](./software.md)
78 + - [Items](./items.md): organizing items and projects
79 + - [Metadata & SEO](./metadata.md): tags, descriptions, and discoverability
@@ -1,91 +0,0 @@
1 - # Uploading & Downloads
2 -
3 - How to upload content and how fans download it.
4 -
5 - ---
6 -
7 - ## Uploading Audio
8 -
9 - ### Supported Formats
10 -
11 - | Format | Extension | Notes |
12 - |--------|-----------|-------|
13 - | FLAC | `.flac` | Recommended for lossless |
14 - | WAV | `.wav` | Accepted |
15 - | AIFF | `.aiff` | Accepted |
16 - | MP3 | `.mp3` | Accepted as-is |
17 - | AAC | `.m4a` | Accepted as-is |
18 - | OGG | `.ogg` | Accepted as-is |
19 -
20 - Upload the highest quality source you have. Files are stored as-is and streamed in-browser.
21 -
22 - ### File Limits
23 -
24 - Per-file size limits depend on your [pricing tier](./tiers.md): {{ tier_limits.basic_per_file }} (Basic), {{ tier_limits.small_files_per_file }} (Small Files), {{ tier_limits.big_files_per_file }} (Big Files and Everything). Cover images: {{ tier_limits.basic_per_file }} on all tiers.
25 -
26 - Batch upload: up to 50 files at once.
27 -
28 - ### Upload Process
29 -
30 - 1. Drag files onto the upload area (or click to browse)
31 - 2. Files upload in parallel with progress indicators
32 - 3. Add metadata while uploading or after
33 - 4. Set tags, pricing, visibility
34 - 5. Save as draft or publish immediately
35 -
36 - ### Metadata
37 -
38 - **Required:** Title
39 -
40 - **Optional:** Description, genre tags, release date, credits/collaborators, lyrics
41 -
42 - **Auto-extracted**: We automatically read song info (title, artist, album, track number, cover art) embedded in your audio files. You can override any auto-extracted values.
43 -
44 - ### Album Upload
45 -
46 - 1. Create a project first
47 - 2. Upload all tracks
48 - 3. Drag to reorder
49 - 4. Set album-level metadata
50 - 5. Publish project (publishes all tracks)
51 -
52 - ---
53 -
54 - ## Downloads
55 -
56 - Fans who purchase your content can download it directly. No DRM, no restrictions.
57 -
58 - ### How It Works
59 -
60 - 1. Fan purchases item or subscribes
61 - 2. Download button appears on item page
62 - 3. File downloads in original format
63 -
64 - Re-downloads allowed anytime, unlimited.
65 -
66 - ### Download Formats
67 -
68 - Files are served in their original uploaded format. No transcoding. To offer multiple formats (e.g., FLAC and MP3), upload them as separate versions of the same item.
69 -
70 - ### Album/Project Downloads
71 -
72 - Fans download items individually from each item's page.
73 -
74 - ### Download Limits
75 -
76 - No limits. No device tracking. No DRM.
77 -
78 - ### Bandwidth Costs
79 -
80 - Downloads are included in your membership. No per-download fees.
81 -
82 - ### Offline Access
83 -
84 - Downloaded files work offline forever. Fans own what they buy.
85 -
86 - ---
87 -
88 - ## See Also
89 -
90 - - [Items](./items.md): Organizing items and projects
91 - - [Metadata & SEO](./metadata.md): Tags, descriptions, and discoverability
@@ -0,0 +1,79 @@
1 + # Software & Downloads
2 +
3 + How to host and distribute software, documents, archives, and anything else that's downloaded rather than streamed.
4 +
5 + ---
6 +
7 + ## What This Covers
8 +
9 + Anything fans download as a file rather than play in-browser:
10 +
11 + - Software builds (DMG, EXE, AppImage, ZIP, TAR)
12 + - Documents (PDF, EPUB, comics)
13 + - Source code archives
14 + - Sample packs, presets, project files
15 + - Anything else uploaded that isn't audio or video
16 +
17 + Audio and video have dedicated pages: [Audio Hosting](./audio.md), [Video Hosting](./video.md).
18 +
19 + ---
20 +
21 + ## Supported Formats
22 +
23 + Any file type is accepted. Files are stored as-is — no transcoding, no transformation.
24 +
25 + The platform applies content scanning (YARA rules, malware feeds) on every upload. Files flagged by the scanner are held pending review rather than published.
26 +
27 + ---
28 +
29 + ## File Limits
30 +
31 + Per-file size limits depend on your [pricing tier](./tiers.md): {{ tier_limits.basic_per_file }} (Basic), {{ tier_limits.small_files_per_file }} (Small Files), {{ tier_limits.big_files_per_file }} (Big Files and Everything).
32 +
33 + Software builds tend to need Big Files or Everything.
34 +
35 + ---
36 +
37 + ## Upload Process
38 +
39 + 1. Drag the file onto the upload area (or click to browse)
40 + 2. Upload runs with a progress indicator
41 + 3. Add metadata while uploading or after
42 + 4. Set tags, pricing, visibility
43 + 5. Save as draft or publish immediately
44 +
45 + ---
46 +
47 + ## Versions
48 +
49 + Use [versions](./items.md#versions) to ship updates without forcing fans to re-purchase. Each version keeps its own file; fans download whichever they want.
50 +
51 + For platform builds (macOS / Windows / Linux), upload each as a separate version with a clear name (e.g. *"1.4.2 (macOS arm64)"*).
52 +
53 + ---
54 +
55 + ## License Keys
56 +
57 + For paid software, generate [license keys](./license-keys.md) per purchase. Keys are issued on purchase and visible in the fan's library next to the download link.
58 +
59 + ---
60 +
61 + ## OTA Updates
62 +
63 + For Tauri and similar desktop apps, the platform exposes an [OTA update endpoint](../developer/ota.md) that your app can poll for new versions. Signed manifest, signature sidecar per build.
64 +
65 + ---
66 +
67 + ## Downloads
68 +
69 + Fans who purchase the item or subscribe to a tier can download the file directly. No DRM, no device tracking, no per-download fees. Re-downloads allowed anytime.
70 +
71 + ---
72 +
73 + ## See Also
74 +
75 + - [Audio Hosting](./audio.md)
76 + - [Video Hosting](./video.md)
77 + - [Items](./items.md): organizing items and projects
78 + - [License Keys](./license-keys.md): per-purchase keys for paid software
79 + - [OTA Updates](../developer/ota.md): in-app update polling
@@ -0,0 +1,71 @@
1 + # Video Hosting
2 +
3 + How to upload video, how it streams, and how fans download it.
4 +
5 + ---
6 +
7 + ## Supported Formats
8 +
9 + Any modern browser-supported video format. Most creators upload:
10 +
11 + | Format | Extension | Notes |
12 + |--------|-----------|-------|
13 + | MP4 (H.264 / H.265) | `.mp4` | Most widely compatible |
14 + | WebM (VP9) | `.webm` | Open codec, good compression |
15 + | QuickTime | `.mov` | Accepted; some browsers transcode on download |
16 +
17 + Files are stored as-is. The in-browser player streams whatever you upload, so encode for the browser you want to reach.
18 +
19 + ---
20 +
21 + ## Streaming
22 +
23 + Video items get a built-in HTML5 player with the cover image as the poster frame. No app required, no third-party embed. Streaming preloads metadata only — full bytes load as the viewer plays.
24 +
25 + Live streaming is on the roadmap.
26 +
27 + ---
28 +
29 + ## File Limits
30 +
31 + Per-file size limits depend on your [pricing tier](./tiers.md): {{ tier_limits.basic_per_file }} (Basic), {{ tier_limits.small_files_per_file }} (Small Files), {{ tier_limits.big_files_per_file }} (Big Files and Everything). Cover images: {{ tier_limits.basic_per_file }} on all tiers.
32 +
33 + Most full-length video uploads will need Big Files or Everything.
34 +
35 + ---
36 +
37 + ## Upload Process
38 +
39 + 1. Drag the video file onto the upload area (or click to browse)
40 + 2. Upload runs with a progress indicator
41 + 3. Add metadata while uploading or after
42 + 4. Set a cover image (used as the poster frame and OG card)
43 + 5. Set tags, pricing, visibility
44 + 6. Save as draft or publish immediately
45 +
46 + ---
47 +
48 + ## Metadata
49 +
50 + **Required:** Title
51 +
52 + **Optional:** Description, tags, release date, credits/collaborators, cover image
53 +
54 + **Auto-extracted:** Duration
55 +
56 + ---
57 +
58 + ## Downloads
59 +
60 + Fans who purchase the item or subscribe to a tier can download the original file directly. No DRM, no device tracking, no per-download fees. Re-downloads allowed anytime.
61 +
62 + To offer multiple resolutions or formats, upload them as separate [versions](./items.md#versions) of the same item.
63 +
64 + ---
65 +
66 + ## See Also
67 +
68 + - [Audio Hosting](./audio.md)
69 + - [Software & Downloads](./software.md)
70 + - [Items](./items.md): organizing items and projects
71 + - [Media Library](./media-library.md): images and videos embedded in item descriptions and blog posts
@@ -54,7 +54,7 @@ pub async fn docs_index(
54 54 if let Some(guide) = sections.iter_mut().find(|s| s.name == "Guide") {
55 55 const SUBCATEGORIES: &[(&str, &[&str])] = &[
56 56 ("Getting Started", &["getting-started", "sandbox", "profile", "security", "best-practices"]),
57 - ("Content & Organization", &["02-content", "items", "projects", "files", "tags", "metadata", "collections", "blog"]),
57 + ("Content & Organization", &["02-content", "items", "projects", "audio", "video", "software", "tags", "metadata", "collections", "blog"]),
58 58 ("Selling & Revenue", &["03-selling", "pricing", "payouts", "analytics", "promo-codes", "contact-sharing", "fan-plus"]),
59 59 ("Fans & Distribution", &["fan-guide", "discovery", "rss", "mailing-lists", "export"]),
60 60 ("Advanced", &["custom-domains", "git", "migration", "tiers"]),
@@ -3,7 +3,7 @@
3 3 //! Provides presigned URL generation for client-direct uploads/downloads.
4 4 //! Delegates S3 operations to the shared `s3_storage` crate.
5 5 //!
6 - //! See also: `/docs/guide/files`
6 + //! See also: `/docs/guide/audio`, `/docs/guide/video`, `/docs/guide/software`
7 7
8 8 use std::str::FromStr;
9 9
@@ -5695,6 +5695,22 @@ textarea:focus-visible {
5695 5695 margin-bottom: 0;
5696 5696 }
5697 5697
5698 + .fork-revenue-line {
5699 + font-size: 0.9rem;
5700 + opacity: 0.8;
5701 + margin: 0.75rem 0 0.5rem;
5702 + line-height: 1.5;
5703 + }
5704 +
5705 + .fork-revenue-line a {
5706 + border-bottom: 1px solid transparent;
5707 + transition: border-color 0.2s ease;
5708 + }
5709 +
5710 + .fork-revenue-line a:hover {
5711 + border-bottom-color: currentColor;
5712 + }
5713 +
5698 5714 .landing-fork {
5699 5715 display: grid;
5700 5716 grid-template-columns: 1fr 1fr;
@@ -5753,6 +5769,17 @@ textarea:focus-visible {
5753 5769 opacity: 1;
5754 5770 }
5755 5771
5772 + .fork-lede {
5773 + font-size: 0.95rem;
5774 + line-height: 1.55;
5775 + margin: 0 0 1rem;
5776 + }
5777 +
5778 + .landing-browse-cta {
5779 + text-align: center;
5780 + margin: 1.25rem 0 0;
5781 + }
5782 +
5756 5783 .founder-tagline {
5757 5784 font-family: var(--font-body);
5758 5785 font-size: 0.95rem;
@@ -5760,6 +5787,14 @@ textarea:focus-visible {
5760 5787 margin: 1.25rem auto 0;
5761 5788 max-width: 560px;
5762 5789 color: var(--text);
5790 + display: flex;
5791 + flex-direction: column;
5792 + align-items: center;
5793 + gap: 0.5rem;
5794 + }
5795 +
5796 + .founder-tagline-detail {
5797 + display: block;
5763 5798 }
5764 5799
5765 5800 .founder-tagline-mark {
@@ -5772,7 +5807,6 @@ textarea:focus-visible {
5772 5807 padding: 0.15rem 0.5rem;
5773 5808 border: 1px solid var(--highlight);
5774 5809 border-radius: 3px;
5775 - margin-right: 0.4rem;
5776 5810 white-space: nowrap;
5777 5811 }
5778 5812
@@ -6037,6 +6071,125 @@ textarea:focus-visible {
6037 6071 font-size: 0.85rem;
6038 6072 }
6039 6073
6074 + .do-rail {
6075 + list-style: none;
6076 + margin: 2rem 0 1.5rem;
6077 + padding: 0;
6078 + display: grid;
6079 + grid-template-columns: repeat(3, 1fr);
6080 + gap: 1rem;
6081 + width: 100%;
6082 + }
6083 +
6084 + .do-card {
6085 + background: transparent;
6086 + border: 1px solid var(--border);
6087 + padding: 1.25rem;
6088 + text-align: left;
6089 + display: flex;
6090 + flex-direction: column;
6091 + }
6092 +
6093 + .do-card-title {
6094 + font-family: var(--font-mono);
6095 + font-size: 0.9rem;
6096 + font-weight: 600;
6097 + text-transform: uppercase;
6098 + letter-spacing: 0.05em;
6099 + margin: 0 0 0.5rem;
6100 + }
6101 +
6102 + .do-card-lede {
6103 + font-size: 0.92rem;
6104 + line-height: 1.5;
6105 + opacity: 0.78;
6106 + margin: 0 0 0.85rem;
6107 + }
6108 +
6109 + .do-card-links {
6110 + list-style: none;
6111 + margin: auto 0 0;
6112 + padding: 0.85rem 0 0;
6113 + border-top: 1px solid var(--border);
6114 + display: flex;
6115 + flex-wrap: wrap;
6116 + gap: 0.35rem 0.9rem;
6117 + }
6118 +
6119 + .do-card-links a {
6120 + font-size: 0.88rem;
6121 + border-bottom: 1px solid transparent;
6122 + transition: border-color 0.2s ease;
6123 + }
6124 +
6125 + .do-card-links a:hover {
6126 + border-bottom-color: currentColor;
6127 + }
6128 +
6129 + @media (max-width: 640px) {
6130 + .do-rail {
6131 + grid-template-columns: 1fr;
6132 + }
6133 + }
6134 +
6135 + .do-card--wide {
6136 + margin-top: 2rem;
6137 + width: 100%;
6138 + }
6139 +
6140 + .contrast-rail {
6141 + list-style: none;
6142 + margin: 1rem 0 0;
6143 + padding: 0;
6144 + display: grid;
6145 + grid-template-columns: repeat(4, 1fr);
6146 + gap: 1rem;
6147 + width: 100%;
6148 + }
6149 +
6150 + .contrast-card {
6151 + border-top: 1px solid var(--border);
6152 + padding: 0.75rem 0.25rem 0;
6153 + text-align: left;
6154 + }
6155 +
6156 + .contrast-card-title {
6157 + font-family: var(--font-mono);
6158 + font-size: 0.78rem;
6159 + letter-spacing: 0.04em;
6160 + text-transform: uppercase;
6161 + opacity: 0.5;
6162 + text-decoration: line-through;
6163 + text-decoration-thickness: 1px;
6164 + margin: 0 0 0.5rem;
6165 + font-weight: 600;
6166 + }
6167 +
6168 + .contrast-card-links {
6169 + list-style: none;
6170 + margin: 0;
6171 + padding: 0;
6172 + display: flex;
6173 + flex-wrap: wrap;
6174 + gap: 0.35rem 0.9rem;
6175 + }
6176 +
6177 + .contrast-card-links a {
6178 + font-size: 0.92rem;
6179 + border-bottom: 1px solid transparent;
6180 + transition: border-color 0.2s ease;
6181 + }
6182 +
6183 + .contrast-card-links a:hover {
6184 + border-bottom-color: currentColor;
6185 + }
6186 +
6187 + @media (max-width: 640px) {
6188 + .contrast-rail {
6189 + grid-template-columns: 1fr;
6190 + }
6191 + }
6192 +
6040 6193 .explore-links {
6041 6194 display: flex;
6042 6195 flex-wrap: wrap;
@@ -19,16 +19,51 @@
19 19 <div class="landing-hero">
20 20 <h1 class="brand-h1">Makenot<span class="dot">.</span>work</h1>
21 21 <p class="landing-headline">Sell your work directly<span class="dot">.</span> Keep what you earn<span class="dot">.</span></p>
22 - <p class="landing-sub">Audio, video, software, writing, games, and more. 0% platform fee, only Stripe's ~3% processing.</p>
23 - <p class="landing-sub">No investors, no ads, no cut on your sales. A flat monthly fee. Source-available, exportable in one click.</p>
22 + <p class="landing-sub">A flat monthly subscription. No investors, no ads, no cut on your sales. Source-available, exportable in one click.</p>
24 23
25 24 {% if founder_window_open %}
26 25 <p class="founder-tagline">
27 - <span class="founder-tagline-mark">Founder pricing open</span>:
28 - half off creator tiers, <strong>locked for life</strong>.
26 + <span class="founder-tagline-mark">Founder pricing open</span>
27 + <span class="founder-tagline-detail">Half off creator tiers, <strong>locked for life</strong>.</span>
29 28 </p>
30 29 {% endif %}
31 30
31 + <ul class="do-rail" aria-label="What we offer">
32 + <li class="do-card">
33 + <h3 class="do-card-title">A complete storefront</h3>
34 + <p class="do-card-lede">Sell anything digital. Bundles, splits, license keys, promo codes.</p>
35 + <ul class="do-card-links">
36 + <li><a href="/docs/items">Items</a></li>
37 + <li><a href="/docs/bundles">Bundles</a></li>
38 + <li><a href="/docs/projects">Projects</a></li>
39 + <li><a href="/docs/splits">Splits</a></li>
40 + <li><a href="/docs/license-keys">Keys</a></li>
41 + </ul>
42 + </li>
43 + <li class="do-card">
44 + <h3 class="do-card-title">Fan engagement, built in</h3>
45 + <p class="do-card-lede">Profile, blog, mailing list, memberships, tips &mdash; no add-ons.</p>
46 + <ul class="do-card-links">
47 + <li><a href="/docs/profile">Profiles</a></li>
48 + <li><a href="/docs/blog">Blogs</a></li>
49 + <li><a href="/docs/mailing-lists">Mailing lists</a></li>
50 + <li><a href="/docs/forums">Forums</a></li>
51 + <li><a href="/docs/tips">Tips</a></li>
52 + </ul>
53 + </li>
54 + <li class="do-card">
55 + <h3 class="do-card-title">Hosting and distribution</h3>
56 + <p class="do-card-lede">Audio and video streaming, file downloads, git repos, custom domains. Live streaming on the way.</p>
57 + <ul class="do-card-links">
58 + <li><a href="/docs/audio">Audio</a></li>
59 + <li><a href="/docs/video">Video</a></li>
60 + <li><a href="/docs/software">Downloads</a></li>
61 + <li><a href="/docs/git">Git</a></li>
62 + <li><a href="/docs/custom-domains">Custom domains</a></li>
63 + </ul>
64 + </li>
65 + </ul>
66 +
32 67 <div class="landing-fork">
33 68 <div class="fork-card{% if founder_window_open %} fork-card--founder{% endif %}">
34 69 <h2 class="fork-heading">For creators</h2>
@@ -65,16 +100,11 @@
65 100 {% endif %}
66 101 {% endif %}
67 102
68 - <ul class="fork-list">
69 - {% if !founder_window_open %}
70 - <li><strong>Flat monthly pricing</strong>: starts at ${{ tier_prices.basic_std }}/mo</li>
71 - {% endif %}
72 - <li><strong>0% platform fee</strong>: only ~3% payment processing</li>
73 - <li><strong>Every tier is the complete platform</strong>: profile, forum, discovery, memberships. Tier picks the file-size envelope, not the feature set</li>
74 - <li><strong>Full data export</strong>: no lock-in, cancel anytime</li>
75 - <li><strong>Source available</strong>: read the code, verify every claim</li>
76 - </ul>
77 - <p class="fork-note">Currently in private alpha. <a href="/creators">Apply for creator access</a>.</p>
103 + {% if !founder_window_open %}
104 + <p class="fork-lede">Flat monthly pricing from ${{ tier_prices.basic_std }}/mo. 0% platform fee. Every tier is the complete platform.</p>
105 + {% else %}
106 + <p class="fork-lede">0% platform fee. Every tier is the complete platform.</p>
107 + {% endif %}
78 108 <div class="fork-actions">
79 109 <a class="btn-primary btn--large" href="/join">{% if founder_window_open %}Claim founder pricing{% else %}Join as a creator{% endif %}</a>
80 110 <a class="fork-secondary-link" href="/sandbox">Try the dashboard first</a>
@@ -82,47 +112,81 @@
82 112 </div>
83 113
84 114 <div class="fork-card">
85 - <h2 class="fork-heading">For fans</h2>
115 + <h2 class="fork-heading">Fan+</h2>
116 + <p class="fork-lede">Support the platform directly and get something back every month.</p>
86 117 <ul class="fork-list">
87 - <li><strong>Browse and buy</strong>: directly from creators, no middleman</li>
88 - <li><strong>No account required</strong> to browse or purchase</li>
89 - <li><strong>Fan+</strong>: $8/mo membership with $5 monthly credit</li>
90 - <li><strong>Every dollar counts</strong>: no platform cut means more goes to creators</li>
118 + <li><strong>$5 monthly credit</strong>: usable toward any purchase on the platform</li>
119 + <li><strong>+ badge</strong>: shown next to your name in social contexts</li>
120 + <li><strong>Platform polls and dev community</strong>: a say in what we build next</li>
91 121 </ul>
92 122 <div class="fork-actions">
93 - <a class="btn-primary btn--large" href="/discover">Browse creators</a>
94 - <a class="fork-secondary-link" href="/fan-plus">Learn about Fan+</a>
123 + <a class="btn-primary btn--large" href="/fan-plus">Sign up for Fan+</a>
124 + <span class="fork-secondary-link">$8/month. Cancel anytime.</span>
95 125 </div>
96 126 </div>
97 127 </div>
98 128
129 + <p class="landing-browse-cta">
130 + <a class="fork-secondary-link" href="/discover">Browse creators &rarr;</a>
131 + </p>
132 +
99 133 {% if total_creators > 0 || total_items > 0 %}
100 134 <p class="landing-stats-line">
101 135 <strong>{{ total_creators }}</strong> creator{% if total_creators != 1 %}s{% endif %} publishing <strong>{{ total_items }}</strong> item{% if total_items != 1 %}s{% endif %}.
102 136 </p>
103 137 {% endif %}
104 138
105 - <p class="landing-stats-line">
106 - <a href="/changelog">What's new</a>
107 - </p>
108 -
109 -
110 139 <div class="landing-principles">
111 - <h2 class="section-label">Why this exists</h2>
112 - <ul class="how-list">
113 - <li><strong>No investors, no ads</strong>: funded by subscriptions, not surveillance.</li>
114 - <li><strong>No tracking</strong>: no banners, no pixels, no sponsored placements.</li>
115 - <li><strong>Cheaper at scale</strong>: at $50k/mo, a 10% platform takes $5,000. We take a flat tier fee (${{ tier_prices.basic_std }}&ndash;${{ tier_prices.everything_std }}).</li>
116 - <li><strong>Built to last</strong>: no debt, no growth mandates, no reason to enshittify.</li>
140 + <h2 class="section-label">What we do differently</h2>
141 + <ul class="contrast-rail" aria-label="Common platform habits and how we differ">
142 + <li class="contrast-card">
143 + <h3 class="contrast-card-title">Track you</h3>
144 + <ul class="contrast-card-links">
145 + <li><a href="/docs/privacy-policy">No trackers</a></li>
146 + <li><a href="/docs/privacy-policy">No ads</a></li>
147 + <li><a href="/docs/privacy-policy">No data sales</a></li>
148 + </ul>
149 + </li>
150 + <li class="contrast-card">
151 + <h3 class="contrast-card-title">Lock you in</h3>
152 + <ul class="contrast-card-links">
153 + <li><a href="/docs/portability">Full export</a></li>
154 + <li><a href="/docs/account-lifecycle">Cancel anytime</a></li>
155 + <li><a href="/docs/export">Original files</a></li>
156 + </ul>
157 + </li>
158 + <li class="contrast-card">
159 + <h3 class="contrast-card-title">Take a cut</h3>
160 + <ul class="contrast-card-links">
161 + <li><a href="/docs/how-we-work">0% platform fee</a></li>
162 + <li><a href="/docs/economics">No surge pricing</a></li>
163 + <li><a href="/docs/economics">No paid acquisition</a></li>
164 + </ul>
165 + </li>
166 + <li class="contrast-card">
167 + <h3 class="contrast-card-title">Hide the code</h3>
168 + <ul class="contrast-card-links">
169 + <li><a href="/docs/open-source">Source available</a></li>
170 + <li><a href="/source">Read the commits</a></li>
171 + <li><a href="/docs/open-source">PolyForm-NC license</a></li>
172 + </ul>
173 + </li>
117 174 </ul>
118 - <a class="section-link" href="/docs/how-we-work">How the business model works</a>
119 175 </div>
120 176
121 - <div class="landing-use-cases">
122 - <p class="use-case-line">
123 - Musicians. Writers. Developers. Podcasters. Game devs. Educators. Comic creators.
124 - </p>
125 - <a class="section-link" href="/use-cases">All use cases</a>
177 + <div class="do-card do-card--wide">
178 + <h3 class="do-card-title">Built for</h3>
179 + <p class="do-card-lede">Every craft has its own setup. Pick yours for tier guidance and feature notes.</p>
180 + <ul class="do-card-links">
181 + <li><a href="/use-cases#musicians">Musicians</a></li>
182 + <li><a href="/use-cases#writers">Writers</a></li>
183 + <li><a href="/use-cases#podcasters">Podcasters</a></li>
184 + <li><a href="/use-cases#developers">Developers</a></li>
185 + <li><a href="/use-cases#game-devs">Game devs</a></li>
186 + <li><a href="/use-cases#educators">Educators</a></li>
187 + <li><a href="/use-cases#comic-creators">Comic creators</a></li>
188 + <li><a href="/use-cases">Explore all</a></li>
189 + </ul>
126 190 </div>
127 191
128 192 <div class="tier-section">
@@ -13,7 +13,7 @@
13 13 <div class="tier-section">
14 14 <h2 class="section-label">Available now</h2>
15 15 <div class="use-case-grid">
16 - <div class="use-case-card">
16 + <div class="use-case-card" id="musicians">
17 17 <div class="use-case-title">Musicians</div>
18 18 <div class="use-case-who">Bands, solo artists, producers</div>
19 19 <p class="use-case-desc">Sell albums, singles, and EPs with in-browser streaming, chapter markers, and cover art.</p>
@@ -27,7 +27,7 @@
27 27 <div class="use-case-tier">Small Files ${{ tier_prices.small_files_std }}/mo &middot; {{ tier_prices.small_files_total }}, {{ tier_prices.small_files_per_file }}/file</div>
28 28 </div>
29 29
30 - <div class="use-case-card">
30 + <div class="use-case-card" id="podcasters">
31 31 <div class="use-case-title">Podcasters</div>
32 32 <div class="use-case-who">Independent shows, networks</div>
33 33 <p class="use-case-desc">Host and distribute your podcast with full RSS support for every major directory.</p>
@@ -40,7 +40,7 @@
40 40 <div class="use-case-tier">Small Files ${{ tier_prices.small_files_std }}/mo &middot; {{ tier_prices.small_files_total }}, {{ tier_prices.small_files_per_file }}/file</div>
41 41 </div>
42 42
43 - <div class="use-case-card">
43 + <div class="use-case-card" id="writers">
44 44 <div class="use-case-title">Writers</div>
45 45 <div class="use-case-who">Bloggers, newsletter writers, authors</div>
46 46 <p class="use-case-desc">Publish long-form writing with Markdown, per-project blogs, and subscriber broadcasts.</p>
@@ -54,7 +54,7 @@
54 54 <div class="use-case-tier">Basic ${{ tier_prices.basic_std }}/mo &middot; {{ tier_prices.basic_total }}, {{ tier_prices.basic_per_file }}/file</div>
55 55 </div>
56 56
57 - <div class="use-case-card">
57 + <div class="use-case-card" id="developers">
58 58 <div class="use-case-title">Software Developers</div>
59 59 <div class="use-case-who">Indie devs, tool makers, plugin authors</div>
60 60 <p class="use-case-desc">Distribute software with versioned releases, license keys, and a built-in git browser.</p>
@@ -67,7 +67,7 @@
67 67 <div class="use-case-tier">Small Files ${{ tier_prices.small_files_std }}/mo &middot; {{ tier_prices.small_files_total }}, {{ tier_prices.small_files_per_file }}/file</div>
68 68 </div>
69 69
70 - <div class="use-case-card">
70 + <div class="use-case-card" id="sample-packs">
71 71 <div class="use-case-title">Sample Packs</div>
72 72 <div class="use-case-who">Sound designers, beat makers, foley artists</div>
73 73 <p class="use-case-desc">Sell sample packs and sound effects with audio previews and versioned downloads.</p>
@@ -81,7 +81,7 @@
81 81 <div class="use-case-tier">Small Files ${{ tier_prices.small_files_std }}/mo &middot; {{ tier_prices.small_files_total }}, {{ tier_prices.small_files_per_file }}/file</div>
82 82 </div>
83 83
84 - <div class="use-case-card">
84 + <div class="use-case-card" id="digital-art">
85 85 <div class="use-case-title">Digital Art &amp; Photography</div>
86 86 <div class="use-case-who">Illustrators, photographers, font designers</div>
87 87 <p class="use-case-desc">Sell digital art, photography, and fonts with versioned releases and subscription tiers.</p>
@@ -94,7 +94,7 @@
94 94 <div class="use-case-tier">Small Files ${{ tier_prices.small_files_std }}/mo &middot; {{ tier_prices.small_files_total }}, {{ tier_prices.small_files_per_file }}/file</div>
95 95 </div>
96 96
97 - <div class="use-case-card">
97 + <div class="use-case-card" id="educators">
98 98 <div class="use-case-title">Educators</div>
99 99 <div class="use-case-who">Course creators, tutors, workshop leaders</div>
100 100 <p class="use-case-desc">Publish courses and teaching materials with text content, downloads, and subscriptions.</p>
@@ -107,7 +107,7 @@
107 107 <div class="use-case-tier">Basic ${{ tier_prices.basic_std }}/mo or Small Files ${{ tier_prices.small_files_std }}/mo</div>
108 108 </div>
109 109
110 - <div class="use-case-card">
110 + <div class="use-case-card" id="game-devs">
111 111 <div class="use-case-title">Game Developers</div>
112 112 <div class="use-case-who">Indie games, mods, TTRPG content</div>
113 113 <p class="use-case-desc">Distribute games up to 20GB per file with versioned downloads, license keys, and promo codes. Need more than 20GB? Request a size increase from your dashboard.</p>
@@ -120,7 +120,7 @@
120 120 <div class="use-case-tier">Big Files ${{ tier_prices.big_files_std }}/mo &middot; {{ tier_prices.big_files_total }}, {{ tier_prices.big_files_per_file }}/file</div>
121 121 </div>
122 122
123 - <div class="use-case-card">
123 + <div class="use-case-card" id="comic-creators">
124 124 <div class="use-case-title">Comic Creators</div>
125 125 <div class="use-case-who">Webcomic artists, graphic novelists</div>
126 126 <p class="use-case-desc">Sell digital comics and graphic novels with project organization and scheduled publishing.</p>