Focus on content
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
<body>
|
||||
<header class="member-nav">
|
||||
<a class="brand" href="/">eom.dev</a>
|
||||
<nav aria-label="Membership navigation"><a href="/">Back to the lab</a><a href="{% url 'members:home' %}">Membership</a></nav>
|
||||
<nav aria-label="Membership navigation"><a href="/">Home</a><a href="{% url 'members:home' %}">Membership</a></nav>
|
||||
</header>
|
||||
<main id="main-content" class="member-main">
|
||||
{% if title %}
|
||||
@@ -21,7 +21,7 @@
|
||||
<h1>{{ title }}</h1>
|
||||
{% if message %}<p>{{ message }}</p>{% endif %}
|
||||
{% if registration %}
|
||||
<p>One account for all of eom.dev. Use the same sign-in to explore the community and its services, without creating a separate account for each one.</p>
|
||||
<p>Your eom.dev account gives you a shared sign-in for the community services included at your membership level. Free accounts include forums, chat, Git hosting, and games; some additional services require a paid tier.</p>
|
||||
<ol>
|
||||
<li>Choose a username and enter your email address below.</li>
|
||||
<li>Check your inbox and follow the confirmation link.</li>
|
||||
@@ -41,9 +41,9 @@
|
||||
</section>
|
||||
{% else %}
|
||||
<section class="member-hero">
|
||||
<p class="eyebrow">Keep your own corner of the internet alive</p>
|
||||
<p class="eyebrow">Music, films, projects & shared worlds</p>
|
||||
<h1>Support the work.<br>Get closer to what’s next.</h1>
|
||||
<p class="member-intro">Join free for community services and games. Choose a paid tier for exclusive content, previews and a closer say in what comes next.</p>
|
||||
<p class="member-intro">Membership supports my music, films, writing, open-source projects, and game servers. Join the community for free, or choose a paid tier to support the work and receive the benefits listed below.</p>
|
||||
{% if account %}
|
||||
<div class="member-panel account-panel">
|
||||
<div><p class="eyebrow">Your eom.dev account · Membership level {{ account.membership_level }}</p><h2>{{ account.uid }}</h2><p>{{ account.email }}</p></div>
|
||||
@@ -53,7 +53,7 @@
|
||||
<form action="{% url 'members:logout' %}" method="post">{% csrf_token %}<button class="button button-secondary" type="submit">Sign out</button></form>
|
||||
</div>
|
||||
</div>
|
||||
{% if request.GET.checkout %}<p role="status" class="member-notice">Thanks for supporting the work. Stripe is confirming your subscription. Access appears after payment is verified and the membership worker has synchronized it.</p>{% endif %}
|
||||
{% if request.GET.checkout %}<p role="status" class="member-notice">Thanks for supporting the work. Your membership benefits become available once Stripe confirms payment and your account access updates.</p>{% endif %}
|
||||
{% for subscription in subscriptions %}
|
||||
<p class="member-notice">{% for key, tier in tiers.items %}{% if key == subscription.tier %}{{ tier.label }}{% endif %}{% empty %}Membership{% endfor %} · {{ subscription.status }}{% if subscription.paid_until > now %} · Paid access through {{ subscription.paid_until|date:"M j, Y H:i T" }}{% else %} · No current paid access{% endif %}{% if subscription.cancel_at_period_end %} · Does not renew{% endif %}</p>
|
||||
{% endfor %}
|
||||
@@ -69,36 +69,37 @@
|
||||
{% endif %}
|
||||
</section>
|
||||
<section aria-labelledby="tiers-heading">
|
||||
<div class="section-heading"><p class="eyebrow">Your support, your choice</p><h2 id="tiers-heading">Find your membership</h2><p>Public projects and ordinary community participation stay free. Membership adds a closer connection to the work, not a barrier to joining in.</p></div>
|
||||
<div class="member-panel service-access-panel">
|
||||
<h3>Included services</h3>
|
||||
{% if services %}<ul class="service-access-list">{% for service in services %}<li><div class="service-access-identity">{% if service.url %}<a class="service-access-link" href="{{ service.url }}"><img src="{{ service.favicon }}" alt="" width="32" height="32" loading="lazy" decoding="async"><strong>{{ service.name }}</strong></a>{% else %}<strong>{{ service.name }}</strong>{% endif %}</div><span>{{ service.access }}</span></li>{% endfor %}</ul>{% else %}<p>No additional service access is currently configured.</p>{% endif %}
|
||||
</div>
|
||||
<div class="section-heading"><p class="eyebrow">Your support, your choice</p><h2 id="tiers-heading">Choose how to take part</h2><p>Public recordings, writing, and source code remain available without a paid membership. Your support helps fund creative time, recording, travel, and independent publishing.</p><p>Paid benefits build by level: Bronze adds exclusive Discourse and Matrix content; Silver adds previews when available; Gold adds project-topic polls and occasional feedback sessions. Compare the full benefits below.</p></div>
|
||||
<div class="member-grid">
|
||||
<article class="member-panel tier-card free-tier">
|
||||
<p class="card-kicker">Level 0 · The starting point</p><h3>Open Lab</h3><p class="tier-price">Free <span>/ always</span></p>
|
||||
<p>Your free community account.</p>
|
||||
<p>Join the community without a subscription.</p>
|
||||
<ul><li>Games hosted on eom.dev</li><li>Open Lab-tier giveaways</li></ul>
|
||||
{% if not account %}<a class="button button-secondary" href="{% url 'members:register' %}">Join the community</a>{% else %}<p class="tier-footnote">Your free account is ready.</p>{% endif %}
|
||||
</article>
|
||||
{% for key, tier in tiers.items %}
|
||||
<article class="member-panel tier-card">
|
||||
<p class="card-kicker">Level {{ tier.level }}</p><h3>{{ tier.label }}</h3><p class="tier-price">{{ tier.price_label }}</p>
|
||||
<p>{{ tier.description|default:"Help keep the projects and community running." }}</p>
|
||||
<p>{{ tier.description|default:"Support the independent work and community." }}</p>
|
||||
<ul>{% for benefit in tier.benefits %}<li>{{ benefit }}</li>{% empty %}<li>Support independent projects and the community</li>{% endfor %}<li>Plus all previous benefits</li></ul>
|
||||
{% if account %}<div class="tier-payment-actions"><form action="{% url 'members:checkout' key %}" method="post">{% csrf_token %}<button class="button button-primary" type="submit">Subscribe with Stripe</button></form>
|
||||
{% if shkeeper_enabled and tier.usd_amount %}<a class="button button-secondary" href="{% url 'members:crypto_checkout' key %}">Pay with crypto</a>{% endif %}</div>{% else %}<a class="button button-primary" href="{% url 'members:register' %}">Create an account to join</a>{% endif %}
|
||||
</article>
|
||||
{% empty %}<div class="member-panel"><h3>Paid memberships are coming soon.</h3><p>You can create your free account now. Paid tiers will appear when their prices and groups are configured.</p></div>{% endfor %}
|
||||
</div>
|
||||
<p class="member-small">The list above shows each service once and the levels that include it. Access updates after directory synchronization; you may need to sign in again to a service. Publicly available content remains subject to each service's own rules.</p>
|
||||
<p class="member-small">Previews are shared when available, and playtests, listening sessions and feedback gatherings are occasional. Membership does not include storage quotas, personal consulting, guaranteed support or promised feature development. Recognition is always optional.</p>
|
||||
<div class="member-panel service-access-panel">
|
||||
<h3>Community services by level</h3>
|
||||
<p>Watching public videos and reading public posts is separate from having an account on those services. This list shows access by level, including channels that are open to everyone.</p>
|
||||
{% if services %}<ul class="service-access-list">{% for service in services %}<li><div class="service-access-identity">{% if service.url %}<a class="service-access-link" href="{{ service.url }}"><img src="{{ service.favicon }}" alt="" width="32" height="32" loading="lazy" decoding="async"><strong>{{ service.name }}</strong></a>{% else %}<strong>{{ service.name }}</strong>{% endif %}</div><span>{{ service.access }}</span></li>{% endfor %}</ul>{% else %}<p>No additional service access is currently configured.</p>{% endif %}
|
||||
</div>
|
||||
<p class="member-small">Service access updates with your membership. You may need to sign in again to a service after it changes. Each service's own rules still apply.</p>
|
||||
<p class="member-small">Previews are shared when available, and playtests, listening sessions and feedback gatherings are occasional. There is no fixed release schedule. Membership does not include storage quotas, personal consulting, managed hosting, guaranteed support or promised feature development. Recognition is always optional.</p>
|
||||
</section>
|
||||
<section class="member-faq" aria-labelledby="membership-faq">
|
||||
<h2 id="membership-faq">Simple, by design.</h2>
|
||||
<details><summary>Do I need a paid membership to play games?</summary><p>No. A free Open Lab (Level 0) account includes access to games hosted on eom.dev, and paid members can play too. Exclusive game servers for higher tiers may be added in the future, but none are currently offered or included as a paid benefit.</p></details>
|
||||
<h2 id="membership-faq">Before you join</h2>
|
||||
<details><summary>Do I need a paid membership to watch, read, or play?</summary><p>No. Public videos, writing, and source code can be explored without a paid membership. A free Open Lab (Level 0) account includes access to games hosted on eom.dev, and paid members can play too. No paid-exclusive game servers are currently included.</p></details>
|
||||
<details><summary>How do membership giveaways work?</summary><p>Giveaways are associated with a membership tier. Higher tiers include giveaway benefits from lower tiers, including Open Lab. Each giveaway's rules will list its availability, dates, prizes and any eligibility restrictions. Membership does not guarantee a prize.</p></details>
|
||||
<details><summary>Who can vote on the platform's direction?</summary><p>Platinum (Level 4) and Diamond (Level 5) members can take part in exclusive polls about the direction of the platform. These are separate from Gold's project-topic polls. Results help inform decisions; they are not binding commitments or guarantees of particular features.</p></details>
|
||||
<details><summary>What do membership polls influence?</summary><p>Gold (Level 3) and above can share preferences about future project topics and experiments. Platinum (Level 4) and Diamond (Level 5) also receive separate polls about the direction of eom.dev itself. Results inform my decisions; they are not binding commitments or guarantees of particular features.</p></details>
|
||||
<details><summary>What happens when a membership ends?</summary><p>Your free eom.dev account stays. Member-only access ends when your paid membership expires. An immediate cancellation removes that access once your membership status updates.</p></details>
|
||||
<details><summary>Where do members connect?</summary><p>On Discourse and Matrix. Ordinary community access is free; Bronze and above also receive exclusive content in those services.</p></details>
|
||||
<details><summary>Can I change or cancel a plan?</summary><p>Use Manage billing after signing in. The billing portal offers the changes enabled for your plan. Cancellation at period end keeps access through the paid expiry date.</p></details>
|
||||
|
||||
Reference in New Issue
Block a user