feat(signup): community guidelines agreement and policies routes
Introduces /community-guidelines and /policies/{privacy,terms,[slug]} pages,
swaps the signup/invite checkbox from agreedToTerms to agreedToGuidelines,
adds Member.agreement.acceptedAt, and stamps the field when a Helcim
customer is created.
This commit is contained in:
parent
e0d11e47f4
commit
c5e901ed24
13 changed files with 1292 additions and 54 deletions
377
app/pages/community-guidelines.vue
Normal file
377
app/pages/community-guidelines.vue
Normal file
|
|
@ -0,0 +1,377 @@
|
|||
<template>
|
||||
<PageShell title="Community Guidelines" subtitle="What you're agreeing to when you join Ghost Guild">
|
||||
<div class="guidelines-prose">
|
||||
<section class="guidelines-section">
|
||||
<h2>Welcome</h2>
|
||||
<p>
|
||||
Ghost Guild is a community for game workers exploring cooperative and
|
||||
worker-centric models. By joining, you're becoming part of a growing
|
||||
community of practice built on mutual support, shared learning, and
|
||||
solidarity.
|
||||
</p>
|
||||
<p>
|
||||
This page covers everything you're agreeing to as a member. Related
|
||||
policies are linked throughout and are part of this agreement.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="guidelines-section">
|
||||
<h2>What Membership Means</h2>
|
||||
<p>
|
||||
Ghost Guild membership is about community and participation, not
|
||||
access to hidden content. Every member gets the same access to
|
||||
resources, events, and community spaces regardless of what they
|
||||
contribute financially.
|
||||
</p>
|
||||
<p>
|
||||
When you join Ghost Guild, you become a Class B member of Baby
|
||||
Ghosts, our parent charity. Class A membership is held by a small
|
||||
group involved in governance, mainly our directors. Class A and
|
||||
Class B have equal access to resources, community, events, and the
|
||||
Solidarity Fund. Voting at the Annual General Meeting is limited
|
||||
to Class A members, as set out in our
|
||||
<NuxtLink to="/policies/by-laws">by-laws</NuxtLink>.
|
||||
</p>
|
||||
|
||||
<h3>The three circles</h3>
|
||||
<p>
|
||||
Our three membership circles describe where you are in your journey
|
||||
with cooperative models. They're not a hierarchy.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Community Circle:</strong> for folks learning about
|
||||
cooperative principles
|
||||
</li>
|
||||
<li>
|
||||
<strong>Founder Circle:</strong> for those actively building a
|
||||
cooperative studio
|
||||
</li>
|
||||
<li>
|
||||
<strong>Practitioner Circle:</strong> for experienced cooperative
|
||||
studio leaders
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can move between circles as your work and interests evolve. Just
|
||||
reach out to the Membership Committee when you're ready.
|
||||
</p>
|
||||
|
||||
<h3>Solidarity economics</h3>
|
||||
<p>
|
||||
We operate on a pay-what-you-can model. Your contribution is fully
|
||||
decoupled from your circle. Members with more financial capacity help
|
||||
make space for members with less.
|
||||
</p>
|
||||
<p>
|
||||
If money is tight, choose the $0 option. If you have more capacity,
|
||||
contributing at a higher tier supports others. You can adjust your
|
||||
contribution anytime as your situation changes.
|
||||
</p>
|
||||
<p>
|
||||
The Solidarity Fund is administered by the Membership Committee, and
|
||||
its status is reported to the community each year.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="guidelines-section">
|
||||
<h2>Your Rights as a Member</h2>
|
||||
<p>As a Ghost Guild member, you have:</p>
|
||||
<ul>
|
||||
<li>
|
||||
Equal access to resources, events, community spaces, and the
|
||||
Solidarity Fund, regardless of circle or contribution level
|
||||
</li>
|
||||
<li>Support from the Solidarity Fund if you face financial barriers</li>
|
||||
<li>The ability to move between circles as your journey evolves</li>
|
||||
<li>
|
||||
Privacy protection in line with our
|
||||
<NuxtLink to="/policies/privacy">Privacy Policy</NuxtLink>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="guidelines-section">
|
||||
<h2>Your Responsibilities as a Member</h2>
|
||||
<p>As a Ghost Guild member, you commit to:</p>
|
||||
<ol>
|
||||
<li>
|
||||
Upholding Baby Ghosts' and Gamma Space's shared values, including
|
||||
cooperation, mutual support, and equity
|
||||
</li>
|
||||
<li>
|
||||
Treating fellow members with care and following our
|
||||
<NuxtLink to="/policies/code-of-conduct">Code of Conduct</NuxtLink>
|
||||
at all times
|
||||
</li>
|
||||
<li>
|
||||
Participating within your capacity. This is a community of
|
||||
practice. Show up in whatever way works for you.
|
||||
</li>
|
||||
<li>
|
||||
Contributing dues in line with your ability, or working with the
|
||||
Membership Committee to access the Solidarity Fund
|
||||
</li>
|
||||
<li>
|
||||
Approaching disagreements with openness and using our
|
||||
<NuxtLink to="/policies/conflict-resolution">Conflict Resolution Policy</NuxtLink>
|
||||
when conflicts arise
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<h3>Community privacy</h3>
|
||||
<p>
|
||||
Our community spaces, including our shared Slack workspace, operate
|
||||
with an assumption of privacy. This means:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Don't share screenshots, message content, or other community
|
||||
content externally without the explicit consent of everyone
|
||||
involved
|
||||
</li>
|
||||
<li>
|
||||
Don't contribute community conversations, messages, or member
|
||||
content to generative AI tools like ChatGPT or Claude. This
|
||||
protects everyone's privacy and contributions.
|
||||
</li>
|
||||
<li>
|
||||
Violations of these privacy norms can result in removal from the
|
||||
community
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="guidelines-section">
|
||||
<h2>Contributing to the Commons</h2>
|
||||
<p>
|
||||
The Ghost Guild wiki at
|
||||
<a href="https://wiki.ghostguild.org">wiki.ghostguild.org</a> is a
|
||||
knowledge commons. Anything you contribute to it is automatically and
|
||||
irrevocably licensed under the
|
||||
<a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>
|
||||
(CC-BY-SA 4.0) at the moment you post it.
|
||||
</p>
|
||||
<p>In plain terms:</p>
|
||||
<ul>
|
||||
<li>You still hold the copyright to what you wrote</li>
|
||||
<li>
|
||||
Anyone (members, the public, other cooperatives, organizations
|
||||
adapting the material) can use, share, adapt, and build on your
|
||||
contribution, including for commercial purposes, as long as they
|
||||
credit you and release their derivatives under the same license
|
||||
</li>
|
||||
<li>
|
||||
You can't withdraw your contribution from the commons later, even
|
||||
if you leave Ghost Guild
|
||||
</li>
|
||||
<li>
|
||||
If wiki material gets republished elsewhere (like on
|
||||
<a href="https://coop.love">coop.love</a>), it stays under
|
||||
CC-BY-SA 4.0 and you stay credited
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
This is how a knowledge commons works, and it's central to what Ghost
|
||||
Guild is doing. If you have something you'd rather keep private or
|
||||
under a more restrictive license, don't put it in the wiki.
|
||||
</p>
|
||||
<p>
|
||||
Profile information, bulletin board posts, comments in member-only
|
||||
spaces, and direct messages aren't part of the commons and stay under
|
||||
your control. See our
|
||||
<NuxtLink to="/policies/terms">Terms of Service</NuxtLink> for the
|
||||
details.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="guidelines-section">
|
||||
<h2>Our Privacy Commitments</h2>
|
||||
<p>
|
||||
Your personal information is used to administer your membership and
|
||||
to communicate with you about Ghost Guild.
|
||||
</p>
|
||||
<p>
|
||||
We use a small number of third-party services to run the platform
|
||||
(payment processing, email, hosting, analytics). Our
|
||||
<NuxtLink to="/policies/privacy">Privacy Policy</NuxtLink> lists who
|
||||
they are and what they see.
|
||||
</p>
|
||||
<p>
|
||||
We don't sell your data, share it for marketing, or feed any community
|
||||
content into generative AI tools.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="guidelines-section">
|
||||
<h2>Membership Terms</h2>
|
||||
<p>
|
||||
Membership is valid for one year from joining or renewal. Dues can be
|
||||
paid monthly or annually, and renewal happens by continuing dues
|
||||
payments or arranging support through the Solidarity Fund.
|
||||
</p>
|
||||
<p>
|
||||
You can adjust your contribution to any amount, including $0, at any
|
||||
time. There's no minimum contribution to maintain membership in good
|
||||
standing. A failed monthly payment doesn't end your membership. If a
|
||||
payment doesn't go through, we'll reach out to work it out.
|
||||
</p>
|
||||
<p>
|
||||
You can end your membership at any time by contacting the Membership
|
||||
Committee. In rare cases, membership may be ended for serious
|
||||
violations of these guidelines, following the process in our
|
||||
<NuxtLink to="/policies/conflict-resolution">Conflict Resolution Policy</NuxtLink>.
|
||||
Dues are not refunded.
|
||||
</p>
|
||||
<p>
|
||||
If you leave, your wiki contributions remain in the commons under
|
||||
their CC-BY-SA 4.0 license. Your other personal information is handled
|
||||
according to the retention rules in our
|
||||
<NuxtLink to="/policies/privacy">Privacy Policy</NuxtLink>.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="guidelines-section">
|
||||
<h2>Related Policies</h2>
|
||||
<p>These policies are part of what you agree to by joining:</p>
|
||||
<ul>
|
||||
<li><NuxtLink to="/policies/code-of-conduct">Code of Conduct</NuxtLink></li>
|
||||
<li><NuxtLink to="/policies/conflict-resolution">Conflict Resolution Policy</NuxtLink></li>
|
||||
<li><NuxtLink to="/policies/privacy">Privacy Policy</NuxtLink></li>
|
||||
<li><NuxtLink to="/policies/terms">Terms of Service</NuxtLink></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="guidelines-section">
|
||||
<h2>Agreement</h2>
|
||||
<p>
|
||||
By joining Ghost Guild, you're confirming that you've read,
|
||||
understood, and agree to these community guidelines and the policies
|
||||
linked above.
|
||||
</p>
|
||||
<p class="welcome-line">Welcome to the community, Ghostie!</p>
|
||||
</section>
|
||||
</div>
|
||||
</PageShell>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
useHead({
|
||||
title: 'Community Guidelines · Ghost Guild',
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.guidelines-prose {
|
||||
max-width: 720px;
|
||||
padding: 32px;
|
||||
}
|
||||
|
||||
.guidelines-section {
|
||||
padding: 28px 0;
|
||||
border-bottom: 1px dashed var(--border);
|
||||
}
|
||||
.guidelines-section:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.guidelines-section h2 {
|
||||
font-family: "Brygada 1918", serif;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: var(--text-bright);
|
||||
letter-spacing: -0.01em;
|
||||
margin-bottom: 16px;
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
.guidelines-section h3 {
|
||||
font-family: "Commit Mono", monospace;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
color: var(--text-bright);
|
||||
margin: 20px 0 10px;
|
||||
}
|
||||
|
||||
.guidelines-section p {
|
||||
font-size: 13px;
|
||||
color: var(--text-dim);
|
||||
line-height: 1.7;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.guidelines-section ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 8px 0 14px;
|
||||
}
|
||||
.guidelines-section ul li {
|
||||
position: relative;
|
||||
padding: 2px 0 2px 18px;
|
||||
font-size: 13px;
|
||||
color: var(--text-dim);
|
||||
line-height: 1.7;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
.guidelines-section ul li::before {
|
||||
content: "›";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 2px;
|
||||
color: var(--candle-faint);
|
||||
font-size: 14px;
|
||||
line-height: 1.7;
|
||||
}
|
||||
|
||||
.guidelines-section ol {
|
||||
list-style: none;
|
||||
counter-reset: guideline-item;
|
||||
padding: 0;
|
||||
margin: 8px 0 14px;
|
||||
}
|
||||
.guidelines-section ol li {
|
||||
counter-increment: guideline-item;
|
||||
position: relative;
|
||||
padding: 2px 0 2px 28px;
|
||||
font-size: 13px;
|
||||
color: var(--text-dim);
|
||||
line-height: 1.7;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
.guidelines-section ol li::before {
|
||||
content: counter(guideline-item) ".";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 2px;
|
||||
width: 22px;
|
||||
color: var(--candle-faint);
|
||||
font-variant-numeric: tabular-nums;
|
||||
text-align: right;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.guidelines-section a {
|
||||
color: var(--candle);
|
||||
}
|
||||
|
||||
.guidelines-section strong {
|
||||
color: var(--text-bright);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.welcome-line {
|
||||
font-family: "Brygada 1918", serif;
|
||||
font-style: italic;
|
||||
color: var(--text-bright);
|
||||
font-size: 15px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.guidelines-prose {
|
||||
padding: 20px 16px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Loading…
Add table
Add a link
Reference in a new issue