Skip to main content

max / makenotwork

2.6 KB · 54 lines History Blame Raw
1 {# Pricing comparison partial — server-rendered, swapped into /pricing via
2 HTMX from GET /pricing/compare as the revenue/tier inputs change. Every
3 value here is preformatted in `pricing_comparison::ComparisonResult`; this
4 template does no arithmetic. The math lives in Rust, sourced from
5 `docs/business/assumptions.toml`, and is pinned by
6 `pricing_comparison::tests`. #}
7 <div class="tier-section" id="results">
8 <h2 class="section-label">You keep</h2>
9 <div class="mnw-summary">
10 <div class="mnw-keep" id="mnw-keep">{{ comparison.mnw_keep }}</div>
11 <div class="mnw-detail" id="mnw-detail">{{ comparison.mnw_detail }}</div>
12 </div>
13 </div>
14
15 <div class="tier-section">
16 <h2 class="section-label">Platform comparison</h2>
17 <table class="data-table" id="comparison-table" aria-label="Platform fee comparison">
18 <thead>
19 <tr>
20 <th>Platform</th>
21 <th>Fee structure</th>
22 <th>You keep</th>
23 <th>vs MNW</th>
24 </tr>
25 </thead>
26 <tbody id="comparison-body">
27 {% for row in comparison.rows %}
28 <tr{% if row.is_mnw %} class="highlight"{% endif %}>
29 <td{% if row.is_mnw %} style="font-weight:600"{% endif %}>
30 {%- if row.is_mnw -%}
31 {{ row.name }}
32 {%- else -%}
33 <a href="{{ row.url }}" target="_blank" rel="noopener">{{ row.name }}</a>
34 {%- endif -%}
35 </td>
36 <td>{{ row.fee_label }}</td>
37 <td>{{ row.keep }}</td>
38 <td{% if !row.diff_class.is_empty() %} class="{{ row.diff_class }}"{% endif %}>{{ row.diff }}</td>
39 </tr>
40 {% endfor %}
41 </tbody>
42 </table>
43 <p class="pricing-disclaimer">Fee structures sourced from each platform's public pricing page. Actual fees may vary by plan, region, or payment method. Verify on each platform's site before making decisions.</p>
44 <p class="pricing-disclaimer"><strong>Selling small-ticket items?</strong> Payment processors charge a fixed fee per transaction (~$0.30) that hits harder on $1-5 sales. This is an industry-wide constraint, not specific to any platform. Bundling items into collections lets your fans buy in groups at a single transaction cost instead of paying per-item processing fees.</p>
45 </div>
46
47 {% match comparison.breakeven %}
48 {% when Some with (note) %}
49 <div class="tier-section" id="breakeven-section">
50 <div class="breakeven-note" id="breakeven-note">{{ note }}</div>
51 </div>
52 {% when None %}
53 {% endmatch %}
54