max / makenotwork
73 files changed,
+0 insertions,
-11712 deletions
| @@ -1,191 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Content — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Guide</nav> | |
| 14 | - | <h1>Content<span class="dot">.</span></h1> | |
| 15 | - | <p>Creating, uploading, and managing content on the platform.</p> | |
| 16 | - | <h2 id="choosing-what-to-create">Choosing What to Create</h2> | |
| 17 | - | <p>What are you making, and how should fans experience it?</p> | |
| 18 | - | <table> | |
| 19 | - | <thead> | |
| 20 | - | <tr> | |
| 21 | - | <th>If you’re making…</th> | |
| 22 | - | <th>Use this</th> | |
| 23 | - | <th>Why</th> | |
| 24 | - | </tr> | |
| 25 | - | </thead> | |
| 26 | - | <tbody> | |
| 27 | - | <tr> | |
| 28 | - | <td>An album or EP</td> | |
| 29 | - | <td>Audio items in a project</td> | |
| 30 | - | <td>In-browser player, cover art, track ordering</td> | |
| 31 | - | </tr> | |
| 32 | - | <tr> | |
| 33 | - | <td>A podcast</td> | |
| 34 | - | <td>Audio items with chapters</td> | |
| 35 | - | <td>RSS-compatible, timestamp navigation</td> | |
| 36 | - | </tr> | |
| 37 | - | <tr> | |
| 38 | - | <td>A novel or essay collection</td> | |
| 39 | - | <td>Text items in a project</td> | |
| 40 | - | <td>Markdown editor, clean reading view</td> | |
| 41 | - | </tr> | |
| 42 | - | <tr> | |
| 43 | - | <td>A newsletter</td> | |
| 44 | - | <td>Blog posts</td> | |
| 45 | - | <td>Free, included in RSS, separate from paid items</td> | |
| 46 | - | </tr> | |
| 47 | - | <tr> | |
| 48 | - | <td>Software or plugins</td> | |
| 49 | - | <td>Digital items with versioning</td> | |
| 50 | - | <td>Upload new versions, license key support</td> | |
| 51 | - | </tr> | |
| 52 | - | <tr> | |
| 53 | - | <td>Sample packs or presets</td> | |
| 54 | - | <td>Digital items</td> | |
| 55 | - | <td>Any file format, download tracking</td> | |
| 56 | - | </tr> | |
| 57 | - | <tr> | |
| 58 | - | <td>A course</td> | |
| 59 | - | <td>Mixed item types in a project</td> | |
| 60 | - | <td>Combine text lessons, audio, and downloads</td> | |
| 61 | - | </tr> | |
| 62 | - | </tbody> | |
| 63 | - | </table> | |
| 64 | - | <p>The type determines which player/viewer fans get and which features | |
| 65 | - | are available (chapters, versioning, license keys).</p> | |
| 66 | - | <h2 id="items">Items</h2> | |
| 67 | - | <p>Eleven item types are available (Audio, Text, Digital, Video, Image, | |
| 68 | - | Plugin, Preset, Sample, Course, Template, Bundle). See <a | |
| 69 | - | href="./items.html">Items</a> for the full type matrix with | |
| 70 | - | player/viewer support, chapters, and versioning.</p> | |
| 71 | - | <p>Choose the type when creating the item. It cannot be changed | |
| 72 | - | afterward.</p> | |
| 73 | - | <h3 id="creating-an-item">Creating an Item</h3> | |
| 74 | - | <ol type="1"> | |
| 75 | - | <li>Navigate to your project</li> | |
| 76 | - | <li>Click <strong>New Item</strong></li> | |
| 77 | - | <li>Set a <strong>title</strong> and <strong>item type</strong></li> | |
| 78 | - | <li>Optionally set a price (defaults to free)</li> | |
| 79 | - | </ol> | |
| 80 | - | <h3 id="editing-an-item">Editing an Item</h3> | |
| 81 | - | <p>From the item settings, you can update:</p> | |
| 82 | - | <ul> | |
| 83 | - | <li><strong>Title</strong>: Display name</li> | |
| 84 | - | <li><strong>Description</strong>: Shown on the item page (supports | |
| 85 | - | markdown)</li> | |
| 86 | - | <li><strong>Price</strong>: Free, fixed amount, or pay-what-you-want | |
| 87 | - | (see <a href="./03-selling.html#pricing-models">Pricing</a>)</li> | |
| 88 | - | <li><strong>Tags</strong>: Hierarchical tags for discovery</li> | |
| 89 | - | <li><strong>Cover image</strong>: Displayed on the item card and in | |
| 90 | - | social previews</li> | |
| 91 | - | </ul> | |
| 92 | - | <h3 id="publishing">Publishing</h3> | |
| 93 | - | <p>Items start as drafts. To publish:</p> | |
| 94 | - | <ol type="1"> | |
| 95 | - | <li>Edit the item and switch on <strong>Public</strong></li> | |
| 96 | - | <li>Make sure the parent project is also public</li> | |
| 97 | - | </ol> | |
| 98 | - | <p>Published items appear on your profile, in search results, and in RSS | |
| 99 | - | feeds.</p> | |
| 100 | - | <h3 id="scheduling">Scheduling</h3> | |
| 101 | - | <p>Set a future publish date to schedule content releases. The item | |
| 102 | - | becomes visible automatically at the scheduled time.</p> | |
| 103 | - | <h3 id="bulk-operations">Bulk Operations</h3> | |
| 104 | - | <p>From the project dashboard, you can publish, unpublish, or delete | |
| 105 | - | multiple items at once.</p> | |
| 106 | - | <h3 id="duplicating-an-item">Duplicating an Item</h3> | |
| 107 | - | <p>Duplicate an item to create a copy with the same settings and | |
| 108 | - | metadata. Content (files, text) is not duplicated, only metadata.</p> | |
| 109 | - | <h3 id="deleting-an-item">Deleting an Item</h3> | |
| 110 | - | <p>Deleting an item removes it permanently. Fans lose access, and active | |
| 111 | - | download codes and license keys are invalidated.</p> | |
| 112 | - | <h2 id="content-types">Content Types</h2> | |
| 113 | - | <h3 id="audio">Audio</h3> | |
| 114 | - | <p>Upload in MP3, WAV, FLAC, OGG, AAC, or AIFF format. Each audio item | |
| 115 | - | gets an in-browser player, cover image, chapter markers, and | |
| 116 | - | original-file downloads after purchase.</p> | |
| 117 | - | <p>Per-file size limits depend on your <a href="./pricing.html">pricing | |
| 118 | - | tier</a> (10MB for Basic, 500MB for Small Files, 20GB for Big Files and | |
| 119 | - | Everything).</p> | |
| 120 | - | <p>Metadata (title, artist, track number, genre, cover art) is | |
| 121 | - | auto-extracted from uploaded files. See <a | |
| 122 | - | href="./metadata.html">Metadata & SEO</a>.</p> | |
| 123 | - | <h3 id="text">Text</h3> | |
| 124 | - | <p>Write directly in the editor using markdown. Live preview, automatic | |
| 125 | - | word count and reading time, full markdown support (headers, lists, code | |
| 126 | - | blocks, links, images, tables). Fans read it without ads, | |
| 127 | - | recommendations, or sidebars.</p> | |
| 128 | - | <h3 id="digital-downloads">Digital Downloads</h3> | |
| 129 | - | <p>Upload any file type (ZIP, DMG, EXE, PDF, images, fonts). Digital | |
| 130 | - | items support versioned releases with changelogs, per-version download | |
| 131 | - | tracking, and auto-generated license keys for software products.</p> | |
| 132 | - | <h3 id="blog-posts">Blog Posts</h3> | |
| 133 | - | <p>Every project includes a blog using the same markdown editor as text | |
| 134 | - | items. Posts have draft/publish workflow, appear in the project’s RSS | |
| 135 | - | feed and data exports, and live in their own tab separate from items. | |
| 136 | - | Blog posts are always free. Use them for updates, announcements, liner | |
| 137 | - | notes, or changelogs.</p> | |
| 138 | - | <h2 id="versions--chapters">Versions & Chapters</h2> | |
| 139 | - | <p>Digital and audio items support <strong>versioned releases</strong> | |
| 140 | - | with changelogs and download tracking. Audio items also support | |
| 141 | - | <strong>chapters</strong> (timestamp markers for in-track navigation). | |
| 142 | - | See <a href="./items.html">Items</a> for full details on both | |
| 143 | - | features.</p> | |
| 144 | - | <h2 id="organizing-your-content">Organizing Your Content</h2> | |
| 145 | - | <h3 id="three-layers">Three Layers</h3> | |
| 146 | - | <ol type="1"> | |
| 147 | - | <li><strong>Profile</strong> (<code>/u/you</code>): Your public page, | |
| 148 | - | shows all your projects</li> | |
| 149 | - | <li><strong>Projects</strong> (<code>/p/project-name</code>): Albums, | |
| 150 | - | series, collections</li> | |
| 151 | - | <li><strong>Items</strong> (<code>/i/uuid</code>): Individual tracks, | |
| 152 | - | files, posts</li> | |
| 153 | - | </ol> | |
| 154 | - | <h3 id="tags-vs-projects">Tags vs Projects</h3> | |
| 155 | - | <table> | |
| 156 | - | <thead> | |
| 157 | - | <tr> | |
| 158 | - | <th>Use Tags For</th> | |
| 159 | - | <th>Use Projects For</th> | |
| 160 | - | </tr> | |
| 161 | - | </thead> | |
| 162 | - | <tbody> | |
| 163 | - | <tr> | |
| 164 | - | <td>Genre, mood, style</td> | |
| 165 | - | <td>Albums, series</td> | |
| 166 | - | </tr> | |
| 167 | - | <tr> | |
| 168 | - | <td>Cross-cutting attributes</td> | |
| 169 | - | <td>Sequential content</td> | |
| 170 | - | </tr> | |
| 171 | - | <tr> | |
| 172 | - | <td>Search and filtering</td> | |
| 173 | - | <td>Direct navigation</td> | |
| 174 | - | </tr> | |
| 175 | - | <tr> | |
| 176 | - | <td>Multiple per item</td> | |
| 177 | - | <td>One per item</td> | |
| 178 | - | </tr> | |
| 179 | - | </tbody> | |
| 180 | - | </table> | |
| 181 | - | <p>An item belongs to one project but can have many tags. See <a | |
| 182 | - | href="./tags.html">Tagging System</a> for the full specification.</p> | |
| 183 | - | <h3 id="featured-content">Featured Content</h3> | |
| 184 | - | <p>Pin items or projects to your profile page. Rearrange pinned content | |
| 185 | - | by dragging.</p> | |
| 186 | - | <h3 id="hide">Hide</h3> | |
| 187 | - | <p>Hide old content without deleting. Hidden items don’t appear in | |
| 188 | - | search, but direct links still work. Unhide anytime.</p> | |
| 189 | - | </article> | |
| 190 | - | </body> | |
| 191 | - | </html> |
| @@ -1,123 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Selling & Pricing — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Guide</nav> | |
| 14 | - | <h1>Selling & Pricing<span class="dot">.</span></h1> | |
| 15 | - | <p>Set prices, manage purchases, and get paid.</p> | |
| 16 | - | <h2 id="pricing-models">Pricing Models</h2> | |
| 17 | - | <p>Three models per item: <strong>free</strong>, <strong>fixed | |
| 18 | - | price</strong>, and <strong>pay-what-you-want</strong> (with optional | |
| 19 | - | minimum). Set prices when creating or editing an item. See <a | |
| 20 | - | href="./pricing.html">Pricing</a> for guidance on choosing a model.</p> | |
| 21 | - | <h2 id="membership-tiers">Membership Tiers</h2> | |
| 22 | - | <p>Offer recurring monthly memberships per project:</p> | |
| 23 | - | <ul> | |
| 24 | - | <li>Create multiple tiers with different prices</li> | |
| 25 | - | <li>Toggle tiers active/inactive without deleting them</li> | |
| 26 | - | <li>Fans join through the payment checkout</li> | |
| 27 | - | <li>The payment processor handles billing, renewals, and | |
| 28 | - | cancellations</li> | |
| 29 | - | </ul> | |
| 30 | - | <p>Membership status changes (active, past due, canceled, renewed) sync | |
| 31 | - | via webhooks and update your dashboard automatically.</p> | |
| 32 | - | <h2 id="license-keys">License Keys</h2> | |
| 33 | - | <p>For software products, license keys are generated automatically on | |
| 34 | - | purchase:</p> | |
| 35 | - | <ul> | |
| 36 | - | <li><strong>Configurable activation limits</strong>: Set how many | |
| 37 | - | machines can activate a key</li> | |
| 38 | - | <li><strong>Machine tracking</strong>: See which machines have | |
| 39 | - | activated</li> | |
| 40 | - | <li><strong>Public validation endpoint</strong>: Your software can | |
| 41 | - | verify keys against the server</li> | |
| 42 | - | <li><strong>Revocable</strong>: Deactivate keys if needed</li> | |
| 43 | - | </ul> | |
| 44 | - | <p>License keys appear in the fan’s library after purchase.</p> | |
| 45 | - | <h2 id="promo-codes">Promo Codes</h2> | |
| 46 | - | <p>Create promotional codes for discounts, free trials, and free | |
| 47 | - | access:</p> | |
| 48 | - | <ul> | |
| 49 | - | <li><strong>Percentage or fixed amount</strong> off the price</li> | |
| 50 | - | <li><strong>Free trial</strong> periods for memberships</li> | |
| 51 | - | <li><strong>Free access</strong> grants for individual items</li> | |
| 52 | - | <li><strong>Scope</strong>: Apply to a specific item, project, or all | |
| 53 | - | your items</li> | |
| 54 | - | <li><strong>Usage limits</strong>: Cap how many times a code can be | |
| 55 | - | used</li> | |
| 56 | - | <li><strong>Expiration dates</strong>: Codes stop working after a date | |
| 57 | - | you set</li> | |
| 58 | - | <li><strong>Auto-apply via URL</strong>: Share a link with | |
| 59 | - | <code>?discount=CODE</code> to pre-fill the code</li> | |
| 60 | - | </ul> | |
| 61 | - | <h2 id="download-codes">Download Codes</h2> | |
| 62 | - | <p>Generate single-use codes for free access:</p> | |
| 63 | - | <ul> | |
| 64 | - | <li><strong>Batch generation</strong>: Create many codes at once</li> | |
| 65 | - | <li><strong>Optional max uses</strong>: Limit how many times each code | |
| 66 | - | works</li> | |
| 67 | - | <li><strong>Optional expiration</strong>: Codes expire after a date</li> | |
| 68 | - | <li><strong>Useful for</strong>: Press copies, review access, | |
| 69 | - | promotional giveaways</li> | |
| 70 | - | </ul> | |
| 71 | - | <h2 id="guest-checkout">Guest Checkout</h2> | |
| 72 | - | <p>Fans can purchase without creating an account:</p> | |
| 73 | - | <ol type="1"> | |
| 74 | - | <li>Fan clicks “Buy Now” on your item page, embed, or direct purchase | |
| 75 | - | link</li> | |
| 76 | - | <li>Stripe checkout collects their email and payment</li> | |
| 77 | - | <li>Fan receives a download link via email immediately</li> | |
| 78 | - | <li>They can create an account later to manage all purchases in one | |
| 79 | - | place</li> | |
| 80 | - | </ol> | |
| 81 | - | <p>Fans who buy first and create accounts later have all purchases | |
| 82 | - | automatically attached. Guest checkout is the default for logged-out | |
| 83 | - | visitors.</p> | |
| 84 | - | <h2 id="direct-purchase-links">Direct Purchase Links</h2> | |
| 85 | - | <p>Every item has a dedicated purchase page at | |
| 86 | - | <code>/buy/{item_id}</code>: a clean page with cover art, title, price, | |
| 87 | - | and a “Buy Now” button. Use it for link-in-bio, social media posts, | |
| 88 | - | email newsletters, and QR codes on physical media. Fans purchase in one | |
| 89 | - | step.</p> | |
| 90 | - | <h2 id="payment-flow">Payment Flow</h2> | |
| 91 | - | <p>All payments go through the payment processor:</p> | |
| 92 | - | <pre><code>Fan pays → Payment processor → Creator's connected account</code></pre> | |
| 93 | - | <p>We take 0% platform fee. Only the payment processing fee (~3% + $0.30 | |
| 94 | - | per transaction) applies. See <a | |
| 95 | - | href="./tiers.html#understanding-stripes-per-transaction-fee">Pricing | |
| 96 | - | Tiers</a> for how this affects small transactions.</p> | |
| 97 | - | <h2 id="refunds">Refunds</h2> | |
| 98 | - | <p>You set your own refund policy. You process refunds directly through | |
| 99 | - | your <a href="https://dashboard.stripe.com">Stripe dashboard</a>. See <a | |
| 100 | - | href="./payouts.html#refunds">Payouts</a> for details.</p> | |
| 101 | - | <h2 id="notifications">Notifications</h2> | |
| 102 | - | <p>Email notifications for sales and account events, each individually | |
| 103 | - | toggleable in account settings: sales, new followers, tips, new releases | |
| 104 | - | from followed creators, and new device logins.</p> | |
| 105 | - | <h2 id="data-export">Data Export</h2> | |
| 106 | - | <p>Export all your data at any time. No limits on frequency. See <a | |
| 107 | - | href="./export.html">Data Export</a> for formats and details.</p> | |
| 108 | - | <h2 id="see-also">See Also</h2> | |
| 109 | - | <ul> | |
| 110 | - | <li><a href="./pricing.html">Pricing</a>: Detailed pricing model | |
| 111 | - | guidance</li> | |
| 112 | - | <li><a href="./payouts.html">Receiving Payouts</a>: How and when you get | |
| 113 | - | paid</li> | |
| 114 | - | <li><a href="./analytics.html">Analytics & Dashboard</a>: Revenue | |
| 115 | - | tracking and stats</li> | |
| 116 | - | <li><a href="./best-practices.html">Best Practices</a>: Pricing strategy | |
| 117 | - | and audience building</li> | |
| 118 | - | <li><a href="./fan-guide.html">Fan Guide</a>: The fan perspective on | |
| 119 | - | purchasing</li> | |
| 120 | - | </ul> | |
| 121 | - | </article> | |
| 122 | - | </body> | |
| 123 | - | </html> |
| @@ -1,161 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Acceptable Use Policy — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Legal</nav> | |
| 14 | - | <h1>Acceptable Use Policy<span class="dot">.</span></h1> | |
| 15 | - | <p>What you can and cannot do on Makenot.work.</p> | |
| 16 | - | <hr /> | |
| 17 | - | <h2 id="the-short-version">The Short Version</h2> | |
| 18 | - | <p>Create and share your work. Respect others. Don’t break the law.</p> | |
| 19 | - | <hr /> | |
| 20 | - | <h2 id="whats-allowed">What’s Allowed</h2> | |
| 21 | - | <p>Makenot.work is for creators sharing original work with their fans. | |
| 22 | - | You can:</p> | |
| 23 | - | <ul> | |
| 24 | - | <li>Upload and distribute your original content</li> | |
| 25 | - | <li>Sell access to your work</li> | |
| 26 | - | <li>Build a paying audience</li> | |
| 27 | - | <li>Use creative tools and customization features</li> | |
| 28 | - | <li>Export your data anytime</li> | |
| 29 | - | <li>Include sponsorships and affiliate links in your content</li> | |
| 30 | - | </ul> | |
| 31 | - | <p>We support a wide range of creative expression, including work that’s | |
| 32 | - | controversial, challenging, or provocative.</p> | |
| 33 | - | <h3 id="sponsorships-and-endorsements">Sponsorships and | |
| 34 | - | Endorsements</h3> | |
| 35 | - | <p>Creators are free to include sponsored segments, affiliate links, and | |
| 36 | - | paid endorsements in their content. Sponsored content must be clearly | |
| 37 | - | labeled as advertising, and creators must comply with all applicable | |
| 38 | - | disclosure laws (including FTC guidelines, GDPR, and equivalent | |
| 39 | - | regulations in their jurisdiction). We strongly encourage creators to | |
| 40 | - | only recommend products they’ve personally used and are qualified to | |
| 41 | - | evaluate. Your audience trusts you. Treat that trust as the asset it | |
| 42 | - | is.</p> | |
| 43 | - | <p>Undisclosed paid advertisement is a serious moderation issue. | |
| 44 | - | Presenting sponsored content as organic recommendation undermines fan | |
| 45 | - | trust across the entire platform.</p> | |
| 46 | - | <hr /> | |
| 47 | - | <h2 id="whats-not-allowed">What’s Not Allowed</h2> | |
| 48 | - | <h3 id="content-that-harms-people">Content That Harms People</h3> | |
| 49 | - | <ul> | |
| 50 | - | <li><strong>Dehumanization</strong> - Content that treats people as less | |
| 51 | - | than human based on identity</li> | |
| 52 | - | <li><strong>Harassment</strong> - Targeted abuse, threats, or | |
| 53 | - | intimidation of individuals</li> | |
| 54 | - | <li><strong>Incitement to violence</strong> - Content encouraging | |
| 55 | - | real-world harm</li> | |
| 56 | - | <li><strong>Doxxing</strong> - Publishing private information to enable | |
| 57 | - | harassment</li> | |
| 58 | - | <li><strong>CSAM</strong> - Any sexual content involving minors | |
| 59 | - | (immediate removal, law enforcement referral)</li> | |
| 60 | - | </ul> | |
| 61 | - | <h3 id="content-that-harms-the-platform">Content That Harms the | |
| 62 | - | Platform</h3> | |
| 63 | - | <ul> | |
| 64 | - | <li><strong>Spam</strong> - Automated posting, fake engagement, or | |
| 65 | - | promotional flooding</li> | |
| 66 | - | <li><strong>Fraud</strong> - Scams, deceptive schemes, or financial | |
| 67 | - | manipulation, including misrepresenting your <a | |
| 68 | - | href="./generative-ai.html">generative AI tier</a> (e.g., claiming | |
| 69 | - | Handmade when generative AI was used)</li> | |
| 70 | - | <li><strong>Impersonation</strong> - Pretending to be someone else to | |
| 71 | - | deceive</li> | |
| 72 | - | <li><strong>Malware and harmful software</strong> - Including but not | |
| 73 | - | limited to: | |
| 74 | - | <ul> | |
| 75 | - | <li>Uploading software that contains malware, spyware, or backdoors</li> | |
| 76 | - | <li>Uploading software that misrepresents its functionality</li> | |
| 77 | - | <li>Distributing cracked, pirated, or license-circumventing | |
| 78 | - | software</li> | |
| 79 | - | <li>New uploads from unestablished accounts may be held for review</li> | |
| 80 | - | </ul></li> | |
| 81 | - | </ul> | |
| 82 | - | <h3 id="content-we-dont-host">Content We Don’t Host</h3> | |
| 83 | - | <ul> | |
| 84 | - | <li><strong>Adult/NSFW content</strong> - Not permitted on Makenot.work. | |
| 85 | - | We intend to launch a separate platform for adult creators with | |
| 86 | - | identical commitments when infrastructure is ready</li> | |
| 87 | - | <li><strong>Illegal content</strong> - Content that violates applicable | |
| 88 | - | law</li> | |
| 89 | - | </ul> | |
| 90 | - | <hr /> | |
| 91 | - | <h2 id="context-matters">Context Matters</h2> | |
| 92 | - | <p>We evaluate content in context. Satire, critique, historical | |
| 93 | - | documentation, and artistic exploration are considered when reviewing | |
| 94 | - | reported content. A documentary about hate groups isn’t the same as hate | |
| 95 | - | group recruitment. We look at intent and effect, not surface | |
| 96 | - | content.</p> | |
| 97 | - | <hr /> | |
| 98 | - | <h2 id="higher-standards-for-discussing-marginalized-groups">Higher | |
| 99 | - | Standards for Discussing Marginalized Groups</h2> | |
| 100 | - | <p>Content discussing marginalized groups is held to a higher standard. | |
| 101 | - | The reason is not that these groups are fragile; it is that platforms | |
| 102 | - | have historically amplified harm against them. The same words carry | |
| 103 | - | different weight depending on historical context and power dynamics.</p> | |
| 104 | - | <hr /> | |
| 105 | - | <h2 id="account-behavior">Account Behavior</h2> | |
| 106 | - | <p>Beyond content, we expect users to:</p> | |
| 107 | - | <ul> | |
| 108 | - | <li><strong>Use one account</strong> - No sockpuppets or ban | |
| 109 | - | evasion</li> | |
| 110 | - | <li><strong>Respect rate limits</strong> - No automated abuse of | |
| 111 | - | platform features</li> | |
| 112 | - | <li><strong>Honor content licenses</strong> - Don’t redistribute others’ | |
| 113 | - | paid content</li> | |
| 114 | - | <li><strong>Engage honestly</strong> - No fake reviews, inflated | |
| 115 | - | metrics, or deceptive practices</li> | |
| 116 | - | </ul> | |
| 117 | - | <hr /> | |
| 118 | - | <h2 id="consequences">Consequences</h2> | |
| 119 | - | <p>Violations result in action proportional to severity:</p> | |
| 120 | - | <ul> | |
| 121 | - | <li>Minor first-time issues: Direct message explaining the issue</li> | |
| 122 | - | <li>Repeated or moderate issues: Content removal, temporary | |
| 123 | - | restrictions</li> | |
| 124 | - | <li>Serious or repeated violations: Account suspension or | |
| 125 | - | termination</li> | |
| 126 | - | </ul> | |
| 127 | - | <p>See <a href="./moderation.html">Content Moderation & | |
| 128 | - | Enforcement</a> for details.</p> | |
| 129 | - | <p>You can appeal any action. See <a href="./appeals.html">Appeal | |
| 130 | - | Process</a>.</p> | |
| 131 | - | <hr /> | |
| 132 | - | <h2 id="reporting-violations">Reporting Violations</h2> | |
| 133 | - | <p><strong>Email:</strong> <a | |
| 134 | - | href="mailto:reports@makenot.work">reports@makenot.work</a></p> | |
| 135 | - | <p>Include:</p> | |
| 136 | - | <ul> | |
| 137 | - | <li>Link to the content</li> | |
| 138 | - | <li>Which policy you believe is violated</li> | |
| 139 | - | <li>Any relevant context</li> | |
| 140 | - | </ul> | |
| 141 | - | <p>We review all reports. We don’t disclose reporter identities to the | |
| 142 | - | reported user.</p> | |
| 143 | - | <hr /> | |
| 144 | - | <h2 id="see-also">See Also</h2> | |
| 145 | - | <ul> | |
| 146 | - | <li><a href="./generative-ai.html">Generative AI Policy</a>: AI tier | |
| 147 | - | definitions and disclosure requirements</li> | |
| 148 | - | <li><a href="./terms-of-service.html">Terms of Service</a>: Full legal | |
| 149 | - | terms</li> | |
| 150 | - | <li><a href="./privacy-policy.html">Privacy Policy</a>: Data collection | |
| 151 | - | and handling</li> | |
| 152 | - | <li><a href="./faq.html">FAQ</a>: Content policy questions</li> | |
| 153 | - | <li><a href="./moderation.html">Content Moderation & | |
| 154 | - | Enforcement</a>: How we moderate and what happens when rules are | |
| 155 | - | broken</li> | |
| 156 | - | <li><a href="./appeals.html">Appeal Process</a>: Disputing | |
| 157 | - | decisions</li> | |
| 158 | - | </ul> | |
| 159 | - | </article> | |
| 160 | - | </body> | |
| 161 | - | </html> |
| @@ -1,80 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Account Deactivation and Deletion — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Guide</nav> | |
| 14 | - | <h1>Account Deactivation and Deletion<span class="dot">.</span></h1> | |
| 15 | - | <p>Two ways to step away: deactivation (temporary, reversible) and | |
| 16 | - | deletion (permanent).</p> | |
| 17 | - | <h2 id="deactivation">Deactivation</h2> | |
| 18 | - | <p>Deactivating hides your profile, projects, and items from public view | |
| 19 | - | (Discover, search, feeds). Content is preserved, not deleted. You can’t | |
| 20 | - | perform creator actions while deactivated.</p> | |
| 21 | - | <p><strong>To deactivate:</strong></p> | |
| 22 | - | <p>Go to Settings and click “Deactivate Account.”</p> | |
| 23 | - | <p><strong>To reactivate:</strong></p> | |
| 24 | - | <p>Log in and click “Reactivate Account.” Everything comes back exactly | |
| 25 | - | as it was. No time limit on how long you can stay deactivated.</p> | |
| 26 | - | <h2 id="deletion">Deletion</h2> | |
| 27 | - | <p>Deleting your account is permanent and cannot be undone.</p> | |
| 28 | - | <p><strong>What happens:</strong></p> | |
| 29 | - | <ul> | |
| 30 | - | <li>Account, profile, projects, and items are removed</li> | |
| 31 | - | <li>If you have completed sales, content stays accessible to buyers for | |
| 32 | - | 90 days (<a href="./guarantees.html">buyer access guarantee</a>)</li> | |
| 33 | - | <li>All buyers are notified by email</li> | |
| 34 | - | <li>After 90 days, content is removed from our servers</li> | |
| 35 | - | <li>Transaction records and receipts are preserved indefinitely (tax and | |
| 36 | - | legal purposes)</li> | |
| 37 | - | </ul> | |
| 38 | - | <p><strong>To delete:</strong></p> | |
| 39 | - | <ol type="1"> | |
| 40 | - | <li>Go to Settings and click “Delete Account”</li> | |
| 41 | - | <li>An email confirmation link is sent to your registered email</li> | |
| 42 | - | <li>Click the link to open the confirmation page</li> | |
| 43 | - | <li>Confirm deletion on the page (this two-step process prevents | |
| 44 | - | accidental deletion from email link prefetch)</li> | |
| 45 | - | </ol> | |
| 46 | - | <p>The email link is time-limited and signed. If it expires, request a | |
| 47 | - | new one.</p> | |
| 48 | - | <p><strong>If you’re a creator with no sales</strong>, deletion is | |
| 49 | - | immediate.</p> | |
| 50 | - | <h2 id="before-you-delete">Before You Delete</h2> | |
| 51 | - | <ul> | |
| 52 | - | <li><strong>Export your data</strong> first: Settings > Data Export. | |
| 53 | - | See the <a href="./export.html">Export guide</a>.</li> | |
| 54 | - | <li><strong>Cancel your creator tier fee separately</strong>: deletion | |
| 55 | - | does not automatically cancel Stripe billing. (If you forget, contact | |
| 56 | - | support.)</li> | |
| 57 | - | <li><strong>Download your files</strong>: once content is removed, it’s | |
| 58 | - | gone.</li> | |
| 59 | - | </ul> | |
| 60 | - | <h2 id="what-buyers-should-know">What Buyers Should Know</h2> | |
| 61 | - | <p>If a creator you purchased from deletes their account:</p> | |
| 62 | - | <ul> | |
| 63 | - | <li>You receive an email notification</li> | |
| 64 | - | <li>Your purchased content remains accessible for 90 days</li> | |
| 65 | - | <li>Download everything during this window</li> | |
| 66 | - | <li>Transaction records and receipts stay on your account | |
| 67 | - | permanently</li> | |
| 68 | - | </ul> | |
| 69 | - | <h2 id="see-also">See Also</h2> | |
| 70 | - | <ul> | |
| 71 | - | <li><a href="./export.html">Data Export</a>: Download your data before | |
| 72 | - | leaving</li> | |
| 73 | - | <li><a href="./guarantees.html">Guarantees</a>: Buyer access and | |
| 74 | - | shutdown commitments</li> | |
| 75 | - | <li><a href="./privacy-policy.html">Privacy Policy</a>: Data retention | |
| 76 | - | details</li> | |
| 77 | - | </ul> | |
| 78 | - | </article> | |
| 79 | - | </body> | |
| 80 | - | </html> |
| @@ -1,121 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Analytics & Dashboard — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Guide</nav> | |
| 14 | - | <h1>Analytics & Dashboard<span class="dot">.</span></h1> | |
| 15 | - | <p>Your dashboard at <code>/dashboard</code> shows your projects, | |
| 16 | - | content, revenue, and follower count.</p> | |
| 17 | - | <h2 id="earnings-overview">Earnings Overview</h2> | |
| 18 | - | <p>Three stat cards at the top:</p> | |
| 19 | - | <ul> | |
| 20 | - | <li><strong>Revenue</strong>: Total earnings for the selected period, | |
| 21 | - | with percentage change vs. the prior period</li> | |
| 22 | - | <li><strong>Sales</strong>: Transaction count for the selected | |
| 23 | - | period</li> | |
| 24 | - | <li><strong>Followers</strong>: Current follower count with change over | |
| 25 | - | the period</li> | |
| 26 | - | </ul> | |
| 27 | - | <p>Time range selector: 7 days, 30 days, 90 days, all-time.</p> | |
| 28 | - | <blockquote> | |
| 29 | - | <p>[!UI] dashboard-stat-cards</p> | |
| 30 | - | </blockquote> | |
| 31 | - | <h3 id="reading-the-numbers">Reading the Numbers</h3> | |
| 32 | - | <p><strong>Revenue up, sales flat:</strong> Average transaction value | |
| 33 | - | increased (higher-priced items or above-minimum PWYW).</p> | |
| 34 | - | <p><strong>Revenue flat, sales up:</strong> More transactions at lower | |
| 35 | - | values. Check whether a free item is driving traffic.</p> | |
| 36 | - | <p><strong>Revenue down:</strong> Check per-project analytics to see | |
| 37 | - | which project’s sales dropped.</p> | |
| 38 | - | <p><strong>Followers increasing:</strong> Check what you published or | |
| 39 | - | shared recently – that’s what’s working.</p> | |
| 40 | - | <h2 id="revenue-chart">Revenue Chart</h2> | |
| 41 | - | <p>Bar chart showing revenue over time, bucketed by day, week, or month | |
| 42 | - | depending on your selected range. Available at the dashboard level (all | |
| 43 | - | projects combined) and per-project.</p> | |
| 44 | - | <h2 id="per-project-analytics">Per-Project Analytics</h2> | |
| 45 | - | <p>Each project has its own analytics tab showing:</p> | |
| 46 | - | <ul> | |
| 47 | - | <li>Revenue and sales stat cards (same format as the dashboard)</li> | |
| 48 | - | <li>Revenue chart scoped to that project</li> | |
| 49 | - | <li>Top items by revenue</li> | |
| 50 | - | </ul> | |
| 51 | - | <p>If one project consistently outperforms others, that’s signal.</p> | |
| 52 | - | <h2 id="transaction-history">Transaction History</h2> | |
| 53 | - | <p>Searchable list of all transactions:</p> | |
| 54 | - | <ul> | |
| 55 | - | <li>Date and time</li> | |
| 56 | - | <li>Fan (anonymized or named, based on their preference)</li> | |
| 57 | - | <li>Item purchased</li> | |
| 58 | - | <li>Amount paid</li> | |
| 59 | - | <li>Status (completed, refunded)</li> | |
| 60 | - | </ul> | |
| 61 | - | <p>Export to CSV for your records or for import into accounting | |
| 62 | - | software.</p> | |
| 63 | - | <h2 id="per-item-stats">Per-Item Stats</h2> | |
| 64 | - | <p>Each item tracks:</p> | |
| 65 | - | <ul> | |
| 66 | - | <li><strong>Play count</strong>: total streams or views</li> | |
| 67 | - | <li><strong>Download count</strong>: total file downloads</li> | |
| 68 | - | </ul> | |
| 69 | - | <p>High plays with low purchases might mean the price isn’t right, or | |
| 70 | - | that the item works better as a free gateway to paid content.</p> | |
| 71 | - | <h2 id="data-exports">Data Exports</h2> | |
| 72 | - | <ul> | |
| 73 | - | <li><strong>Project data</strong>: Export as JSON from the dashboard. | |
| 74 | - | Includes items, sales counts, chapters, versions, and license keys.</li> | |
| 75 | - | <li><strong>Transaction history</strong>: Export as CSV.</li> | |
| 76 | - | <li><strong>Contact list</strong>: Fans who opted in to share their | |
| 77 | - | email. See <a href="./contact-sharing.html">Contact Sharing</a>.</li> | |
| 78 | - | </ul> | |
| 79 | - | <h2 id="payouts">Payouts</h2> | |
| 80 | - | <p>Payout details (pending transfers, completed payouts, schedule) are | |
| 81 | - | managed in your payment processor’s dashboard, linked from your | |
| 82 | - | dashboard. See <a href="./payouts.html">Receiving Payouts</a>.</p> | |
| 83 | - | <h2 id="what-we-track-and-what-we-dont">What We Track (and What We | |
| 84 | - | Don’t)</h2> | |
| 85 | - | <h3 id="we-track">We track</h3> | |
| 86 | - | <ul> | |
| 87 | - | <li>Play and download counts per item</li> | |
| 88 | - | <li>Transaction records (who bought what, when, for how much)</li> | |
| 89 | - | <li>Follower counts</li> | |
| 90 | - | <li>Aggregate revenue by period</li> | |
| 91 | - | </ul> | |
| 92 | - | <h3 id="we-dont-track">We don’t track</h3> | |
| 93 | - | <ul> | |
| 94 | - | <li>Page views or traffic volume</li> | |
| 95 | - | <li>Referral sources or UTM parameters</li> | |
| 96 | - | <li>Geographic data (country, region)</li> | |
| 97 | - | <li>Individual user behavior across sessions</li> | |
| 98 | - | <li>Browsing patterns</li> | |
| 99 | - | <li>Device fingerprints</li> | |
| 100 | - | <li>Cross-site activity</li> | |
| 101 | - | <li>Demographic profiling</li> | |
| 102 | - | <li>Conversion funnels</li> | |
| 103 | - | </ul> | |
| 104 | - | <p>No analytics cookies. No third-party tracking scripts. No IP address | |
| 105 | - | logging beyond 30 days.</p> | |
| 106 | - | <p>Your fans get privacy. You get the numbers that matter: what sold, | |
| 107 | - | for how much, and whether it’s trending up or down.</p> | |
| 108 | - | <h2 id="see-also">See Also</h2> | |
| 109 | - | <ul> | |
| 110 | - | <li><a href="./payouts.html">Receiving Payouts</a>: Payouts and tax | |
| 111 | - | info</li> | |
| 112 | - | <li><a href="./best-practices.html">Best Practices</a>: Understanding | |
| 113 | - | what resonates</li> | |
| 114 | - | <li><a href="./contact-sharing.html">Contact Sharing</a>: Building | |
| 115 | - | direct relationships with fans</li> | |
| 116 | - | <li><a href="./03-selling.html#data-export">Data Portability</a>: | |
| 117 | - | Exporting all your data</li> | |
| 118 | - | </ul> | |
| 119 | - | </article> | |
| 120 | - | </body> | |
| 121 | - | </html> |
| @@ -1,201 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Developer API Overview — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Developer</nav> | |
| 14 | - | <h1>Developer API Overview<span class="dot">.</span></h1> | |
| 15 | - | <p>Makenot.work provides four APIs for building integrations, desktop | |
| 16 | - | applications, and developer tools: session-based (web dashboard), | |
| 17 | - | SyncKit JWT (cloud sync and OTA), OAuth2 PKCE (third-party apps), and a | |
| 18 | - | public License Key API. This page covers authentication methods, error | |
| 19 | - | handling, and rate limits shared across all endpoints.</p> | |
| 20 | - | <h2 id="authentication-methods">Authentication Methods</h2> | |
| 21 | - | <h3 id="session-cookies">Session Cookies</h3> | |
| 22 | - | <p>The primary authentication for the web dashboard. Set via | |
| 23 | - | <code>/login</code>, required for all creator-facing endpoints | |
| 24 | - | (projects, items, files, analytics). Write operations require a CSRF | |
| 25 | - | token in the <code>_csrf</code> form field or <code>X-CSRF-Token</code> | |
| 26 | - | header.</p> | |
| 27 | - | <p>Session-authenticated endpoints are designed for the HTMX frontend. | |
| 28 | - | When called without the <code>HX-Request</code> header, they return JSON | |
| 29 | - | instead of HTML fragments.</p> | |
| 30 | - | <h3 id="synckit-jwt">SyncKit JWT</h3> | |
| 31 | - | <p>Used by <a href="./synckit.html">SyncKit</a> cloud sync and <a | |
| 32 | - | href="./ota.html">OTA updates</a>. Obtain a token via | |
| 33 | - | <code>POST /api/sync/auth</code> (email + password + API key) or the <a | |
| 34 | - | href="./oauth.html">OAuth2 PKCE flow</a>. Pass it as | |
| 35 | - | <code>Authorization: Bearer <token></code>. Tokens expire after 7 | |
| 36 | - | days.</p> | |
| 37 | - | <h3 id="no-authentication">No Authentication</h3> | |
| 38 | - | <p>Public endpoints that require no auth:</p> | |
| 39 | - | <ul> | |
| 40 | - | <li><a href="./license-keys.html">License Key API</a>: key validation, | |
| 41 | - | activation, deactivation</li> | |
| 42 | - | <li><a href="./ota.html">OTA update check</a>: Tauri-compatible update | |
| 43 | - | endpoint</li> | |
| 44 | - | <li><a href="./oauth.html">OAuth authorize</a>: authorization page and | |
| 45 | - | code exchange</li> | |
| 46 | - | </ul> | |
| 47 | - | <h2 id="error-format">Error Format</h2> | |
| 48 | - | <p>All API errors return JSON:</p> | |
| 49 | - | <pre class="json"><code>{ | |
| 50 | - | "error": "Description of what went wrong" | |
| 51 | - | }</code></pre> | |
| 52 | - | <table> | |
| 53 | - | <thead> | |
| 54 | - | <tr> | |
| 55 | - | <th>Status</th> | |
| 56 | - | <th>Meaning</th> | |
| 57 | - | </tr> | |
| 58 | - | </thead> | |
| 59 | - | <tbody> | |
| 60 | - | <tr> | |
| 61 | - | <td>400</td> | |
| 62 | - | <td>Invalid request body or parameters</td> | |
| 63 | - | </tr> | |
| 64 | - | <tr> | |
| 65 | - | <td>401</td> | |
| 66 | - | <td>Missing or invalid authentication</td> | |
| 67 | - | </tr> | |
| 68 | - | <tr> | |
| 69 | - | <td>403</td> | |
| 70 | - | <td>Insufficient permissions</td> | |
| 71 | - | </tr> | |
| 72 | - | <tr> | |
| 73 | - | <td>404</td> | |
| 74 | - | <td>Resource not found</td> | |
| 75 | - | </tr> | |
| 76 | - | <tr> | |
| 77 | - | <td>413</td> | |
| 78 | - | <td>File too large</td> | |
| 79 | - | </tr> | |
| 80 | - | <tr> | |
| 81 | - | <td>422</td> | |
| 82 | - | <td>Validation error</td> | |
| 83 | - | </tr> | |
| 84 | - | <tr> | |
| 85 | - | <td>429</td> | |
| 86 | - | <td>Rate limit exceeded</td> | |
| 87 | - | </tr> | |
| 88 | - | <tr> | |
| 89 | - | <td>500</td> | |
| 90 | - | <td>Internal error</td> | |
| 91 | - | </tr> | |
| 92 | - | </tbody> | |
| 93 | - | </table> | |
| 94 | - | <p>Internal errors return a generic message; no stack traces or database | |
| 95 | - | details are exposed.</p> | |
| 96 | - | <h2 id="rate-limits">Rate Limits</h2> | |
| 97 | - | <p>All rate limits are per IP. Check response headers | |
| 98 | - | (<code>X-RateLimit-Limit</code>, <code>X-RateLimit-Remaining</code>) for | |
| 99 | - | current values. Current limits (subject to change):</p> | |
| 100 | - | <table> | |
| 101 | - | <thead> | |
| 102 | - | <tr> | |
| 103 | - | <th>Category</th> | |
| 104 | - | <th>Burst</th> | |
| 105 | - | <th>Sustained</th> | |
| 106 | - | <th>Endpoints</th> | |
| 107 | - | </tr> | |
| 108 | - | </thead> | |
| 109 | - | <tbody> | |
| 110 | - | <tr> | |
| 111 | - | <td>Authentication</td> | |
| 112 | - | <td>5</td> | |
| 113 | - | <td>2/sec</td> | |
| 114 | - | <td>Login, join, OAuth authorize</td> | |
| 115 | - | </tr> | |
| 116 | - | <tr> | |
| 117 | - | <td>OAuth token exchange</td> | |
| 118 | - | <td>10</td> | |
| 119 | - | <td>2/sec</td> | |
| 120 | - | <td>Token endpoint</td> | |
| 121 | - | </tr> | |
| 122 | - | <tr> | |
| 123 | - | <td>2FA verification</td> | |
| 124 | - | <td>5</td> | |
| 125 | - | <td>2/sec</td> | |
| 126 | - | <td>TOTP, passkey verification</td> | |
| 127 | - | </tr> | |
| 128 | - | <tr> | |
| 129 | - | <td>License key validation</td> | |
| 130 | - | <td>20</td> | |
| 131 | - | <td>5/sec</td> | |
| 132 | - | <td>Validate, activate, deactivate</td> | |
| 133 | - | </tr> | |
| 134 | - | <tr> | |
| 135 | - | <td>API reads</td> | |
| 136 | - | <td>60</td> | |
| 137 | - | <td>10/sec</td> | |
| 138 | - | <td>GET endpoints</td> | |
| 139 | - | </tr> | |
| 140 | - | <tr> | |
| 141 | - | <td>API writes</td> | |
| 142 | - | <td>30</td> | |
| 143 | - | <td>2/sec</td> | |
| 144 | - | <td>POST/PUT/DELETE endpoints</td> | |
| 145 | - | </tr> | |
| 146 | - | <tr> | |
| 147 | - | <td>Data export</td> | |
| 148 | - | <td>3</td> | |
| 149 | - | <td>1/sec</td> | |
| 150 | - | <td>Export endpoints</td> | |
| 151 | - | </tr> | |
| 152 | - | <tr> | |
| 153 | - | <td>File uploads</td> | |
| 154 | - | <td>10</td> | |
| 155 | - | <td>2/sec</td> | |
| 156 | - | <td>Presign + confirm</td> | |
| 157 | - | </tr> | |
| 158 | - | <tr> | |
| 159 | - | <td>SyncKit auth</td> | |
| 160 | - | <td>5</td> | |
| 161 | - | <td>1/sec</td> | |
| 162 | - | <td>Sync auth endpoint</td> | |
| 163 | - | </tr> | |
| 164 | - | <tr> | |
| 165 | - | <td>SyncKit sync</td> | |
| 166 | - | <td>30</td> | |
| 167 | - | <td>10/sec</td> | |
| 168 | - | <td>Push, pull, blobs</td> | |
| 169 | - | </tr> | |
| 170 | - | <tr> | |
| 171 | - | <td>OTA check</td> | |
| 172 | - | <td>30</td> | |
| 173 | - | <td>10/sec</td> | |
| 174 | - | <td>Update check endpoint</td> | |
| 175 | - | </tr> | |
| 176 | - | <tr> | |
| 177 | - | <td>OTA publish</td> | |
| 178 | - | <td>10</td> | |
| 179 | - | <td>2/sec</td> | |
| 180 | - | <td>Artifact upload</td> | |
| 181 | - | </tr> | |
| 182 | - | </tbody> | |
| 183 | - | </table> | |
| 184 | - | <p>Exceeding a limit returns HTTP 429. Implement exponential backoff in | |
| 185 | - | your client.</p> | |
| 186 | - | <h2 id="api-reference">API Reference</h2> | |
| 187 | - | <ul> | |
| 188 | - | <li><a href="./synckit.html">SyncKit Cloud Sync</a>: push/pull encrypted | |
| 189 | - | data, device management, blob storage</li> | |
| 190 | - | <li><a href="./ota.html">OTA Updates</a>: app auto-update server | |
| 191 | - | (Tauri-compatible protocol)</li> | |
| 192 | - | <li><a href="./oauth.html">OAuth2 PKCE</a>: “Log in with | |
| 193 | - | Makenot.work”</li> | |
| 194 | - | <li><a href="./license-keys.html">License Key API</a>: validate, | |
| 195 | - | activate, and deactivate license keys</li> | |
| 196 | - | <li><a href="/rustdoc/synckit_client/">Rustdoc API Reference</a>: | |
| 197 | - | SyncKit client SDK documentation</li> | |
| 198 | - | </ul> | |
| 199 | - | </article> | |
| 200 | - | </body> | |
| 201 | - | </html> |
| @@ -1,118 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Appeal Process — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Legal</nav> | |
| 14 | - | <h1>Appeal Process<span class="dot">.</span></h1> | |
| 15 | - | <p>How to dispute moderation decisions.</p> | |
| 16 | - | <p><em>Makenot.work is currently a one-person operation. Appeals are | |
| 17 | - | reviewed directly by the founder. Independent review by a separate | |
| 18 | - | decision-maker is planned once the team grows.</em></p> | |
| 19 | - | <hr /> | |
| 20 | - | <h2 id="what-can-be-appealed">What Can Be Appealed</h2> | |
| 21 | - | <p>You can appeal:</p> | |
| 22 | - | <ul> | |
| 23 | - | <li>Content removal</li> | |
| 24 | - | <li>Account suspension</li> | |
| 25 | - | <li>Account termination</li> | |
| 26 | - | <li>Any other moderation action</li> | |
| 27 | - | </ul> | |
| 28 | - | <hr /> | |
| 29 | - | <h2 id="how-to-appeal">How to Appeal</h2> | |
| 30 | - | <p>Send an email to:</p> | |
| 31 | - | <p><strong><a | |
| 32 | - | href="mailto:appeals@makenot.work">appeals@makenot.work</a></strong></p> | |
| 33 | - | <p>Include:</p> | |
| 34 | - | <ol type="1"> | |
| 35 | - | <li><strong>Your username</strong> or account email</li> | |
| 36 | - | <li><strong>What action you’re appealing</strong> - What was removed or | |
| 37 | - | what restriction was applied</li> | |
| 38 | - | <li><strong>Why you believe the decision was wrong</strong> - Be | |
| 39 | - | specific</li> | |
| 40 | - | <li><strong>Any relevant context</strong> - Information we might have | |
| 41 | - | missed</li> | |
| 42 | - | </ol> | |
| 43 | - | <hr /> | |
| 44 | - | <h2 id="what-happens-next">What Happens Next</h2> | |
| 45 | - | <ol type="1"> | |
| 46 | - | <li><p><strong>Acknowledgment</strong> - We confirm receipt (usually | |
| 47 | - | within 24 hours)</p></li> | |
| 48 | - | <li><p><strong>Review</strong> - Your appeal is reviewed with fresh | |
| 49 | - | eyes. Currently, appeals are reviewed by the founder. Once the team | |
| 50 | - | grows, appeals will be reviewed by someone other than the original | |
| 51 | - | decision-maker</p></li> | |
| 52 | - | <li><p><strong>Decision</strong> - We notify you of the outcome with | |
| 53 | - | explanation</p></li> | |
| 54 | - | <li><p><strong>If overturned</strong> - Content is restored or | |
| 55 | - | restrictions are lifted</p></li> | |
| 56 | - | <li><p><strong>If upheld</strong> - We explain why and what options | |
| 57 | - | remain</p></li> | |
| 58 | - | </ol> | |
| 59 | - | <hr /> | |
| 60 | - | <h2 id="timeline">Timeline</h2> | |
| 61 | - | <p>We resolve appeals within:</p> | |
| 62 | - | <ul> | |
| 63 | - | <li><strong>Content removal:</strong> 3-5 business days</li> | |
| 64 | - | <li><strong>Account suspension:</strong> 5-10 business days</li> | |
| 65 | - | <li><strong>Account termination:</strong> 10-14 business days</li> | |
| 66 | - | </ul> | |
| 67 | - | <p>Complex cases may take longer. We’ll keep you informed of delays.</p> | |
| 68 | - | <hr /> | |
| 69 | - | <h2 id="what-we-consider">What We Consider</h2> | |
| 70 | - | <p>When reviewing appeals, we look at:</p> | |
| 71 | - | <ul> | |
| 72 | - | <li><strong>Original context</strong> - Was important context | |
| 73 | - | missed?</li> | |
| 74 | - | <li><strong>Policy interpretation</strong> - Was the policy applied | |
| 75 | - | correctly?</li> | |
| 76 | - | <li><strong>Consistency</strong> - Is this consistent with how we’ve | |
| 77 | - | handled similar cases?</li> | |
| 78 | - | <li><strong>New information</strong> - Did you provide information that | |
| 79 | - | changes the picture?</li> | |
| 80 | - | </ul> | |
| 81 | - | <hr /> | |
| 82 | - | <h2 id="data-access-during-appeals">Data Access During Appeals</h2> | |
| 83 | - | <p>Even if your account is suspended or terminated:</p> | |
| 84 | - | <ul> | |
| 85 | - | <li>You can request a data export</li> | |
| 86 | - | <li>We preserve your data during the appeal window</li> | |
| 87 | - | </ul> | |
| 88 | - | <hr /> | |
| 89 | - | <h2 id="limits">Limits</h2> | |
| 90 | - | <p>Some decisions cannot be appealed:</p> | |
| 91 | - | <ul> | |
| 92 | - | <li><strong>Legal requirements</strong> - If we’re legally required to | |
| 93 | - | remove content or terminate an account</li> | |
| 94 | - | <li><strong>Imminent harm</strong> - If we believe content poses | |
| 95 | - | immediate danger to someone</li> | |
| 96 | - | <li><strong>CSAM</strong> - Content involving minors is not subject to | |
| 97 | - | appeal</li> | |
| 98 | - | </ul> | |
| 99 | - | <p>For these cases, we’ll explain why the decision is final.</p> | |
| 100 | - | <hr /> | |
| 101 | - | <h2 id="if-you-disagree-with-the-appeal-outcome">If You Disagree with | |
| 102 | - | the Appeal Outcome</h2> | |
| 103 | - | <p>If your appeal is denied and you believe we made an error, you can | |
| 104 | - | request a second review (once per decision). Provide new information or | |
| 105 | - | arguments not considered the first time; your case will be re-examined | |
| 106 | - | from scratch.</p> | |
| 107 | - | <p>Beyond that, our decision is final.</p> | |
| 108 | - | <hr /> | |
| 109 | - | <h2 id="see-also">See Also</h2> | |
| 110 | - | <ul> | |
| 111 | - | <li><a href="./moderation.html">Content Moderation</a>: How we make | |
| 112 | - | decisions</li> | |
| 113 | - | <li><a href="./acceptable-use.html">Acceptable Use Policy</a>: What we | |
| 114 | - | enforce</li> | |
| 115 | - | </ul> | |
| 116 | - | </article> | |
| 117 | - | </body> | |
| 118 | - | </html> |
| @@ -1,145 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Best Practices — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Guide</nav> | |
| 14 | - | <h1>Best Practices<span class="dot">.</span></h1> | |
| 15 | - | <p>Strategies for getting the most out of Makenot.work.</p> | |
| 16 | - | <h2 id="setting-up-for-success">Setting Up for Success</h2> | |
| 17 | - | <h3 id="start-with-your-project">Start with Your Project</h3> | |
| 18 | - | <ul> | |
| 19 | - | <li><strong>Single-creator projects</strong>: your name, your work, your | |
| 20 | - | earnings.</li> | |
| 21 | - | <li><strong>Collaborative projects</strong> need upfront agreement on | |
| 22 | - | splits and who can publish what.</li> | |
| 23 | - | <li><strong>Multiple projects</strong> make sense if you have distinct | |
| 24 | - | bodies of work (a music project and a writing project, for | |
| 25 | - | instance).</li> | |
| 26 | - | </ul> | |
| 27 | - | <h3 id="choose-your-pricing-model">Choose Your Pricing Model</h3> | |
| 28 | - | <p>Consider:</p> | |
| 29 | - | <p><strong>Free works when:</strong></p> | |
| 30 | - | <ul> | |
| 31 | - | <li>You’re building an audience</li> | |
| 32 | - | <li>The content is promotional</li> | |
| 33 | - | <li>You want maximum reach</li> | |
| 34 | - | </ul> | |
| 35 | - | <p><strong>Fixed price works when:</strong></p> | |
| 36 | - | <ul> | |
| 37 | - | <li>You’re selling a complete work (album, book, course)</li> | |
| 38 | - | <li>You want simple, predictable transactions</li> | |
| 39 | - | <li>The value is clear upfront</li> | |
| 40 | - | </ul> | |
| 41 | - | <p><strong>Pay-what-you-want works when:</strong></p> | |
| 42 | - | <ul> | |
| 43 | - | <li>You want to lower the barrier but capture willing supporters</li> | |
| 44 | - | <li>Your audience has mixed ability to pay</li> | |
| 45 | - | <li>You’re comfortable with variability</li> | |
| 46 | - | </ul> | |
| 47 | - | <p><strong>Memberships work when:</strong></p> | |
| 48 | - | <ul> | |
| 49 | - | <li>You release regularly</li> | |
| 50 | - | <li>You want predictable monthly income</li> | |
| 51 | - | <li>You’re building ongoing relationships with fans</li> | |
| 52 | - | </ul> | |
| 53 | - | <p>See <a href="./pricing.html">Pricing Models</a> for setup | |
| 54 | - | details.</p> | |
| 55 | - | <h2 id="pricing-strategy">Pricing Strategy</h2> | |
| 56 | - | <h3 id="dont-undervalue-your-work">Don’t Undervalue Your Work</h3> | |
| 57 | - | <p>Since we don’t take a cut, you keep more per sale. You can price | |
| 58 | - | lower while earning the same, price the same while earning more, or | |
| 59 | - | experiment freely without losing margin to the platform.</p> | |
| 60 | - | <h3 id="use-free-strategically">Use Free Strategically</h3> | |
| 61 | - | <p>Free items can showcase your work, build your audience before | |
| 62 | - | monetizing, or complement paid offerings (free singles, paid albums). | |
| 63 | - | But don’t default to free. Your work has value.</p> | |
| 64 | - | <h2 id="building-your-audience">Building Your Audience</h2> | |
| 65 | - | <h3 id="how-fans-find-your-work">How Fans Find Your Work</h3> | |
| 66 | - | <p>Makenot.work uses <a | |
| 67 | - | href="./discovery.html#discovery-through-exploration">Discovery Through | |
| 68 | - | Exploration</a> – fans find you through search, tags, follows, and | |
| 69 | - | direct sharing. See <a href="./discovery.html">Discovery</a> for the | |
| 70 | - | full list of channels and how they work.</p> | |
| 71 | - | <p>Invest in good tagging: accurate genres, descriptive tags, complete | |
| 72 | - | metadata. This is how fans browsing for “ambient electronic” or “short | |
| 73 | - | fiction” will find your work.</p> | |
| 74 | - | <h3 id="your-existing-audience-still-matters">Your Existing Audience | |
| 75 | - | Still Matters</h3> | |
| 76 | - | <p>Search and tags mean new fans can find you, but don’t rely on | |
| 77 | - | discovery as your primary growth channel. Bring your people with | |
| 78 | - | you.</p> | |
| 79 | - | <h3 id="follows">Follows</h3> | |
| 80 | - | <p>Fans can follow your account, individual projects, or tags. Follows | |
| 81 | - | power their personal feed. Following is free and doesn’t require a | |
| 82 | - | purchase – encourage your audience to follow you.</p> | |
| 83 | - | <h3 id="broadcast-email">Broadcast Email</h3> | |
| 84 | - | <p>Send a plain-text email update to all your followers (one per 24 | |
| 85 | - | hours, with signed unsubscribe URL). Compose from your creator | |
| 86 | - | dashboard.</p> | |
| 87 | - | <p>Use broadcasts sparingly – genuine announcements, not routine | |
| 88 | - | updates.</p> | |
| 89 | - | <h3 id="contact-sharing">Contact Sharing</h3> | |
| 90 | - | <p>When fans purchase from you and opt in to share their email, you get | |
| 91 | - | a direct line to them outside the platform – the most durable audience | |
| 92 | - | you can build. See <a href="./contact-sharing.html">Contact Sharing</a> | |
| 93 | - | for details.</p> | |
| 94 | - | <h3 id="direct-purchase-links">Direct Purchase Links</h3> | |
| 95 | - | <p>Every item gets a dedicated purchase link at | |
| 96 | - | <code>/buy/{item_id}</code> – a clean page with just the cover, title, | |
| 97 | - | price, and a buy button. Use these for link-in-bio, newsletter CTAs, | |
| 98 | - | social media posts, and QR codes on physical media. Fans can purchase | |
| 99 | - | without an account via <a href="./03-selling.html#guest-checkout">guest | |
| 100 | - | checkout</a>.</p> | |
| 101 | - | <h2 id="practical-tips">Practical Tips</h2> | |
| 102 | - | <h3 id="set-expectations">Set Expectations</h3> | |
| 103 | - | <p>Tell fans what they’re getting: how often you release, what | |
| 104 | - | membership includes, what’s free vs. paid. Clear expectations reduce | |
| 105 | - | refunds and build trust.</p> | |
| 106 | - | <h3 id="have-a-refund-policy">Have a Refund Policy</h3> | |
| 107 | - | <p>You control refund decisions. Consider adding a brief refund policy | |
| 108 | - | to your profile or project description. Examples of refund policies for | |
| 109 | - | digital goods:</p> | |
| 110 | - | <ul> | |
| 111 | - | <li><strong>No refunds after download</strong> (standard for digital | |
| 112 | - | content)</li> | |
| 113 | - | <li><strong>Refunds within 24-48 hours if not downloaded</strong> | |
| 114 | - | (generous, builds trust)</li> | |
| 115 | - | <li><strong>Case-by-case</strong> (flexible, but takes more time)</li> | |
| 116 | - | </ul> | |
| 117 | - | <p>Whatever you choose, state it clearly before purchase. A visible | |
| 118 | - | refund policy reduces chargebacks ($15 fee per dispute) and sets | |
| 119 | - | expectations. See <a href="./payouts.html#refunds">Payouts</a> for the | |
| 120 | - | mechanics of how refunds work.</p> | |
| 121 | - | <h3 id="export-regularly">Export Regularly</h3> | |
| 122 | - | <p>Export everything periodically: content, metadata, fan contacts, | |
| 123 | - | transaction history.</p> | |
| 124 | - | <h3 id="watch-your-stats">Watch Your Stats</h3> | |
| 125 | - | <p>Your dashboard shows revenue trends, per-project breakdowns, and | |
| 126 | - | per-item performance. See <a href="./analytics.html">Analytics</a>.</p> | |
| 127 | - | <h3 id="respond-to-fans">Respond to Fans</h3> | |
| 128 | - | <p>Direct relationships mean direct responsibility. When fans reach out, | |
| 129 | - | respond. This is the tradeoff for owning the relationship.</p> | |
| 130 | - | <h2 id="see-also">See Also</h2> | |
| 131 | - | <ul> | |
| 132 | - | <li><a href="./pricing.html">Pricing Models</a>: Fixed price, PWYW, and | |
| 133 | - | memberships</li> | |
| 134 | - | <li><a href="./files.html">Uploading & Downloads</a>: File formats | |
| 135 | - | and quality</li> | |
| 136 | - | <li><a href="./tags.html">Tagging</a>: Organizing your catalog</li> | |
| 137 | - | <li><a href="./analytics.html">Analytics & Dashboard</a>: | |
| 138 | - | Understanding your stats</li> | |
| 139 | - | <li><a href="./contact-sharing.html">Contact Sharing</a>: Building | |
| 140 | - | direct fan relationships</li> | |
| 141 | - | <li><a href="./roadmap.html">Roadmap</a>: What’s coming next</li> | |
| 142 | - | </ul> | |
| 143 | - | </article> | |
| 144 | - | </body> | |
| 145 | - | </html> |
| @@ -1,62 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Blog Posts — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Guide</nav> | |
| 14 | - | <h1>Blog Posts<span class="dot">.</span></h1> | |
| 15 | - | <p>Every project can have a blog for updates, announcements, | |
| 16 | - | behind-the-scenes writing, and anything else. Blog posts are separate | |
| 17 | - | from items – free-form writing, not releases.</p> | |
| 18 | - | <h2 id="creating-a-blog-post">Creating a Blog Post</h2> | |
| 19 | - | <ol type="1"> | |
| 20 | - | <li>Go to your project dashboard</li> | |
| 21 | - | <li>Click “New Blog Post”</li> | |
| 22 | - | <li>Enter a title and write your content in Markdown</li> | |
| 23 | - | <li>Choose to publish immediately or schedule for later</li> | |
| 24 | - | </ol> | |
| 25 | - | <p>Blog posts support full Markdown: headings, lists, links, images, | |
| 26 | - | code blocks, and inline formatting.</p> | |
| 27 | - | <h2 id="scheduling">Scheduling</h2> | |
| 28 | - | <p>Set a future publish date and time. Scheduled posts are not visible | |
| 29 | - | until their publish time arrives (checked every 60 seconds). Edit or | |
| 30 | - | reschedule from the dashboard at any time before publication.</p> | |
| 31 | - | <h2 id="discussion-threads">Discussion Threads</h2> | |
| 32 | - | <p>When you publish a blog post, Multithreaded (the integrated forum) | |
| 33 | - | automatically creates a linked discussion thread at the bottom of the | |
| 34 | - | post.</p> | |
| 35 | - | <h2 id="the-changelog">The Changelog</h2> | |
| 36 | - | <p>The platform changelog at <code>/changelog</code> uses the same blog | |
| 37 | - | system. Your project blogs live at | |
| 38 | - | <code>/p/your-project/blog</code>.</p> | |
| 39 | - | <h2 id="rss">RSS</h2> | |
| 40 | - | <p>Blog posts are included in your project’s blog RSS feed at | |
| 41 | - | <code>/p/your-project/blog/rss</code>, separate from the item RSS feed | |
| 42 | - | at <code>/p/your-project/rss</code>.</p> | |
| 43 | - | <h2 id="visibility">Visibility</h2> | |
| 44 | - | <ul> | |
| 45 | - | <li><strong>Published posts</strong> are visible to anyone</li> | |
| 46 | - | <li><strong>Draft posts</strong> are visible only to you (the project | |
| 47 | - | owner)</li> | |
| 48 | - | <li><strong>Scheduled posts</strong> are visible only to you until their | |
| 49 | - | publish time</li> | |
| 50 | - | </ul> | |
| 51 | - | <h2 id="see-also">See Also</h2> | |
| 52 | - | <ul> | |
| 53 | - | <li><a href="./rss.html">RSS Feeds</a>: How RSS works for items and blog | |
| 54 | - | posts</li> | |
| 55 | - | <li><a href="./02-content.html">Content & Items</a>: Creating and | |
| 56 | - | managing items</li> | |
| 57 | - | <li><a href="./projects.html">Projects</a>: Project setup and | |
| 58 | - | management</li> | |
| 59 | - | </ul> | |
| 60 | - | </article> | |
| 61 | - | </body> | |
| 62 | - | </html> |
| @@ -1,153 +0,0 @@ | |||
| 1 | - | #!/usr/bin/env bash | |
| 2 | - | # Generate static HTML from public documentation markdown. | |
| 3 | - | # Usage: ./build.sh | |
| 4 | - | # Requires: pandoc (brew install pandoc) | |
| 5 | - | ||
| 6 | - | set -euo pipefail | |
| 7 | - | ||
| 8 | - | SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" | |
| 9 | - | DOCS_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" | |
| 10 | - | OUT="$SCRIPT_DIR" | |
| 11 | - | ||
| 12 | - | command -v pandoc >/dev/null 2>&1 || { | |
| 13 | - | echo "Error: pandoc required (brew install pandoc)" >&2 | |
| 14 | - | exit 1 | |
| 15 | - | } | |
| 16 | - | ||
| 17 | - | # Sections in display order (dir:DisplayName) | |
| 18 | - | SECTIONS=("about:About" "guide:Guide" "developer:Developer" "legal:Legal" "support:Support") | |
| 19 | - | ||
| 20 | - | # Shared HTML pieces | |
| 21 | - | FONTS='<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet">' | |
| 22 | - | ||
| 23 | - | page_head() { | |
| 24 | - | local title="$1" | |
| 25 | - | cat <<EOF | |
| 26 | - | <!DOCTYPE html> | |
| 27 | - | <html lang="en"> | |
| 28 | - | <head> | |
| 29 | - | <meta charset="UTF-8"> | |
| 30 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 31 | - | <title>${title} — Makenot.work</title> | |
| 32 | - | ${FONTS} | |
| 33 | - | <link rel="stylesheet" href="docs.css"> | |
| 34 | - | </head> | |
| 35 | - | <body class="padded-page"> | |
| 36 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 37 | - | <article class="doc-container"> | |
| 38 | - | EOF | |
| 39 | - | } | |
| 40 | - | ||
| 41 | - | PAGE_FOOT='</article> | |
| 42 | - | </body> | |
| 43 | - | </html>' | |
| 44 | - | ||
| 45 | - | # Extract title from first # heading | |
| 46 | - | extract_title() { | |
| 47 | - | awk '/^# / { sub(/^# /, ""); print; exit }' "$1" | |
| 48 | - | } | |
| 49 | - | ||
| 50 | - | # Remove first # heading (template renders it separately) | |
| 51 | - | strip_first_h1() { | |
| 52 | - | awk '/^# / && !found { found=1; next } 1' | |
| 53 | - | } | |
| 54 | - | ||
| 55 | - | # Remove > **Draft** notice lines | |
| 56 | - | strip_draft_notice() { | |
| 57 | - | sed '/^> \*\*Draft\*\*/d' | |
| 58 | - | } | |
| 59 | - | ||
| 60 | - | # Rewrite markdown links for static HTML output: | |
| 61 | - | # ./foo.md → ./foo.html | |
| 62 | - | # ../section/foo.md → ./foo.html | |
| 63 | - | # ../../unpublished/... → plain text (link removed) | |
| 64 | - | # Anchors preserved: foo.md#bar → foo.html#bar | |
| 65 | - | # Absolute URLs, mailto, route links unchanged. | |
| 66 | - | rewrite_links() { | |
| 67 | - | sed -E \ | |
| 68 | - | -e 's/\[([^]]+)\]\([^)]*unpublished[^)]*\)/\1/g' \ | |
| 69 | - | -e 's|\.\./[a-zA-Z0-9_-]+/([a-zA-Z0-9_-]+)\.md|./\1.html|g' \ | |
| 70 | - | -e 's|\./([a-zA-Z0-9_-]+)\.md|./\1.html|g' | |
| 71 | - | } | |
| 72 | - | ||
| 73 | - | build_page() { | |
| 74 | - | local md_file="$1" slug="$2" section="$3" | |
| 75 | - | local title | |
| 76 | - | title="$(extract_title "$md_file")" | |
| 77 | - | [ -z "$title" ] && title="$slug" | |
| 78 | - | ||
| 79 | - | local html_body | |
| 80 | - | html_body="$(cat "$md_file" \ | |
| 81 | - | | strip_first_h1 \ | |
| 82 | - | | strip_draft_notice \ | |
| 83 | - | | rewrite_links \ | |
| 84 | - | | pandoc -f gfm+smart-tex_math_dollars-tex_math_gfm -t html5 --syntax-highlighting=none)" | |
| 85 | - | ||
| 86 | - | { | |
| 87 | - | page_head "$title" | |
| 88 | - | echo " <nav class=\"doc-nav\"><a href=\"./index.html\">Docs</a> / ${section}</nav>" | |
| 89 | - | echo " <h1>${title}<span class=\"dot\">.</span></h1>" | |
| 90 | - | echo "$html_body" | |
| 91 | - | echo "$PAGE_FOOT" | |
| 92 | - | } > "$OUT/${slug}.html" | |
| 93 | - | ||
| 94 | - | echo " ${slug}.html" | |
| 95 | - | } | |
| 96 | - | ||
| 97 | - | build_index() { | |
| 98 | - | { | |
| 99 | - | page_head "Docs" | |
| 100 | - | echo ' <h1>Docs<span class="dot">.</span></h1>' | |
| 101 | - | echo ' <p class="doc-subtitle">Public documentation for Makenot.work.</p>' | |
| 102 | - | ||
| 103 | - | for pair in "${SECTIONS[@]}"; do | |
| 104 | - | local dir="${pair%%:*}" display="${pair##*:}" | |
| 105 | - | local section_path="$DOCS_ROOT/$dir" | |
| 106 | - | [ ! -d "$section_path" ] && continue | |
| 107 | - | ||
| 108 | - | echo " <h2>$display</h2>" | |
| 109 | - | echo " <ul>" | |
| 110 | - | ||
| 111 | - | for f in "$section_path"/*.md; do | |
| 112 | - | [ ! -f "$f" ] && continue | |
| 113 | - | local s title | |
| 114 | - | s="$(basename "$f" .md)" | |
| 115 | - | title="$(extract_title "$f")" | |
| 116 | - | [ -z "$title" ] && title="$s" | |
| 117 | - | echo " <li><a href=\"./${s}.html\">${title}</a></li>" | |
| 118 | - | done | |
| 119 | - | ||
| 120 | - | echo " </ul>" | |
| 121 | - | done | |
| 122 | - | ||
| 123 | - | echo "$PAGE_FOOT" | |
| 124 | - | } > "$OUT/index.html" | |
| 125 | - | ||
| 126 | - | echo " index.html" | |
| 127 | - | } | |
| 128 | - | ||
| 129 | - | # Clean old HTML files (keep docs.css and build.sh) | |
| 130 | - | for f in "$OUT"/*.html; do | |
| 131 | - | [ -f "$f" ] && rm "$f" | |
| 132 | - | done | |
| 133 | - | ||
| 134 | - | echo "Building static docs from $DOCS_ROOT/" | |
| 135 | - | ||
| 136 | - | for pair in "${SECTIONS[@]}"; do | |
| 137 | - | dir="${pair%%:*}" display="${pair##*:}" | |
| 138 | - | section_path="$DOCS_ROOT/$dir" | |
| 139 | - | [ ! -d "$section_path" ] && continue | |
| 140 | - | ||
| 141 | - | echo "$display:" | |
| 142 | - | for f in "$section_path"/*.md; do | |
| 143 | - | [ ! -f "$f" ] && continue | |
| 144 | - | slug="$(basename "$f" .md)" | |
| 145 | - | build_page "$f" "$slug" "$display" | |
| 146 | - | done | |
| 147 | - | done | |
| 148 | - | ||
| 149 | - | echo "Index:" | |
| 150 | - | build_index | |
| 151 | - | ||
| 152 | - | count=$(ls -1 "$OUT"/*.html 2>/dev/null | wc -l | tr -d ' ') | |
| 153 | - | echo "Done. ${count} files in $OUT/" |
| @@ -1,62 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Bundles — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Guide</nav> | |
| 14 | - | <h1>Bundles<span class="dot">.</span></h1> | |
| 15 | - | <p>Sell multiple items together as a single purchase: a “Complete | |
| 16 | - | Discography” pack, a “Starter Kit” with templates, or a “Full Course” | |
| 17 | - | combining modules.</p> | |
| 18 | - | <h2 id="creating-a-bundle">Creating a Bundle</h2> | |
| 19 | - | <ol type="1"> | |
| 20 | - | <li>Navigate to your project</li> | |
| 21 | - | <li>Click <strong>New Item</strong></li> | |
| 22 | - | <li>Choose <strong>Bundle</strong> as the item type</li> | |
| 23 | - | <li>Set a title, description, and price</li> | |
| 24 | - | </ol> | |
| 25 | - | <p>Bundles are items themselves and appear in your project listing | |
| 26 | - | alongside regular items.</p> | |
| 27 | - | <h2 id="adding-items-to-a-bundle">Adding Items to a Bundle</h2> | |
| 28 | - | <p>After creating the bundle:</p> | |
| 29 | - | <ol type="1"> | |
| 30 | - | <li>Open the bundle from your dashboard</li> | |
| 31 | - | <li>Add items from the same project</li> | |
| 32 | - | </ol> | |
| 33 | - | <p><strong>Rules:</strong></p> | |
| 34 | - | <ul> | |
| 35 | - | <li>Items must be in the same project as the bundle</li> | |
| 36 | - | <li>Bundles cannot contain other bundles</li> | |
| 37 | - | <li>An item can belong to multiple bundles</li> | |
| 38 | - | <li>Items in a bundle can also be sold individually</li> | |
| 39 | - | </ul> | |
| 40 | - | <h2 id="what-fans-get">What Fans Get</h2> | |
| 41 | - | <p>When a fan buys a bundle, each item appears in their library as if | |
| 42 | - | purchased individually. If you add new items later, existing buyers get | |
| 43 | - | access automatically.</p> | |
| 44 | - | <h2 id="pricing">Pricing</h2> | |
| 45 | - | <p>Set the bundle price independently of its contents. Fans can also buy | |
| 46 | - | individual items without buying the bundle.</p> | |
| 47 | - | <h2 id="unlisted-items-in-bundles">Unlisted Items in Bundles</h2> | |
| 48 | - | <p>Items marked as <strong>unlisted</strong> are hidden from your | |
| 49 | - | project’s main listing but still appear as bundle contents. This is | |
| 50 | - | useful for items you only want available as part of a package.</p> | |
| 51 | - | <h2 id="see-also">See Also</h2> | |
| 52 | - | <ul> | |
| 53 | - | <li><a href="./items.html">Items</a>: Creating and managing individual | |
| 54 | - | items</li> | |
| 55 | - | <li><a href="./collections.html">Collections</a>: Lists (display-only, | |
| 56 | - | not purchasable as a unit)</li> | |
| 57 | - | <li><a href="./promo-codes.html">Promo Codes</a>: Discounts on bundles | |
| 58 | - | and items</li> | |
| 59 | - | </ul> | |
| 60 | - | </article> | |
| 61 | - | </body> | |
| 62 | - | </html> |
| @@ -1,76 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Shopping Cart — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Guide</nav> | |
| 14 | - | <h1>Shopping Cart<span class="dot">.</span></h1> | |
| 15 | - | <p>Add items from multiple creators to a single cart and check out in | |
| 16 | - | one flow.</p> | |
| 17 | - | <h2 id="adding-items">Adding Items</h2> | |
| 18 | - | <p>Click <strong>Add to Cart</strong> on any item page. Items persist | |
| 19 | - | across sessions and devices. Each item can only appear once in your | |
| 20 | - | cart. To remove an item, click the remove button on the cart page or | |
| 21 | - | toggle the cart button on the item page.</p> | |
| 22 | - | <h2 id="cart-page">Cart Page</h2> | |
| 23 | - | <p>Your cart groups items by creator. Each group shows a subtotal and | |
| 24 | - | Stripe processing fee estimate (~2.9% + $0.30). The platform fee is | |
| 25 | - | always $0.</p> | |
| 26 | - | <p>If you have items on your <a href="./fan-guide.html">wishlist</a>, | |
| 27 | - | suggestions appear below your cart with quick “Add to Cart” buttons.</p> | |
| 28 | - | <h2 id="pay-what-you-want-in-cart">Pay-What-You-Want in Cart</h2> | |
| 29 | - | <p>Items with pay-what-you-want pricing show an inline price input. Set | |
| 30 | - | any amount at or above the creator’s minimum. The maximum is $10,000 per | |
| 31 | - | item. Your chosen amount is saved automatically.</p> | |
| 32 | - | <h2 id="checkout">Checkout</h2> | |
| 33 | - | <p>Two options:</p> | |
| 34 | - | <ul> | |
| 35 | - | <li><strong>Single creator</strong>: Click <strong>Checkout</strong> | |
| 36 | - | under a specific creator’s items to pay for just that group</li> | |
| 37 | - | <li><strong>All creators</strong>: Click <strong>Checkout All</strong> | |
| 38 | - | to process every creator in sequence</li> | |
| 39 | - | </ul> | |
| 40 | - | <p>Each creator gets a separate Stripe Checkout session routed to their | |
| 41 | - | connected account. After completing one, you’re automatically directed | |
| 42 | - | to the next. Items are removed from your cart as each payment | |
| 43 | - | completes.</p> | |
| 44 | - | <p>If checkout is interrupted partway through a multi-creator flow, | |
| 45 | - | completed purchases are saved and remaining items stay in your cart for | |
| 46 | - | later.</p> | |
| 47 | - | <h2 id="promo-codes">Promo Codes</h2> | |
| 48 | - | <p>Enter a promo code in the checkout form for a specific creator’s | |
| 49 | - | items. Discount and free access codes work in cart checkout. Free trial | |
| 50 | - | codes are for subscriptions only and cannot be used in the cart.</p> | |
| 51 | - | <p>If a code reduces an item to $0, that item is claimed as a free | |
| 52 | - | purchase before the Stripe session starts.</p> | |
| 53 | - | <p>Promo codes cannot be applied to pay-what-you-want items.</p> | |
| 54 | - | <h2 id="limits-and-edge-cases">Limits and Edge Cases</h2> | |
| 55 | - | <ul> | |
| 56 | - | <li>No hard limit on cart size, but items must be public and available | |
| 57 | - | at checkout time</li> | |
| 58 | - | <li>Unpublished or deleted items are automatically removed</li> | |
| 59 | - | <li>Items you already own are filtered out at checkout</li> | |
| 60 | - | <li>If a creator has paused their account, checkout for their items is | |
| 61 | - | blocked until they resume</li> | |
| 62 | - | <li>Stale cart items (older than 90 days) are cleaned up | |
| 63 | - | automatically</li> | |
| 64 | - | </ul> | |
| 65 | - | <h2 id="see-also">See Also</h2> | |
| 66 | - | <ul> | |
| 67 | - | <li><a href="./fan-guide.html">Fan Guide</a> – overview of purchasing on | |
| 68 | - | the platform</li> | |
| 69 | - | <li><a href="./promo-codes.html">Promo Codes</a> – creating and using | |
| 70 | - | discount codes</li> | |
| 71 | - | <li><a href="./pricing.html">Pricing</a> – pay-what-you-want and fixed | |
| 72 | - | pricing</li> | |
| 73 | - | </ul> | |
| 74 | - | </article> | |
| 75 | - | </body> | |
| 76 | - | </html> |
| @@ -1,78 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Code of Conduct — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Support</nav> | |
| 14 | - | <h1>Code of Conduct<span class="dot">.</span></h1> | |
| 15 | - | <p>Applies to platform-operated spaces: official channels, direct | |
| 16 | - | communication with us, and the platform forum at <a | |
| 17 | - | href="https://forums.makenot.work">forums.makenot.work</a>. Creator-run | |
| 18 | - | forums have their own rules.</p> | |
| 19 | - | <hr /> | |
| 20 | - | <h2 id="the-short-version">The Short Version</h2> | |
| 21 | - | <p>Be decent. Assume good faith. Stay on topic.</p> | |
| 22 | - | <hr /> | |
| 23 | - | <h2 id="expected-behavior">Expected Behavior</h2> | |
| 24 | - | <ul> | |
| 25 | - | <li><strong>Treat people with respect</strong>: Disagreement is fine; | |
| 26 | - | personal attacks aren’t</li> | |
| 27 | - | <li><strong>Stay on topic</strong>: Platform forums are for platform | |
| 28 | - | discussion</li> | |
| 29 | - | <li><strong>Give constructive feedback</strong>: “This doesn’t work for | |
| 30 | - | me because X” is useful; “this sucks” isn’t</li> | |
| 31 | - | <li><strong>Respect privacy</strong>: Don’t share others’ personal | |
| 32 | - | information</li> | |
| 33 | - | </ul> | |
| 34 | - | <h2 id="unacceptable-behavior">Unacceptable Behavior</h2> | |
| 35 | - | <ul> | |
| 36 | - | <li><strong>Harassment</strong>: Sustained unwanted contact, threats, or | |
| 37 | - | intimidation</li> | |
| 38 | - | <li><strong>Discrimination</strong>: Attacks based on identity, | |
| 39 | - | background, or protected characteristics</li> | |
| 40 | - | <li><strong>Spam</strong>: Promotional content, repetitive posts, | |
| 41 | - | off-topic solicitation</li> | |
| 42 | - | <li><strong>Doxxing</strong>: Sharing private information without | |
| 43 | - | consent</li> | |
| 44 | - | <li><strong>Bad faith participation</strong>: Trolling, intentional | |
| 45 | - | disruption, sea-lioning</li> | |
| 46 | - | </ul> | |
| 47 | - | <h2 id="enforcement">Enforcement</h2> | |
| 48 | - | <ol type="1"> | |
| 49 | - | <li><strong>Direct message</strong>: Most first violations get a note | |
| 50 | - | explaining the issue</li> | |
| 51 | - | <li><strong>Temporary suspension</strong>: Repeated issues or serious | |
| 52 | - | violations</li> | |
| 53 | - | <li><strong>Permanent ban</strong>: Sustained bad behavior or egregious | |
| 54 | - | violations</li> | |
| 55 | - | </ol> | |
| 56 | - | <p>We try to be fair and explain our reasoning, but we don’t have | |
| 57 | - | elaborate appeals processes.</p> | |
| 58 | - | <h2 id="reporting">Reporting</h2> | |
| 59 | - | <p>Email <a | |
| 60 | - | href="mailto:community@makenot.work">community@makenot.work</a> | |
| 61 | - | with:</p> | |
| 62 | - | <ul> | |
| 63 | - | <li>Link to the content or behavior</li> | |
| 64 | - | <li>Brief description of the issue</li> | |
| 65 | - | </ul> | |
| 66 | - | <p>We review reports and respond within 3 business days.</p> | |
| 67 | - | <h2 id="for-creator-forums">For Creator Forums</h2> | |
| 68 | - | <p>Creators set their own community standards. If you have issues with a | |
| 69 | - | creator’s forum, contact the creator directly. We only intervene for | |
| 70 | - | legal violations or content that harms the broader platform.</p> | |
| 71 | - | <h2 id="see-also">See Also</h2> | |
| 72 | - | <ul> | |
| 73 | - | <li><a href="./forums.html">Forums & Discussion</a>: Our community | |
| 74 | - | philosophy and forum details</li> | |
| 75 | - | </ul> | |
| 76 | - | </article> | |
| 77 | - | </body> | |
| 78 | - | </html> |
| @@ -1,68 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Collections — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Guide</nav> | |
| 14 | - | <h1>Collections<span class="dot">.</span></h1> | |
| 15 | - | <p>Group items across projects into lists: “Best of” compilations, | |
| 16 | - | themed sets, staff picks, or any grouping that cuts across your project | |
| 17 | - | structure.</p> | |
| 18 | - | <h2 id="creating-a-collection">Creating a Collection</h2> | |
| 19 | - | <ol type="1"> | |
| 20 | - | <li>Go to your <strong>Library</strong> and open the | |
| 21 | - | <strong>Collections</strong> tab</li> | |
| 22 | - | <li>Click <strong>New Collection</strong></li> | |
| 23 | - | <li>Enter a title, an optional description, and a URL slug</li> | |
| 24 | - | <li>Choose whether the collection is public or private</li> | |
| 25 | - | </ol> | |
| 26 | - | <p>You can create up to 50 collections.</p> | |
| 27 | - | <h2 id="adding-items">Adding Items</h2> | |
| 28 | - | <p>Any public item on the platform can be saved to your collections:</p> | |
| 29 | - | <p><strong>From an item page</strong>: Click “Save to collection” below | |
| 30 | - | the purchase buttons. The dropdown lets you check/uncheck collections or | |
| 31 | - | create a new one inline.</p> | |
| 32 | - | <blockquote> | |
| 33 | - | <p>[!UI] collection-picker The collection picker with inline | |
| 34 | - | creation</p> | |
| 35 | - | </blockquote> | |
| 36 | - | <p><strong>From discover results</strong>: Each item card shows a “+” | |
| 37 | - | button (visible when signed in) to open the collection picker without | |
| 38 | - | leaving the page.</p> | |
| 39 | - | <p><strong>From your library</strong>: In the Purchases tab, click the | |
| 40 | - | “…” menu on any item and choose “Add to collection”.</p> | |
| 41 | - | <p>Each collection can hold up to 200 items. Only public items can be | |
| 42 | - | added; draft or unlisted items are not eligible.</p> | |
| 43 | - | <h2 id="reordering">Reordering</h2> | |
| 44 | - | <p>Reorder items by drag-and-drop on the collection edit page.</p> | |
| 45 | - | <h2 id="public-urls">Public URLs</h2> | |
| 46 | - | <p>Public collections are visible at | |
| 47 | - | <code>/c/your-username/collection-slug</code> and linked from your | |
| 48 | - | profile. Private collections are only visible to you.</p> | |
| 49 | - | <h2 id="editing-and-deleting">Editing and Deleting</h2> | |
| 50 | - | <p>From the collection edit page you can:</p> | |
| 51 | - | <ul> | |
| 52 | - | <li><strong>Update</strong> the title, description, or visibility</li> | |
| 53 | - | <li><strong>Remove</strong> individual items without affecting the items | |
| 54 | - | themselves</li> | |
| 55 | - | <li><strong>Delete</strong> the entire collection (items are not | |
| 56 | - | deleted, only the grouping)</li> | |
| 57 | - | </ul> | |
| 58 | - | <h2 id="see-also">See Also</h2> | |
| 59 | - | <ul> | |
| 60 | - | <li><a href="./02-content.html">Content & Items</a>: Creating and | |
| 61 | - | managing items</li> | |
| 62 | - | <li><a href="./tags.html">Tags</a>: Organizing items with tags</li> | |
| 63 | - | <li><a href="./projects.html">Projects</a>: Project-level | |
| 64 | - | organization</li> | |
| 65 | - | </ul> | |
| 66 | - | </article> | |
| 67 | - | </body> | |
| 68 | - | </html> |
| @@ -1,469 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>How We Compare — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / About</nav> | |
| 14 | - | <h1>How We Compare<span class="dot">.</span></h1> | |
| 15 | - | <p>What you keep on Makenot.work versus other platforms at $500, $2,000, | |
| 16 | - | and $10,000/month revenue.</p> | |
| 17 | - | <hr /> | |
| 18 | - | <h2 id="fee-comparison">Fee Comparison</h2> | |
| 19 | - | <p>All numbers assume US Stripe rates (2.9% + $0.30) and an | |
| 20 | - | <strong>average fan transaction of $10</strong>. Per-transaction cost | |
| 21 | - | depends on sale count, not just gross revenue; see <a | |
| 22 | - | href="./how-we-work.html#the-math">How We Work § The Math</a> for the | |
| 23 | - | full breakdown. Patreon’s row uses their “Pro” tier (8%); their Lite | |
| 24 | - | (5%) and Premium (12%) tiers shift the column up and down | |
| 25 | - | respectively.</p> | |
| 26 | - | <p>The Makenot.work range reflects the lowest tier ($16, Basic) at the | |
| 27 | - | high end and the highest tier ($60, Everything) at the low end.</p> | |
| 28 | - | <h3 id="at-500month-revenue-50-sales--10">At $500/month revenue (50 | |
| 29 | - | sales × $10)</h3> | |
| 30 | - | <table> | |
| 31 | - | <thead> | |
| 32 | - | <tr> | |
| 33 | - | <th>Platform</th> | |
| 34 | - | <th style="text-align: right;">Platform fee</th> | |
| 35 | - | <th style="text-align: right;">Processing</th> | |
| 36 | - | <th style="text-align: right;">You keep</th> | |
| 37 | - | </tr> | |
| 38 | - | </thead> | |
| 39 | - | <tbody> | |
| 40 | - | <tr> | |
| 41 | - | <td><strong>Makenot.work</strong></td> | |
| 42 | - | <td style="text-align: right;">0% + $16-60 sub</td> | |
| 43 | - | <td style="text-align: right;">~$29.50</td> | |
| 44 | - | <td style="text-align: right;"><strong>$410-454</strong></td> | |
| 45 | - | </tr> | |
| 46 | - | <tr> | |
| 47 | - | <td>Bandcamp</td> | |
| 48 | - | <td style="text-align: right;">15% = $75</td> | |
| 49 | - | <td style="text-align: right;">~$29.50</td> | |
| 50 | - | <td style="text-align: right;">$395</td> | |
| 51 | - | </tr> | |
| 52 | - | <tr> | |
| 53 | - | <td>Gumroad</td> | |
| 54 | - | <td style="text-align: right;">10% = $50</td> | |
| 55 | - | <td style="text-align: right;">included</td> | |
| 56 | - | <td style="text-align: right;">$450</td> | |
| 57 | - | </tr> | |
| 58 | - | <tr> | |
| 59 | - | <td>itch.io (default)</td> | |
| 60 | - | <td style="text-align: right;">10% = $50</td> | |
| 61 | - | <td style="text-align: right;">~$29.50</td> | |
| 62 | - | <td style="text-align: right;">$420</td> | |
| 63 | - | </tr> | |
| 64 | - | <tr> | |
| 65 | - | <td>Patreon (Pro)</td> | |
| 66 | - | <td style="text-align: right;">8% = $40</td> | |
| 67 | - | <td style="text-align: right;">2.9%+$0.30 = ~$29.50</td> | |
| 68 | - | <td style="text-align: right;">$430</td> | |
| 69 | - | </tr> | |
| 70 | - | </tbody> | |
| 71 | - | </table> | |
| 72 | - | <h3 id="at-2000month-revenue-200-sales--10">At $2,000/month revenue (200 | |
| 73 | - | sales × $10)</h3> | |
| 74 | - | <table> | |
| 75 | - | <thead> | |
| 76 | - | <tr> | |
| 77 | - | <th>Platform</th> | |
| 78 | - | <th style="text-align: right;">Platform fee</th> | |
| 79 | - | <th style="text-align: right;">Processing</th> | |
| 80 | - | <th style="text-align: right;">You keep</th> | |
| 81 | - | </tr> | |
| 82 | - | </thead> | |
| 83 | - | <tbody> | |
| 84 | - | <tr> | |
| 85 | - | <td><strong>Makenot.work</strong></td> | |
| 86 | - | <td style="text-align: right;">0% + $16-60 sub</td> | |
| 87 | - | <td style="text-align: right;">~$118</td> | |
| 88 | - | <td style="text-align: right;"><strong>$1,822-1,866</strong></td> | |
| 89 | - | </tr> | |
| 90 | - | <tr> | |
| 91 | - | <td>Bandcamp</td> | |
| 92 | - | <td style="text-align: right;">15% = $300</td> | |
| 93 | - | <td style="text-align: right;">~$118</td> | |
| 94 | - | <td style="text-align: right;">$1,582</td> | |
| 95 | - | </tr> | |
| 96 | - | <tr> | |
| 97 | - | <td>Gumroad</td> | |
| 98 | - | <td style="text-align: right;">10% = $200</td> | |
| 99 | - | <td style="text-align: right;">included</td> | |
| 100 | - | <td style="text-align: right;">$1,800</td> | |
| 101 | - | </tr> | |
| 102 | - | <tr> | |
| 103 | - | <td>itch.io (default)</td> | |
| 104 | - | <td style="text-align: right;">10% = $200</td> | |
| 105 | - | <td style="text-align: right;">~$118</td> | |
| 106 | - | <td style="text-align: right;">$1,682</td> | |
| 107 | - | </tr> | |
| 108 | - | <tr> | |
| 109 | - | <td>Patreon (Pro)</td> | |
| 110 | - | <td style="text-align: right;">8% = $160</td> | |
| 111 | - | <td style="text-align: right;">~$118</td> | |
| 112 | - | <td style="text-align: right;">$1,722</td> | |
| 113 | - | </tr> | |
| 114 | - | </tbody> | |
| 115 | - | </table> | |
| 116 | - | <h3 id="at-10000month-revenue-1000-sales--10">At $10,000/month revenue | |
| 117 | - | (1,000 sales × $10)</h3> | |
| 118 | - | <table> | |
| 119 | - | <thead> | |
| 120 | - | <tr> | |
| 121 | - | <th>Platform</th> | |
| 122 | - | <th style="text-align: right;">Platform fee</th> | |
| 123 | - | <th style="text-align: right;">Processing</th> | |
| 124 | - | <th style="text-align: right;">You keep</th> | |
| 125 | - | </tr> | |
| 126 | - | </thead> | |
| 127 | - | <tbody> | |
| 128 | - | <tr> | |
| 129 | - | <td><strong>Makenot.work</strong></td> | |
| 130 | - | <td style="text-align: right;">0% + $16-60 sub</td> | |
| 131 | - | <td style="text-align: right;">~$590</td> | |
| 132 | - | <td style="text-align: right;"><strong>$9,350-9,394</strong></td> | |
| 133 | - | </tr> | |
| 134 | - | <tr> | |
| 135 | - | <td>Bandcamp</td> | |
| 136 | - | <td style="text-align: right;">15% = $1,500</td> | |
| 137 | - | <td style="text-align: right;">~$590</td> | |
| 138 | - | <td style="text-align: right;">$7,910</td> | |
| 139 | - | </tr> | |
| 140 | - | <tr> | |
| 141 | - | <td>Gumroad</td> | |
| 142 | - | <td style="text-align: right;">10% = $1,000</td> | |
| 143 | - | <td style="text-align: right;">included</td> | |
| 144 | - | <td style="text-align: right;">$9,000</td> | |
| 145 | - | </tr> | |
| 146 | - | <tr> | |
| 147 | - | <td>itch.io (default)</td> | |
| 148 | - | <td style="text-align: right;">10% = $1,000</td> | |
| 149 | - | <td style="text-align: right;">~$590</td> | |
| 150 | - | <td style="text-align: right;">$8,410</td> | |
| 151 | - | </tr> | |
| 152 | - | <tr> | |
| 153 | - | <td>Patreon (Pro)</td> | |
| 154 | - | <td style="text-align: right;">8% = $800</td> | |
| 155 | - | <td style="text-align: right;">~$590</td> | |
| 156 | - | <td style="text-align: right;">$8,610</td> | |
| 157 | - | </tr> | |
| 158 | - | </tbody> | |
| 159 | - | </table> | |
| 160 | - | <p>The flat-fee model becomes more favorable as revenue grows. At | |
| 161 | - | $10,000/month you save <strong>$350-1,484/month</strong> versus | |
| 162 | - | percentage-cut platforms: about $350-394 versus Gumroad at the low end, | |
| 163 | - | up to $1,440-1,484 versus Bandcamp at the high end. itch.io and Patreon | |
| 164 | - | sit between those two endpoints.</p> | |
| 165 | - | <hr /> | |
| 166 | - | <h2 id="feature-comparison">Feature Comparison</h2> | |
| 167 | - | <table> | |
| 168 | - | <thead> | |
| 169 | - | <tr> | |
| 170 | - | <th>Feature</th> | |
| 171 | - | <th style="text-align: center;">Makenot.work</th> | |
| 172 | - | <th style="text-align: center;">Bandcamp</th> | |
| 173 | - | <th style="text-align: center;">Gumroad</th> | |
| 174 | - | <th style="text-align: center;">itch.io</th> | |
| 175 | - | <th style="text-align: center;">Patreon</th> | |
| 176 | - | </tr> | |
| 177 | - | </thead> | |
| 178 | - | <tbody> | |
| 179 | - | <tr> | |
| 180 | - | <td>Audio hosting + player</td> | |
| 181 | - | <td style="text-align: center;">Yes</td> | |
| 182 | - | <td style="text-align: center;">Yes</td> | |
| 183 | - | <td style="text-align: center;">No</td> | |
| 184 | - | <td style="text-align: center;">No</td> | |
| 185 | - | <td style="text-align: center;">No</td> | |
| 186 | - | </tr> | |
| 187 | - | <tr> | |
| 188 | - | <td>Video hosting + player</td> | |
| 189 | - | <td style="text-align: center;">Yes</td> | |
| 190 | - | <td style="text-align: center;">No</td> | |
| 191 | - | <td style="text-align: center;">No</td> | |
| 192 | - | <td style="text-align: center;">No</td> | |
| 193 | - | <td style="text-align: center;">Yes</td> | |
| 194 | - | </tr> | |
| 195 | - | <tr> | |
| 196 | - | <td>Software versioning + license keys</td> | |
| 197 | - | <td style="text-align: center;">Yes</td> | |
| 198 | - | <td style="text-align: center;">No</td> | |
| 199 | - | <td style="text-align: center;">Yes</td> | |
| 200 | - | <td style="text-align: center;">Yes</td> | |
| 201 | - | <td style="text-align: center;">No</td> | |
| 202 | - | </tr> | |
| 203 | - | <tr> | |
| 204 | - | <td>Git hosting</td> | |
| 205 | - | <td style="text-align: center;">Yes</td> | |
| 206 | - | <td style="text-align: center;">No</td> | |
| 207 | - | <td style="text-align: center;">No</td> | |
| 208 | - | <td style="text-align: center;">No</td> | |
| 209 | - | <td style="text-align: center;">No</td> | |
| 210 | - | </tr> | |
| 211 | - | <tr> | |
| 212 | - | <td>Memberships</td> | |
| 213 | - | <td style="text-align: center;">Yes</td> | |
| 214 | - | <td style="text-align: center;">Yes</td> | |
| 215 | - | <td style="text-align: center;">Yes</td> | |
| 216 | - | <td style="text-align: center;">No</td> | |
| 217 | - | <td style="text-align: center;">Yes</td> | |
| 218 | - | </tr> | |
| 219 | - | <tr> | |
| 220 | - | <td>Pay-what-you-want</td> | |
| 221 | - | <td style="text-align: center;">Yes</td> | |
| 222 | - | <td style="text-align: center;">Yes</td> | |
| 223 | - | <td style="text-align: center;">Yes</td> | |
| 224 | - | <td style="text-align: center;">Yes</td> | |
| 225 | - | <td style="text-align: center;">No</td> | |
| 226 | - | </tr> | |
| 227 | - | <tr> | |
| 228 | - | <td>Data export (full)</td> | |
| 229 | - | <td style="text-align: center;">Yes</td> | |
| 230 | - | <td style="text-align: center;">Partial</td> | |
| 231 | - | <td style="text-align: center;">Yes</td> | |
| 232 | - | <td style="text-align: center;">No</td> | |
| 233 | - | <td style="text-align: center;">Partial</td> | |
| 234 | - | </tr> | |
| 235 | - | <tr> | |
| 236 | - | <td>RSS feeds</td> | |
| 237 | - | <td style="text-align: center;">Yes</td> | |
| 238 | - | <td style="text-align: center;">Yes</td> | |
| 239 | - | <td style="text-align: center;">No</td> | |
| 240 | - | <td style="text-align: center;">No</td> | |
| 241 | - | <td style="text-align: center;">Yes</td> | |
| 242 | - | </tr> | |
| 243 | - | <tr> | |
| 244 | - | <td>Custom domains</td> | |
| 245 | - | <td style="text-align: center;">Yes</td> | |
| 246 | - | <td style="text-align: center;">No</td> | |
| 247 | - | <td style="text-align: center;">Yes</td> | |
| 248 | - | <td style="text-align: center;">No</td> | |
| 249 | - | <td style="text-align: center;">No</td> | |
| 250 | - | </tr> | |
| 251 | - | <tr> | |
| 252 | - | <td>Guest checkout (no account)</td> | |
| 253 | - | <td style="text-align: center;">Yes</td> | |
| 254 | - | <td style="text-align: center;">Yes</td> | |
| 255 | - | <td style="text-align: center;">Yes</td> | |
| 256 | - | <td style="text-align: center;">Yes</td> | |
| 257 | - | <td style="text-align: center;">No</td> | |
| 258 | - | </tr> | |
| 259 | - | <tr> | |
| 260 | - | <td>Source-available code</td> | |
| 261 | - | <td style="text-align: center;">Yes</td> | |
| 262 | - | <td style="text-align: center;">No</td> | |
| 263 | - | <td style="text-align: center;">No</td> | |
| 264 | - | <td style="text-align: center;">No</td> | |
| 265 | - | <td style="text-align: center;">No</td> | |
| 266 | - | </tr> | |
| 267 | - | </tbody> | |
| 268 | - | </table> | |
| 269 | - | <hr /> | |
| 270 | - | <h2 id="discovery-comparison">Discovery Comparison</h2> | |
| 271 | - | <table> | |
| 272 | - | <thead> | |
| 273 | - | <tr> | |
| 274 | - | <th>Feature</th> | |
| 275 | - | <th style="text-align: center;">Makenot.work</th> | |
| 276 | - | <th style="text-align: center;">Bandcamp</th> | |
| 277 | - | <th style="text-align: center;">Gumroad</th> | |
| 278 | - | <th style="text-align: center;">itch.io</th> | |
| 279 | - | <th style="text-align: center;">Patreon</th> | |
| 280 | - | </tr> | |
| 281 | - | </thead> | |
| 282 | - | <tbody> | |
| 283 | - | <tr> | |
| 284 | - | <td>Search by title/description</td> | |
| 285 | - | <td style="text-align: center;">Yes</td> | |
| 286 | - | <td style="text-align: center;">Yes</td> | |
| 287 | - | <td style="text-align: center;">Yes</td> | |
| 288 | - | <td style="text-align: center;">Yes</td> | |
| 289 | - | <td style="text-align: center;">Yes</td> | |
| 290 | - | </tr> | |
| 291 | - | <tr> | |
| 292 | - | <td>Tag/genre browsing</td> | |
| 293 | - | <td style="text-align: center;">Yes</td> | |
| 294 | - | <td style="text-align: center;">Yes</td> | |
| 295 | - | <td style="text-align: center;">No</td> | |
| 296 | - | <td style="text-align: center;">Yes</td> | |
| 297 | - | <td style="text-align: center;">No</td> | |
| 298 | - | </tr> | |
| 299 | - | <tr> | |
| 300 | - | <td>Filter by content type</td> | |
| 301 | - | <td style="text-align: center;">Yes</td> | |
| 302 | - | <td style="text-align: center;">Yes</td> | |
| 303 | - | <td style="text-align: center;">No</td> | |
| 304 | - | <td style="text-align: center;">Yes</td> | |
| 305 | - | <td style="text-align: center;">No</td> | |
| 306 | - | </tr> | |
| 307 | - | <tr> | |
| 308 | - | <td>Filter by price range</td> | |
| 309 | - | <td style="text-align: center;">Yes</td> | |
| 310 | - | <td style="text-align: center;">No</td> | |
| 311 | - | <td style="text-align: center;">No</td> | |
| 312 | - | <td style="text-align: center;">Yes</td> | |
| 313 | - | <td style="text-align: center;">No</td> | |
| 314 | - | </tr> | |
| 315 | - | <tr> | |
| 316 | - | <td>Sort by popularity</td> | |
| 317 | - | <td style="text-align: center;">Yes</td> | |
| 318 | - | <td style="text-align: center;">Yes</td> | |
| 319 | - | <td style="text-align: center;">No</td> | |
| 320 | - | <td style="text-align: center;">Yes</td> | |
| 321 | - | <td style="text-align: center;">No</td> | |
| 322 | - | </tr> | |
| 323 | - | <tr> | |
| 324 | - | <td>Chronological feed from follows</td> | |
| 325 | - | <td style="text-align: center;">Yes</td> | |
| 326 | - | <td style="text-align: center;">Yes</td> | |
| 327 | - | <td style="text-align: center;">No</td> | |
| 328 | - | <td style="text-align: center;">No</td> | |
| 329 | - | <td style="text-align: center;">Yes</td> | |
| 330 | - | </tr> | |
| 331 | - | <tr> | |
| 332 | - | <td>Editorial/staff picks</td> | |
| 333 | - | <td style="text-align: center;">No</td> | |
| 334 | - | <td style="text-align: center;">Yes</td> | |
| 335 | - | <td style="text-align: center;">No</td> | |
| 336 | - | <td style="text-align: center;">No</td> | |
| 337 | - | <td style="text-align: center;">No</td> | |
| 338 | - | </tr> | |
| 339 | - | <tr> | |
| 340 | - | <td>Algorithmic recommendations</td> | |
| 341 | - | <td style="text-align: center;">No</td> | |
| 342 | - | <td style="text-align: center;">No</td> | |
| 343 | - | <td style="text-align: center;">No</td> | |
| 344 | - | <td style="text-align: center;">No</td> | |
| 345 | - | <td style="text-align: center;">Yes</td> | |
| 346 | - | </tr> | |
| 347 | - | </tbody> | |
| 348 | - | </table> | |
| 349 | - | <p>Discovery is driven entirely by fan intent: search, filters, tags, | |
| 350 | - | feeds, sorting. No algorithmic recommendations, behavioral tracking, or | |
| 351 | - | editorial curation.</p> | |
| 352 | - | <hr /> | |
| 353 | - | <h2 id="pricing-model-comparison">Pricing Model Comparison</h2> | |
| 354 | - | <table> | |
| 355 | - | <thead> | |
| 356 | - | <tr> | |
| 357 | - | <th></th> | |
| 358 | - | <th>Makenot.work</th> | |
| 359 | - | <th>Bandcamp</th> | |
| 360 | - | <th>Gumroad</th> | |
| 361 | - | <th>itch.io</th> | |
| 362 | - | <th>Patreon</th> | |
| 363 | - | </tr> | |
| 364 | - | </thead> | |
| 365 | - | <tbody> | |
| 366 | - | <tr> | |
| 367 | - | <td><strong>Model</strong></td> | |
| 368 | - | <td>Flat monthly ($16-60)</td> | |
| 369 | - | <td>% of revenue</td> | |
| 370 | - | <td>% of revenue</td> | |
| 371 | - | <td>% of revenue (optional)</td> | |
| 372 | - | <td>% of revenue</td> | |
| 373 | - | </tr> | |
| 374 | - | <tr> | |
| 375 | - | <td><strong>Platform cut</strong></td> | |
| 376 | - | <td>0%</td> | |
| 377 | - | <td>15%</td> | |
| 378 | - | <td>10%</td> | |
| 379 | - | <td>0-10% (creator sets)</td> | |
| 380 | - | <td>5-12%</td> | |
| 381 | - | </tr> | |
| 382 | - | <tr> | |
| 383 | - | <td><strong>Processing</strong></td> | |
| 384 | - | <td>~3% (Stripe)</td> | |
| 385 | - | <td>~3% (Stripe)</td> | |
| 386 | - | <td>included in 10%</td> | |
| 387 | - | <td>~3%</td> | |
| 388 | - | <td>~3%</td> | |
| 389 | - | </tr> | |
| 390 | - | <tr> | |
| 391 | - | <td><strong>Break-even vs 15%</strong></td> | |
| 392 | - | <td>~$107-400/mo revenue</td> | |
| 393 | - | <td>N/A</td> | |
| 394 | - | <td>N/A</td> | |
| 395 | - | <td>N/A</td> | |
| 396 | - | <td>N/A</td> | |
| 397 | - | </tr> | |
| 398 | - | <tr> | |
| 399 | - | <td><strong>Break-even vs 10%</strong></td> | |
| 400 | - | <td>~$160-600/mo revenue</td> | |
| 401 | - | <td>N/A</td> | |
| 402 | - | <td>N/A</td> | |
| 403 | - | <td>N/A</td> | |
| 404 | - | <td>N/A</td> | |
| 405 | - | </tr> | |
| 406 | - | <tr> | |
| 407 | - | <td><strong>Break-even vs 8%</strong></td> | |
| 408 | - | <td>~$200-750/mo revenue</td> | |
| 409 | - | <td>N/A</td> | |
| 410 | - | <td>N/A</td> | |
| 411 | - | <td>N/A</td> | |
| 412 | - | <td>N/A</td> | |
| 413 | - | </tr> | |
| 414 | - | </tbody> | |
| 415 | - | </table> | |
| 416 | - | <p>Break-even is <code>subscription / platform-percentage</code>. Below | |
| 417 | - | that revenue, the percentage-cut platform costs you less; above it, the | |
| 418 | - | flat fee wins and the gap widens with every dollar earned. The ranges | |
| 419 | - | above span the Basic tier ($16) at the low end to Everything ($60) at | |
| 420 | - | the high end.</p> | |
| 421 | - | <hr /> | |
| 422 | - | <h2 id="what-we-dont-do">What We Don’t Do</h2> | |
| 423 | - | <p>Things other platforms offer that we deliberately exclude:</p> | |
| 424 | - | <ul> | |
| 425 | - | <li><strong>Algorithmic feed</strong>: Content shown by fan choices, not | |
| 426 | - | engagement metrics</li> | |
| 427 | - | <li><strong>Promoted listings</strong>: No paid placement in search or | |
| 428 | - | discover</li> | |
| 429 | - | <li><strong>DRM</strong>: Purchased files are yours, unencrypted, | |
| 430 | - | forever</li> | |
| 431 | - | <li><strong>Advertising</strong>: No ads on your pages or your fans’ | |
| 432 | - | experience</li> | |
| 433 | - | <li><strong>Behavioral tracking</strong>: No profiles, no | |
| 434 | - | fingerprinting, no cross-site tracking</li> | |
| 435 | - | </ul> | |
| 436 | - | <p>These are design decisions, not missing features. See <a | |
| 437 | - | href="./guarantees.html">What We Guarantee</a> for binding | |
| 438 | - | commitments.</p> | |
| 439 | - | <hr /> | |
| 440 | - | <h2 id="when-were-not-the-right-fit">When We’re Not the Right Fit</h2> | |
| 441 | - | <p>Be honest about what you need:</p> | |
| 442 | - | <ul> | |
| 443 | - | <li><strong>You need algorithmic amplification.</strong> If you have no | |
| 444 | - | existing audience and need a platform to surface your work via | |
| 445 | - | recommendations, Bandcamp’s editorial picks or YouTube’s algorithm will | |
| 446 | - | serve you better today.</li> | |
| 447 | - | <li><strong>You earn under $107/month.</strong> A 10-15% cut costs less | |
| 448 | - | than our $16 minimum. itch.io’s optional revenue share (including 0%) is | |
| 449 | - | hard to beat at small scale.</li> | |
| 450 | - | <li><strong>You need community features.</strong> If comments, polls, | |
| 451 | - | and DMs with fans are core to your model, Patreon has those. We have | |
| 452 | - | forums.</li> | |
| 453 | - | <li><strong>You sell physical products.</strong> We don’t handle | |
| 454 | - | shipping, inventory, or physical fulfillment.</li> | |
| 455 | - | </ul> | |
| 456 | - | <p>We’d rather you pick the right platform than sign up and be | |
| 457 | - | disappointed.</p> | |
| 458 | - | <hr /> | |
| 459 | - | <h2 id="see-also">See Also</h2> | |
| 460 | - | <ul> | |
| 461 | - | <li><a href="./economics.html">Platform Economics</a>: What it costs to | |
| 462 | - | run, where the money goes</li> | |
| 463 | - | <li><a href="./tiers.html">Pricing Tiers</a>: What each tier | |
| 464 | - | includes</li> | |
| 465 | - | <li><a href="./story.html">Our Story</a>: Why we built this</li> | |
| 466 | - | </ul> | |
| 467 | - | </article> | |
| 468 | - | </body> | |
| 469 | - | </html> |
| @@ -1,126 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Contact Sharing — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Guide</nav> | |
| 14 | - | <h1>Contact Sharing<span class="dot">.</span></h1> | |
| 15 | - | <p>When a fan buys from you, they can choose to share their email – a | |
| 16 | - | direct line to your audience that doesn’t depend on any platform, | |
| 17 | - | including this one.</p> | |
| 18 | - | <h2 id="how-it-works">How It Works</h2> | |
| 19 | - | <ol type="1"> | |
| 20 | - | <li>Fan purchases one of your items</li> | |
| 21 | - | <li>During checkout, they see: “Share my email with the creator”</li> | |
| 22 | - | <li>If they opt in, their email appears in your contact list</li> | |
| 23 | - | </ol> | |
| 24 | - | <p>The choice appears at every checkout. A fan can share on one purchase | |
| 25 | - | and decline on the next. Each decision applies only to that | |
| 26 | - | transaction.</p> | |
| 27 | - | <p>Fans who don’t check the box remain anonymous in your records. They | |
| 28 | - | can still reach you through the platform for support – it just means you | |
| 29 | - | can’t contact them directly.</p> | |
| 30 | - | <h2 id="accessing-your-contacts">Accessing Your Contacts</h2> | |
| 31 | - | <p>Dashboard > Payments > Export. The CSV includes transaction | |
| 32 | - | details and, for fans who opted in, their email addresses.</p> | |
| 33 | - | <h2 id="what-to-do-with-your-contacts">What to Do with Your | |
| 34 | - | Contacts</h2> | |
| 35 | - | <h3 id="start-a-newsletter">Start a Newsletter</h3> | |
| 36 | - | <p>Import your contacts into a newsletter service and send updates | |
| 37 | - | directly. Most newsletter services accept CSV import.</p> | |
| 38 | - | <h3 id="announce-releases">Announce Releases</h3> | |
| 39 | - | <p>A short email when you release something new reaches fans more | |
| 40 | - | reliably than a social media post.</p> | |
| 41 | - | <h3 id="build-off-platform-relationships">Build Off-Platform | |
| 42 | - | Relationships</h3> | |
| 43 | - | <p>Your audience belongs to you, not to us. Export your contacts | |
| 44 | - | regularly and keep your own copy.</p> | |
| 45 | - | <h2 id="the-trust-dynamic">The Trust Dynamic</h2> | |
| 46 | - | <p>Fans who share their email are extending trust. That trust is easy to | |
| 47 | - | break and hard to rebuild.</p> | |
| 48 | - | <p><strong>Do:</strong></p> | |
| 49 | - | <ul> | |
| 50 | - | <li>Email when you have something to say (new release, important update, | |
| 51 | - | genuine news)</li> | |
| 52 | - | <li>Keep emails infrequent enough that each one feels worth opening</li> | |
| 53 | - | <li>Make unsubscribing easy (every newsletter service handles this)</li> | |
| 54 | - | </ul> | |
| 55 | - | <p><strong>Don’t:</strong></p> | |
| 56 | - | <ul> | |
| 57 | - | <li>Email daily or weekly unless you established that cadence | |
| 58 | - | upfront</li> | |
| 59 | - | <li>Share fan emails with third parties</li> | |
| 60 | - | <li>Add people to multiple lists without asking</li> | |
| 61 | - | <li>Send purely promotional content with no substance</li> | |
| 62 | - | </ul> | |
| 63 | - | <p>One good email per release beats ten forgettable ones per month.</p> | |
| 64 | - | <h2 id="for-fans">For Fans</h2> | |
| 65 | - | <h3 id="why-share-your-email">Why Share Your Email?</h3> | |
| 66 | - | <p>Creators who have your email can send you updates directly, reach you | |
| 67 | - | if the platform changes, and build a relationship that outlasts any | |
| 68 | - | single platform.</p> | |
| 69 | - | <h3 id="who-can-see-it">Who Can See It</h3> | |
| 70 | - | <table> | |
| 71 | - | <thead> | |
| 72 | - | <tr> | |
| 73 | - | <th></th> | |
| 74 | - | <th>Can See Your Email</th> | |
| 75 | - | </tr> | |
| 76 | - | </thead> | |
| 77 | - | <tbody> | |
| 78 | - | <tr> | |
| 79 | - | <td>The creator you shared with</td> | |
| 80 | - | <td>Yes</td> | |
| 81 | - | </tr> | |
| 82 | - | <tr> | |
| 83 | - | <td>Makenot.work (stored in database)</td> | |
| 84 | - | <td>Yes</td> | |
| 85 | - | </tr> | |
| 86 | - | <tr> | |
| 87 | - | <td>Other creators</td> | |
| 88 | - | <td>No</td> | |
| 89 | - | </tr> | |
| 90 | - | <tr> | |
| 91 | - | <td>Anyone else</td> | |
| 92 | - | <td>No</td> | |
| 93 | - | </tr> | |
| 94 | - | </tbody> | |
| 95 | - | </table> | |
| 96 | - | <p>Each share is specific to one creator. Sharing with Creator A doesn’t | |
| 97 | - | share with Creator B.</p> | |
| 98 | - | <h3 id="managing-your-shares">Managing Your Shares</h3> | |
| 99 | - | <p>Go to your <strong>Library</strong> page to:</p> | |
| 100 | - | <ul> | |
| 101 | - | <li>See which creators have your email</li> | |
| 102 | - | <li>Revoke access (removes your contact from their dashboard)</li> | |
| 103 | - | </ul> | |
| 104 | - | <p>Revoking removes you from the creator’s contact list going forward. | |
| 105 | - | It doesn’t delete copies they already exported.</p> | |
| 106 | - | <h3 id="privacy">Privacy</h3> | |
| 107 | - | <ul> | |
| 108 | - | <li>Your email is stored in our database, linked only to the creator you | |
| 109 | - | shared with</li> | |
| 110 | - | <li>Creators can export it as CSV</li> | |
| 111 | - | <li>You can share or revoke at any time</li> | |
| 112 | - | <li>We don’t sell or share contact data (see our <a | |
| 113 | - | href="./privacy-policy.html">Privacy Policy</a>)</li> | |
| 114 | - | </ul> | |
| 115 | - | <h2 id="see-also">See Also</h2> | |
| 116 | - | <ul> | |
| 117 | - | <li><a href="./best-practices.html">Best Practices</a>: Building fan | |
| 118 | - | relationships</li> | |
| 119 | - | <li><a href="./analytics.html">Analytics & Dashboard</a>: Revenue, | |
| 120 | - | transactions, and fan metrics</li> | |
| 121 | - | <li><a href="./03-selling.html">Pricing & Monetization</a>: Selling | |
| 122 | - | your work</li> | |
| 123 | - | </ul> | |
| 124 | - | </article> | |
| 125 | - | </body> | |
| 126 | - | </html> |
| @@ -1,114 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Contact — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Support</nav> | |
| 14 | - | <h1>Contact<span class="dot">.</span></h1> | |
| 15 | - | <p>One person runs this platform. Responses are direct and personal, but | |
| 16 | - | there’s no 24/7 support team. If you write at 2am, you’ll hear back | |
| 17 | - | during business hours.</p> | |
| 18 | - | <p>Every response is written by a human. No AI chatbots, no | |
| 19 | - | auto-generated replies. It may not always be immediate, but it will | |
| 20 | - | always be a real person who read what you wrote.</p> | |
| 21 | - | <h2 id="before-reaching-out">Before Reaching Out</h2> | |
| 22 | - | <p>We monitor proactively. Automated checks flag failed payments, | |
| 23 | - | unmatched refunds, license key errors, malware quarantines, service | |
| 24 | - | degradation, and email delivery problems. When something affects your | |
| 25 | - | account, we’ll often reach out before you notice. Check your inbox | |
| 26 | - | before submitting a new request.</p> | |
| 27 | - | <p>Your answer might also already be here:</p> | |
| 28 | - | <ul> | |
| 29 | - | <li><a href="./faq.html">FAQ</a>: common questions and hard | |
| 30 | - | questions</li> | |
| 31 | - | <li><a href="./guarantees.html">What We Guarantee</a>: what we commit | |
| 32 | - | to</li> | |
| 33 | - | <li><a href="./how-we-work.html">How We Work</a>: pricing, payments, | |
| 34 | - | data export</li> | |
| 35 | - | </ul> | |
| 36 | - | <h2 id="email">Email</h2> | |
| 37 | - | <p><strong>General support</strong>: <a | |
| 38 | - | href="mailto:info@makenot.work">info@makenot.work</a></p> | |
| 39 | - | <p>Response time: within 24 hours.</p> | |
| 40 | - | <h3 id="what-to-include">What to Include</h3> | |
| 41 | - | <ul> | |
| 42 | - | <li>Your username</li> | |
| 43 | - | <li>What you expected to happen</li> | |
| 44 | - | <li>What actually happened</li> | |
| 45 | - | <li>Screenshots if relevant</li> | |
| 46 | - | <li>Browser and device (for technical issues)</li> | |
| 47 | - | </ul> | |
| 48 | - | <h2 id="specific-inquiries">Specific Inquiries</h2> | |
| 49 | - | <table> | |
| 50 | - | <thead> | |
| 51 | - | <tr> | |
| 52 | - | <th>Topic</th> | |
| 53 | - | <th>Email</th> | |
| 54 | - | </tr> | |
| 55 | - | </thead> | |
| 56 | - | <tbody> | |
| 57 | - | <tr> | |
| 58 | - | <td>General support</td> | |
| 59 | - | <td><a href="mailto:info@makenot.work">info@makenot.work</a></td> | |
| 60 | - | </tr> | |
| 61 | - | <tr> | |
| 62 | - | <td>Billing/payments</td> | |
| 63 | - | <td><a href="mailto:billing@makenot.work">billing@makenot.work</a></td> | |
| 64 | - | </tr> | |
| 65 | - | <tr> | |
| 66 | - | <td>Security issues</td> | |
| 67 | - | <td><a | |
| 68 | - | href="mailto:security@makenot.work">security@makenot.work</a></td> | |
| 69 | - | </tr> | |
| 70 | - | <tr> | |
| 71 | - | <td>DMCA/copyright</td> | |
| 72 | - | <td><a href="mailto:dmca@makenot.work">dmca@makenot.work</a></td> | |
| 73 | - | </tr> | |
| 74 | - | <tr> | |
| 75 | - | <td>Privacy/data</td> | |
| 76 | - | <td><a href="mailto:privacy@makenot.work">privacy@makenot.work</a></td> | |
| 77 | - | </tr> | |
| 78 | - | <tr> | |
| 79 | - | <td>Moderation appeals</td> | |
| 80 | - | <td><a href="mailto:appeals@makenot.work">appeals@makenot.work</a></td> | |
| 81 | - | </tr> | |
| 82 | - | <tr> | |
| 83 | - | <td>Press inquiries</td> | |
| 84 | - | <td><a href="mailto:press@makenot.work">press@makenot.work</a></td> | |
| 85 | - | </tr> | |
| 86 | - | </tbody> | |
| 87 | - | </table> | |
| 88 | - | <h2 id="bug-reports--feature-requests">Bug Reports & Feature | |
| 89 | - | Requests</h2> | |
| 90 | - | <p>Email <a href="mailto:info@makenot.work">info@makenot.work</a> with | |
| 91 | - | reproduction steps for bugs, or your suggestion for features.</p> | |
| 92 | - | <h2 id="what-we-cant-help-with">What We Can’t Help With</h2> | |
| 93 | - | <ul> | |
| 94 | - | <li>Creator-specific refunds (contact the creator directly)</li> | |
| 95 | - | <li>Content disputes between creators (we’re not arbiters)</li> | |
| 96 | - | </ul> | |
| 97 | - | <h2 id="response-priority">Response Priority</h2> | |
| 98 | - | <ol type="1"> | |
| 99 | - | <li>Security issues (same day)</li> | |
| 100 | - | <li>Payment/billing problems (24 hours)</li> | |
| 101 | - | <li>Account access issues (24 hours)</li> | |
| 102 | - | <li>General questions (1-2 business days)</li> | |
| 103 | - | <li>Feature requests (tracked, no timeline)</li> | |
| 104 | - | </ol> | |
| 105 | - | <h2 id="see-also">See Also</h2> | |
| 106 | - | <ul> | |
| 107 | - | <li><a href="./faq.html">FAQ</a>: answers to common and hard | |
| 108 | - | questions</li> | |
| 109 | - | <li><a href="./roadmap.html">Roadmap</a>: what’s built and what’s | |
| 110 | - | next</li> | |
| 111 | - | </ul> | |
| 112 | - | </article> | |
| 113 | - | </body> | |
| 114 | - | </html> |
| @@ -1,169 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Copyright & DMCA — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Legal</nav> | |
| 14 | - | <h1>Copyright & DMCA<span class="dot">.</span></h1> | |
| 15 | - | <p>How we handle copyright on Makenot.work.</p> | |
| 16 | - | <hr /> | |
| 17 | - | <h2 id="our-position">Our Position</h2> | |
| 18 | - | <p>When you upload content to Makenot.work, you retain all rights. We | |
| 19 | - | don’t claim any ownership, and our license to your content is limited to | |
| 20 | - | what’s necessary to operate the platform (displaying it to fans, | |
| 21 | - | generating thumbnails, etc.).</p> | |
| 22 | - | <hr /> | |
| 23 | - | <h2 id="dmca-compliance">DMCA Compliance</h2> | |
| 24 | - | <p>We comply with the Digital Millennium Copyright Act (DMCA). We | |
| 25 | - | respond to valid takedown notices and have procedures for handling | |
| 26 | - | copyright disputes.</p> | |
| 27 | - | <p><strong>Handled by email, not in-app.</strong> The DMCA workflow on | |
| 28 | - | Makenot.work (takedown notices, counter-notifications, the statutory | |
| 29 | - | waiting period, and repeat-infringer tracking) runs through the | |
| 30 | - | designated agent email below, reviewed by a human. There is no | |
| 31 | - | self-serve in-app filing form today. We respond within the statutory | |
| 32 | - | window. In-app tooling for filing, tracking, and counter-notification is | |
| 33 | - | on the roadmap; this page describes how the process works regardless of | |
| 34 | - | where you submit.</p> | |
| 35 | - | <h3 id="designated-agent">Designated Agent</h3> | |
| 36 | - | <p>DMCA takedown notices should be sent to:</p> | |
| 37 | - | <p><strong>Email:</strong> <a | |
| 38 | - | href="mailto:dmca@makenot.work">dmca@makenot.work</a></p> | |
| 39 | - | <p><strong>Mail:</strong> Make Creative, LLC ATTN: DMCA Agent 2055 Main | |
| 40 | - | St, Apt 502 Irvine, CA 92614</p> | |
| 41 | - | <hr /> | |
| 42 | - | <h2 id="filing-a-takedown-notice">Filing a Takedown Notice</h2> | |
| 43 | - | <p>If you believe content on Makenot.work infringes your copyright, send | |
| 44 | - | a notice containing:</p> | |
| 45 | - | <ol type="1"> | |
| 46 | - | <li><strong>Your contact information</strong> - Name, address, phone | |
| 47 | - | number, email</li> | |
| 48 | - | <li><strong>Identification of the copyrighted work</strong> - What work | |
| 49 | - | is being infringed</li> | |
| 50 | - | <li><strong>Identification of the infringing material</strong> - URL or | |
| 51 | - | other specific location on our platform</li> | |
| 52 | - | <li><strong>Statement of good faith</strong> - “I have a good faith | |
| 53 | - | belief that use of the material in the manner complained of is not | |
| 54 | - | authorized by the copyright owner, its agent, or the law”</li> | |
| 55 | - | <li><strong>Statement of accuracy</strong> - “The information in this | |
| 56 | - | notification is accurate, and under penalty of perjury, I am the owner, | |
| 57 | - | or authorized to act on behalf of the owner, of an exclusive right that | |
| 58 | - | is allegedly infringed”</li> | |
| 59 | - | <li><strong>Your signature</strong> - Physical or electronic</li> | |
| 60 | - | </ol> | |
| 61 | - | <p>Incomplete notices may not receive a response.</p> | |
| 62 | - | <hr /> | |
| 63 | - | <h2 id="what-happens-when-we-receive-a-notice">What Happens When We | |
| 64 | - | Receive a Notice</h2> | |
| 65 | - | <ol type="1"> | |
| 66 | - | <li><strong>Review</strong> - We review the notice for completeness and | |
| 67 | - | validity</li> | |
| 68 | - | <li><strong>Removal</strong> - If valid, we remove or disable access to | |
| 69 | - | the content</li> | |
| 70 | - | <li><strong>Notification</strong> - We notify the creator whose content | |
| 71 | - | was removed</li> | |
| 72 | - | <li><strong>Counter-notification</strong> - Creator may file a | |
| 73 | - | counter-notification (see below)</li> | |
| 74 | - | </ol> | |
| 75 | - | <p>Complex cases may require additional review.</p> | |
| 76 | - | <hr /> | |
| 77 | - | <h2 id="counter-notification">Counter-Notification</h2> | |
| 78 | - | <p>If your content was removed and you believe the takedown was invalid, | |
| 79 | - | you can file a counter-notification.</p> | |
| 80 | - | <p>File a counter-notification if:</p> | |
| 81 | - | <ul> | |
| 82 | - | <li>You own the copyright to the removed content</li> | |
| 83 | - | <li>You have a license to use the content</li> | |
| 84 | - | <li>The use is fair use or otherwise lawful</li> | |
| 85 | - | <li>The content was misidentified</li> | |
| 86 | - | </ul> | |
| 87 | - | <p>Do not file a counter-notification if you know the content actually | |
| 88 | - | infringes someone’s copyright. Counter-notifications are made under | |
| 89 | - | penalty of perjury.</p> | |
| 90 | - | <h3 id="required-elements">Required Elements</h3> | |
| 91 | - | <p>Your counter-notification must include:</p> | |
| 92 | - | <ol type="1"> | |
| 93 | - | <li><strong>Your contact information</strong> - Name, address, phone | |
| 94 | - | number, email</li> | |
| 95 | - | <li><strong>Identification of removed content</strong> - Describe the | |
| 96 | - | content and where it appeared before removal</li> | |
| 97 | - | <li><strong>Statement under penalty of perjury</strong> - “I swear, | |
| 98 | - | under penalty of perjury, that I have a good faith belief that the | |
| 99 | - | material was removed or disabled as a result of mistake or | |
| 100 | - | misidentification of the material to be removed or disabled”</li> | |
| 101 | - | <li><strong>Consent to jurisdiction</strong> - “I consent to the | |
| 102 | - | jurisdiction of the Federal District Court for the judicial district in | |
| 103 | - | which my address is located, or if my address is outside the United | |
| 104 | - | States, the judicial district in which Make Creative, LLC is located, | |
| 105 | - | and I will accept service of process from the person who provided the | |
| 106 | - | original DMCA notification or an agent of such person”</li> | |
| 107 | - | <li><strong>Your signature</strong> - Physical or electronic</li> | |
| 108 | - | </ol> | |
| 109 | - | <p>Send counter-notifications to: <strong><a | |
| 110 | - | href="mailto:dmca@makenot.work">dmca@makenot.work</a></strong></p> | |
| 111 | - | <h3 id="what-happens-after-filing">What Happens After Filing</h3> | |
| 112 | - | <ol type="1"> | |
| 113 | - | <li>We review for completeness</li> | |
| 114 | - | <li>We notify the original complainant (they receive a copy)</li> | |
| 115 | - | <li><strong>10-14 business day waiting period</strong>: The complainant | |
| 116 | - | has this time to file a court action</li> | |
| 117 | - | <li><strong>Content restored</strong>: If no court action is filed, we | |
| 118 | - | restore your content</li> | |
| 119 | - | </ol> | |
| 120 | - | <p>The waiting period gives the complainant time to seek a court order. | |
| 121 | - | If the complainant files suit, your content stays down pending | |
| 122 | - | resolution. At that point, this is a legal matter between you and the | |
| 123 | - | complainant.</p> | |
| 124 | - | <hr /> | |
| 125 | - | <h2 id="repeat-infringer-policy">Repeat Infringer Policy</h2> | |
| 126 | - | <p>We terminate accounts of users who repeatedly infringe copyright.</p> | |
| 127 | - | <p><strong>How it works:</strong></p> | |
| 128 | - | <ul> | |
| 129 | - | <li><strong>First valid DMCA:</strong> Content removed, creator | |
| 130 | - | notified</li> | |
| 131 | - | <li><strong>Second valid DMCA:</strong> Content removed, creator | |
| 132 | - | notified of repeat status</li> | |
| 133 | - | <li><strong>Third valid DMCA:</strong> Account terminated</li> | |
| 134 | - | </ul> | |
| 135 | - | <p>“Valid” means the notice was complete, we removed content, and no | |
| 136 | - | successful counter-notification was filed.</p> | |
| 137 | - | <p>We may skip steps and terminate immediately for egregious | |
| 138 | - | infringement (large-scale piracy, commercial counterfeiting, etc.).</p> | |
| 139 | - | <hr /> | |
| 140 | - | <h2 id="what-we-wont-do">What We Won’t Do</h2> | |
| 141 | - | <ul> | |
| 142 | - | <li><strong>Remove content without proper notice</strong> - Informal | |
| 143 | - | complaints or social media callouts aren’t DMCA notices</li> | |
| 144 | - | <li><strong>Act on incomplete notices</strong> - All required elements | |
| 145 | - | must be present</li> | |
| 146 | - | <li><strong>Ignore counter-notifications</strong> - If a creator | |
| 147 | - | disputes a takedown, we follow the legal process</li> | |
| 148 | - | <li><strong>Share creator contact info with complainants</strong> - We | |
| 149 | - | forward notices to creators, not the reverse</li> | |
| 150 | - | </ul> | |
| 151 | - | <hr /> | |
| 152 | - | <h2 id="abuse-of-dmca">Abuse of DMCA</h2> | |
| 153 | - | <p>Filing false DMCA notices is perjury. If you knowingly misrepresent | |
| 154 | - | that content is infringing, you may be liable for damages. We track | |
| 155 | - | abuse patterns and may block repeat false filers from our DMCA | |
| 156 | - | process.</p> | |
| 157 | - | <hr /> | |
| 158 | - | <h2 id="see-also">See Also</h2> | |
| 159 | - | <ul> | |
| 160 | - | <li><a href="./moderation.html">Content Moderation</a>: Our broader | |
| 161 | - | moderation approach</li> | |
| 162 | - | <li><a href="./appeals.html">Appeal Process</a>: For non-copyright | |
| 163 | - | content issues</li> | |
| 164 | - | <li><a href="./terms-of-service.html">Terms of Service</a>: Content | |
| 165 | - | ownership terms</li> | |
| 166 | - | </ul> | |
| 167 | - | </article> | |
| 168 | - | </body> | |
| 169 | - | </html> |
| @@ -1,105 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Creator Pause — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / Guide</nav> | |
| 14 | - | <h1>Creator Pause<span class="dot">.</span></h1> | |
| 15 | - | <p>Take a break from selling without deleting your account or losing | |
| 16 | - | your content.</p> | |
| 17 | - | <h2 id="how-it-works">How It Works</h2> | |
| 18 | - | <p>Pausing your creator account stops new sales while keeping everything | |
| 19 | - | you’ve built. Your content stays hosted, existing purchases remain | |
| 20 | - | accessible to buyers, and you can resume at any time.</p> | |
| 21 | - | <p>Go to <strong>Account Settings</strong> and click <strong>Pause | |
| 22 | - | Creator Account</strong>. You’ll see a confirmation explaining what | |
| 23 | - | happens.</p> | |
| 24 | - | <h2 id="what-changes-when-you-pause">What Changes When You Pause</h2> | |
| 25 | - | <p><strong>For you:</strong></p> | |
| 26 | - | <ul> | |
| 27 | - | <li>Your creator tier membership is canceled (no more monthly fee)</li> | |
| 28 | - | <li>New purchases, memberships, and tips are blocked</li> | |
| 29 | - | <li>Your content remains hosted indefinitely</li> | |
| 30 | - | <li>Your profile stays visible with a notice that you’re on break</li> | |
| 31 | - | </ul> | |
| 32 | - | <p><strong>For your fans:</strong></p> | |
| 33 | - | <ul> | |
| 34 | - | <li>Active memberships are set to expire at the end of their current | |
| 35 | - | billing period (not canceled immediately)</li> | |
| 36 | - | <li>Fans keep access through the remainder of their paid period</li> | |
| 37 | - | <li>One-time purchases and downloads remain accessible forever</li> | |
| 38 | - | <li>No automated email is sent to fans about the pause</li> | |
| 39 | - | </ul> | |
| 40 | - | <h2 id="resuming">Resuming</h2> | |
| 41 | - | <p>Re-subscribe to a creator tier. When your new membership activates, | |
| 42 | - | your account is automatically unpaused:</p> | |
| 43 | - | <ul> | |
| 44 | - | <li>The pause flag is cleared</li> | |
| 45 | - | <li>Active fan memberships that haven’t yet expired are un-canceled | |
| 46 | - | (they continue as normal)</li> | |
| 47 | - | <li>New purchases are accepted again</li> | |
| 48 | - | </ul> | |
| 49 | - | <p>There is no separate “resume” button. Subscribing to a tier is the | |
| 50 | - | resume action.</p> | |
| 51 | - | <h2 id="pause-vs-delete">Pause vs. Delete</h2> | |
| 52 | - | <table> | |
| 53 | - | <thead> | |
| 54 | - | <tr> | |
| 55 | - | <th></th> | |
| 56 | - | <th>Pause</th> | |
| 57 | - | <th>Delete</th> | |
| 58 | - | </tr> | |
| 59 | - | </thead> | |
| 60 | - | <tbody> | |
| 61 | - | <tr> | |
| 62 | - | <td>Content hosted</td> | |
| 63 | - | <td>Indefinitely</td> | |
| 64 | - | <td>Removed after 90 days</td> | |
| 65 | - | </tr> | |
| 66 | - | <tr> | |
| 67 | - | <td>Fan purchases accessible</td> | |
| 68 | - | <td>Yes</td> | |
| 69 | - | <td>Yes (downloads already made)</td> | |
| 70 | - | </tr> | |
| 71 | - | <tr> | |
| 72 | - | <td>Fan memberships</td> | |
| 73 | - | <td>Expire at period end</td> | |
| 74 | - | <td>Canceled immediately</td> | |
| 75 | - | </tr> | |
| 76 | - | <tr> | |
| 77 | - | <td>Resume</td> | |
| 78 | - | <td>Re-subscribe to tier</td> | |
| 79 | - | <td>Not reversible</td> | |
| 80 | - | </tr> | |
| 81 | - | <tr> | |
| 82 | - | <td>Monthly fee</td> | |
| 83 | - | <td>None while paused</td> | |
| 84 | - | <td>N/A</td> | |
| 85 | - | </tr> | |
| 86 | - | </tbody> | |
| 87 | - | </table> | |
| 88 | - | <h2 id="limits">Limits</h2> | |
| 89 | - | <ul> | |
| 90 | - | <li>No time limit on how long you can stay paused</li> | |
| 91 | - | <li>Suspended or deactivated accounts cannot pause (contact | |
| 92 | - | support)</li> | |
| 93 | - | <li>You must be an active creator (have a project) to use this | |
| 94 | - | feature</li> | |
| 95 | - | </ul> | |
| 96 | - | <h2 id="see-also">See Also</h2> | |
| 97 | - | <ul> | |
| 98 | - | <li><a href="./tiers.html">Tiers</a> – creator tier pricing and | |
| 99 | - | features</li> | |
| 100 | - | <li><a href="./account-lifecycle.html">Account Lifecycle</a> – account | |
| 101 | - | states and transitions</li> | |
| 102 | - | </ul> | |
| 103 | - | </article> | |
| 104 | - | </body> | |
| 105 | - | </html> |
| @@ -1,188 +0,0 @@ | |||
| 1 | - | <!DOCTYPE html> | |
| 2 | - | <html lang="en"> | |
| 3 | - | <head> | |
| 4 | - | <meta charset="UTF-8"> | |
| 5 | - | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | - | <title>Credits — Makenot.work</title> | |
| 7 | - | <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,700;1,400&family=Lato:wght@400;700&family=Young+Serif&display=swap" rel="stylesheet"> | |
| 8 | - | <link rel="stylesheet" href="docs.css"> | |
| 9 | - | </head> | |
| 10 | - | <body class="padded-page"> | |
| 11 | - | <header class="site-header"><a href="./index.html">makenot<span class="dot">.</span>work</a></header> | |
| 12 | - | <article class="doc-container"> | |
| 13 | - | <nav class="doc-nav"><a href="./index.html">Docs</a> / About</nav> | |
| 14 | - | <h1>Credits<span class="dot">.</span></h1> | |
| 15 | - | <p>This page lists the third-party software, services, fonts, and | |
| 16 | - | standards Makenotwork is built on, along with their licenses and | |
| 17 | - | homepages. Only direct dependencies are enumerated; transitive | |
| 18 | - | dependencies (the dependencies of our dependencies) run into the | |
| 19 | - | hundreds and aren’t listed here. Makenotwork itself ships under PolyForm | |
| 20 | - | Noncommercial 1.0.0.</p> | |
| 21 | - | <hr /> | |
| 22 | - | <h2 id="primary-dependencies">Primary dependencies</h2> | |
| 23 | - | <h3 id="tokio"><a href="https://tokio.rs">Tokio</a></h3> | |
| 24 | - | <p>Asynchronous runtime; every other Rust dependency on this list | |
| 25 | - | assumes it. Originally designed by Carl Lerche. MIT.</p> | |
| 26 | - | <h3 id="axum"><a href="https://github.com/tokio-rs/axum">Axum</a></h3> | |
| 27 | - | <p>HTTP framework. A thin layer over <code>tower</code>, | |
| 28 | - | <code>hyper</code>, and <code>tokio</code>. Maintained as part of the | |
| 29 | - | Tokio project. MIT.</p> | |
| 30 | - | <h3 id="sqlx"><a | |
| 31 | - | href="https://github.com/launchbadge/sqlx">sqlx</a></h3> | |
| 32 | - | <p>Async PostgreSQL driver with compile-time query checking. MIT or | |
| 33 | - | Apache-2.0.</p> | |
| 34 | - | <h3 id="postgresql"><a | |
| 35 | - | href="https://www.postgresql.org/">PostgreSQL</a></h3> | |
| 36 | - | <p>The database. Free, open-source, ~30 years of community maintenance. | |
| 37 | - | PostgreSQL License (permissive).</p> | |
| 38 | - | <h3 id="aws-sdk-s3"><a | |
| 39 | - | href="https://github.com/awslabs/aws-sdk-rust">aws-sdk-s3</a></h3> | |
| 40 | - | <p>S3 protocol client. We point it at <a | |
| 41 | - | href="https://www.hetzner.com/storage/object-storage/">Hetzner Object | |
| 42 | - | Storage</a>. Maintained by AWS. Apache-2.0.</p> | |
| 43 | - | <h3 id="async-stripe"><a | |
| 44 | - | href="https://github.com/arlyon/async-stripe">async-stripe</a></h3> | |
| 45 | - | <p>Rust wrapper around Stripe’s API. Maintained by <a | |
| 46 | - | href="https://github.com/arlyon">Alex Whiting</a>. MIT or | |
| 47 | - | Apache-2.0.</p> | |
| 48 | - | <h3 id="yara-x"><a | |
| 49 | - | href="https://github.com/VirusTotal/yara-x">YARA-X</a></h3> | |
| 50 | - | <p>Malware-pattern scanner. Rust rewrite of YARA, from the VirusTotal | |
| 51 | - | team. BSD-3-Clause.</p> | |
| 52 | - | <h3 id="clamav"><a href="https://www.clamav.net/">ClamAV</a></h3> | |
| 53 | - | <p>Virus scanner. We talk to it over INSTREAM. Maintained by Cisco | |
| 54 | - | Talos. GPL-2.0.</p> | |
| 55 | - | <h3 id="askama"><a | |
| 56 | - | href="https://github.com/askama-rs/askama">Askama</a></h3> | |
| 57 | - | <p>Templates compiled into Rust at build time; typos become compile | |
| 58 | - | errors. MIT or Apache-2.0.</p> | |
| 59 | - | <h3 id="git2--libgit2"><a | |
| 60 | - | href="https://github.com/rust-lang/git2-rs">git2</a> / <a | |
| 61 | - | href="https://libgit2.org/">libgit2</a></h3> | |
| 62 | - | <p>Rust bindings to libgit2; backs every push, browse, and smart-HTTP | |
| 63 | - | serve under <code>/source</code>. GPL-2.0 with linking exception.</p> | |
| 64 | - | <h3 id="argon2-and-webauthn-rs"><a | |
| 65 | - | href="https://github.com/RustCrypto/password-hashes/tree/master/argon2">argon2</a> | |
| 66 | - | and <a href="https://github.com/kanidm/webauthn-rs">webauthn-rs</a></h3> | |
| 67 | - | <p>Password hashing (argon2, OWASP-recommended) and passkey login | |
| 68 | - | (webauthn-rs, by William Brown of SUSE). MIT or Apache-2.0.</p> | |
| 69 | - | <hr /> | |
| 70 | - | <h2 id="rust-crates-direct-dependencies">Rust crates (direct | |
| 71 | - | dependencies)</h2> | |
| 72 | - | <p>Licenses noted in parentheses where they aren’t the standard | |
| 73 | - | MIT/Apache-2.0 dual.</p> | |
| 74 | - | <p><strong>HTTP and middleware</strong>: <code>axum</code>, | |
| 75 | - | <code>axum-extra</code>, <code>tower</code>, <code>tower-http</code>, | |
| 76 | - | <code>tower-sessions</code>, <code>tower-sessions-sqlx-store</code>, | |
| 77 | - | <code>tower_governor</code>, <code>http-body-util</code>, | |
| 78 | - | <code>utoipa</code>, <code>utoipa-axum</code>.</p> | |
| 79 | - | <p><strong>Database</strong>: <code>sqlx</code>, | |
| 80 | - | <code>chrono</code>.</p> | |
| 81 | - | <p><strong>Storage</strong>: <code>aws-sdk-s3</code>, | |
| 82 | - | <code>aws-config</code>, <code>fs2</code>, <code>memmap2</code>, | |
| 83 | - | <code>tempfile</code>, <code>bytes</code>.</p> | |
| 84 | - | <p><strong>Scanning and binary analysis</strong>: <code>yara-x</code> | |
| 85 | - | (BSD-3-Clause), <code>infer</code>, <code>object</code>, | |
| 86 | - | <code>goblin</code>, <code>authenticode</code>, | |
| 87 | - | <code>apple-codesign</code> (MPL-2.0), <code>zip</code>, | |
| 88 | - | <code>x509-cert</code>, <code>x509-parser</code>, <code>asn1-rs</code>, | |
| 89 | - | <code>const-oid</code>.</p> | |
| 90 | - | <p><strong>Payments</strong>: the <code>async-stripe</code> family | |
| 91 | - | (<code>async-stripe</code>, <code>async-stripe-billing</code>, | |
| 92 | - | <code>async-stripe-checkout</code>, <code>async-stripe-connect</code>, | |
| 93 | - | <code>async-stripe-core</code>, <code>async-stripe-payment</code>, | |
| 94 | - | <code>async-stripe-product</code>, <code>async-stripe-shared</code>, | |
| 95 | - | <code>async-stripe-types</code>).</p> | |
| 96 | - | <p><strong>Auth and crypto</strong>: <code>argon2</code>, | |
| 97 | - | <code>webauthn-rs</code>, <code>webauthn-rs-proto</code>, | |
| 98 | - | <code>webauthn-authenticator-rs</code>, <code>jsonwebtoken</code>, | |
| 99 | - | <code>hmac</code>, <code>sha1</code>, <code>sha2</code>, | |
| 100 | - | <code>totp-rs</code>, <code>chacha20poly1305</code>, | |
| 101 | - | <code>subtle</code>, <code>rand</code>, <code>zeroize</code>, | |
| 102 | - | <code>aes</code>.</p> | |
| 103 | - | <p><strong>Templating and markup</strong>: <code>askama</code>, | |
| 104 | - | <code>pulldown-cmark</code>, <code>syntect</code>, <code>ammonia</code>, | |
| 105 | - | <code>regex</code>, <code>regex-lite</code>, | |
| 106 | - | <code>unicode-normalization</code>.</p> | |
| 107 | - | <p><strong>HTTP client</strong>: <code>reqwest</code>, | |
| 108 | - | <code>hickory-resolver</code>, <code>webpki-roots</code>, | |
| 109 | - | <code>rustls-pki-types</code>, <code>tokio-rustls</code>.</p> | |
| 110 | - | <p><strong>Serialization</strong>: <code>serde</code>, | |
| 111 | - | <code>serde_json</code>, <code>toml</code>, <code>base64</code>, | |
| 112 | - | <code>hex</code>, <code>url</code>, <code>urlencoding</code>, | |
| 113 | - | <code>email_address</code>, <code>semver</code>, <code>uuid</code>.</p> | |
| 114 | - | <p><strong>Async</strong>: <code>tokio</code>, | |
| 115 | - | <code>tokio-stream</code>, <code>tokio-util</code>, | |
| 116 | - | <code>async-trait</code>, <code>dashmap</code>, | |
| 117 | - | <code>parking_lot</code>, <code>governor</code>.</p> | |
| 118 | - | <p><strong>Git</strong>: <code>git2</code> (and through it, libgit2, | |
| 119 | - | GPL-2.0 with linking exception).</p> | |
| 120 | - | <p><strong>Observability</strong>: <code>tracing</code>, | |
| 121 | - | <code>tracing-subscriber</code>, <code>metrics</code>, | |
| 122 | - | <code>metrics-exporter-prometheus</code>, <code>log</code>.</p> | |
| 123 | - | <p><strong>Errors</strong>: <code>anyhow</code>, | |
| 124 | - | <code>thiserror</code>.</p> | |
| 125 | - | <p><strong>CLI and TUI</strong> (mnw-cli, sando-tui, wam): | |
| 126 | - | <code>clap</code>, <code>ratatui</code>, <code>crossterm</code>, | |
| 127 | - | <code>russh</code>, <code>russh-sftp</code>, <code>dirs</code>.</p> | |
| 128 | - | <p><strong>MCP</strong>: <code>rmcp</code>.</p> | |
| 129 | - | <p><strong>Testing</strong>: <code>proptest</code>, | |
| 130 | - | <code>wiremock</code>, <code>tempfile</code>, <code>criterion</code>, | |
| 131 | - | <code>fast-tests</code>.</p> | |
| 132 | - | <p>Transitive dependencies are not enumerated; see | |
| 133 | - | <code>cargo tree</code> for the full set.</p> | |
| 134 | - | <hr /> | |
| 135 | - | <h2 id="other-software">Other software</h2> | |
| 136 | - | <ul> | |
| 137 | - | <li><strong><a | |
| 138 | - | href="https://www.postgresql.org/">PostgreSQL</a></strong>: database | |
| 139 | - | (PostgreSQL License).</li> | |
| 140 | - | <li><strong><a href="https://www.clamav.net/">ClamAV</a></strong>: virus | |
| 141 | - | scanner (GPL-2.0).</li> | |
| 142 | - | <li><strong><a href="https://caddyserver.com/">Caddy</a></strong>: | |
| 143 | - | reverse proxy and TLS (Apache-2.0).</li> | |
| 144 | - | </ul> | |
| 145 | - | <hr /> | |
| 146 | - | <h2 id="services">Services</h2> | |
| 147 | - | <ul> | |
| 148 | - | <li><strong><a href="https://www.hetzner.com/">Hetzner</a></strong>: | |
| 149 | - | cloud hosting and object storage.</li> | |
| 150 | - | <li><strong><a | |
| 151 | - | href="https://www.cloudflare.com/">Cloudflare</a></strong>: DNS, CDN, | |
| 152 | - | DDoS protection.</li> | |
| 153 | - | <li><strong><a href="https://stripe.com/">Stripe</a></strong>: payment | |
| 154 | - | processing.</li> | |
| 155 | - | <li><strong><a href="https://postmarkapp.com/">Postmark</a></strong>: | |
| 156 | - | transactional email.</li> | |
| 157 | - | <li><strong><a href="https://letsencrypt.org/">Let’s | |
| 158 | - | Encrypt</a></strong>: TLS certificates.</li> | |
| 159 | - | <li><strong><a href="https://tailscale.com/">Tailscale</a></strong>: | |
| 160 | - | private network.</li> | |
| 161 | - | </ul> | |
| 162 | - | <hr /> | |
| 163 | - | <h2 id="fonts">Fonts</h2> | |
| 164 | - | <p>All served from Google Fonts under the Open Font License.</p> | |
| 165 | - | <ul> | |
| 166 | - | <li><strong>Young Serif</strong> (Bunny Studio)</li> | |
| 167 | - | <li><strong>IBM Plex Mono</strong> (IBM)</li> | |
| 168 | - | <li><strong>Lato</strong> (Łukasz Dziedzic)</li> | |
| 169 | - | </ul> | |
| 170 | - | <hr /> | |
| 171 | - | <h2 id="standards">Standards</h2> | |
| 172 | - | <ul> | |
| 173 | - | <li>HTTP/1.1, HTTP/2 (IETF)</li> | |
| 174 | - | <li>WebAuthn Level 3 (W3C / FIDO Alliance)</li> | |
| 175 | - | <li>TOTP (RFC 6238)</li> | |
| 176 | - | <li>OAuth 2.0 + PKCE (IETF)</li> | |
| 177 | - | <li>S3 API (AWS)</li> | |
| 178 | - | <li>YARA rule syntax (VirusTotal)</li> | |
| 179 | - | </ul> | |
| 180 | - | <hr /> | |
| 181 | - | <h2 id="did-we-miss-you">Did we miss you?</h2> | |
| 182 | - | <p>If your project or service is in the list above and we got the | |
| 183 | - | description wrong, or if you maintain something we depend on and don’t | |
| 184 | - | see your name here, email us at <code>info@makenot.work</code> and we’ll | |
| 185 | - | fix it.</p> | |
| 186 | - | </article> | |
| 187 | - | </body> | |
| 188 | - | </html> |