Tonne of updates
This commit is contained in:
@@ -39,6 +39,7 @@
|
||||
--branch-data: #22D3EE;
|
||||
--branch-devops: #FBBF24;
|
||||
--branch-sovereignty: #F87171;
|
||||
--branch-fundraising: #EC4899;
|
||||
|
||||
/* Surfaces — dark */
|
||||
--bg-deep: #0F172A;
|
||||
@@ -887,6 +888,7 @@
|
||||
.branch-icon.data { background: rgba(34, 211, 238, 0.15); border: 1px solid rgba(34, 211, 238, 0.3); }
|
||||
.branch-icon.devops { background: rgba(251, 191, 36, 0.15); border: 1px solid rgba(251, 191, 36, 0.3); }
|
||||
.branch-icon.sovereignty { background: rgba(248, 113, 113, 0.15); border: 1px solid rgba(248, 113, 113, 0.3); }
|
||||
.branch-icon.fundraising { background: rgba(236, 72, 153, 0.15); border: 1px solid rgba(236, 72, 153, 0.3); }
|
||||
|
||||
.branch-title h3 {
|
||||
font-size: 1.35rem;
|
||||
@@ -935,6 +937,7 @@
|
||||
.branch-data .feature-node { border-top: 2px solid var(--branch-data); }
|
||||
.branch-devops .feature-node { border-top: 2px solid var(--branch-devops); }
|
||||
.branch-sovereignty .feature-node { border-top: 2px solid var(--branch-sovereignty); }
|
||||
.branch-fundraising .feature-node { border-top: 2px solid var(--branch-fundraising); }
|
||||
|
||||
.branch-comm .feature-node:hover { border-color: var(--branch-comm); box-shadow: 0 0 20px rgba(192,132,252,0.2); }
|
||||
.branch-map .feature-node:hover { border-color: var(--branch-map); box-shadow: 0 0 20px rgba(52,211,153,0.2); }
|
||||
@@ -942,6 +945,7 @@
|
||||
.branch-data .feature-node:hover { border-color: var(--branch-data); box-shadow: 0 0 20px rgba(34,211,238,0.2); }
|
||||
.branch-devops .feature-node:hover { border-color: var(--branch-devops); box-shadow: 0 0 20px rgba(251,191,36,0.2); }
|
||||
.branch-sovereignty .feature-node:hover { border-color: var(--branch-sovereignty); box-shadow: 0 0 20px rgba(248,113,113,0.2); }
|
||||
.branch-fundraising .feature-node:hover { border-color: var(--branch-fundraising); box-shadow: 0 0 20px rgba(236,72,153,0.2); }
|
||||
|
||||
/* Branch-specific node icon tinting */
|
||||
.branch-comm .node-icon { background: rgba(192,132,252,0.12); }
|
||||
@@ -950,6 +954,7 @@
|
||||
.branch-data .node-icon { background: rgba(34,211,238,0.12); }
|
||||
.branch-devops .node-icon { background: rgba(251,191,36,0.12); }
|
||||
.branch-sovereignty .node-icon { background: rgba(248,113,113,0.12); }
|
||||
.branch-fundraising .node-icon { background: rgba(236,72,153,0.12); }
|
||||
|
||||
.node-header {
|
||||
display: flex;
|
||||
@@ -1555,7 +1560,7 @@
|
||||
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Changemaker Lite" />
|
||||
<meta property="og:description" content="Build Power. Not Rent It. Own your digital infrastructure." />
|
||||
<meta property="og:description" content="Grow Power. Don't Rent It. Own your digital infrastructure." />
|
||||
<meta property="og:image" content="https://bnkserve.org/assets/images/social/index.png" />
|
||||
<meta property="og:image:type" content="image/png" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
@@ -1563,7 +1568,7 @@
|
||||
<meta property="og:url" content="https://bnkserve.org/" />
|
||||
<meta property="twitter:card" content="summary_large_image" />
|
||||
<meta property="twitter:title" content="Changemaker Lite" />
|
||||
<meta property="twitter:description" content="Build Power. Not Rent It. Own your digital infrastructure." />
|
||||
<meta property="twitter:description" content="Grow Power. Don't Rent It. Own your digital infrastructure." />
|
||||
<meta property="twitter:image" content="https://bnkserve.org/assets/images/social/index.png" />
|
||||
</head>
|
||||
<body>
|
||||
@@ -1661,7 +1666,7 @@
|
||||
<div class="hero-badge">Self-Hosted Campaign Infrastructure</div>
|
||||
<h1>Grow Power.<br>Don't Rent It.</h1>
|
||||
<p class="hero-subtitle">
|
||||
Complete political independence on your own infrastructure. Own every byte of data, control every system.
|
||||
A deeply integrated and opinionated collection of free and open source services and production ready applications for growing political movements. Campaigns, canvassing, fundraising, team chat, and media — all on your own infrastructure.
|
||||
No corporate surveillance. No foreign interference. No monthly ransoms. Free and open source.
|
||||
</p>
|
||||
<div class="hero-cta">
|
||||
@@ -1698,7 +1703,7 @@
|
||||
<div class="hero-stat-label">Self-Hosted</div>
|
||||
</div>
|
||||
<div class="hero-stat">
|
||||
<div class="hero-stat-value">26+</div>
|
||||
<div class="hero-stat-value">30+</div>
|
||||
<div class="hero-stat-label">Integrated Tools</div>
|
||||
</div>
|
||||
<div class="hero-stat">
|
||||
@@ -1760,7 +1765,7 @@
|
||||
<div class="container">
|
||||
<div class="section-header reveal">
|
||||
<h2>The Network</h2>
|
||||
<p>26 tools connected — each node strengthens the whole</p>
|
||||
<p>30+ tools connected — each node strengthens the whole</p>
|
||||
</div>
|
||||
|
||||
<!-- ====== BRANCH 1: Communication ====== -->
|
||||
@@ -1805,6 +1810,22 @@
|
||||
<p>Public response collection with moderation, upvoting, and verification. Showcase supporter voices on your campaigns.</p>
|
||||
<div class="node-tags"><span class="node-tag">Moderation</span><span class="node-tag">Upvoting</span><span class="node-tag">Verification</span></div>
|
||||
</div>
|
||||
<div class="feature-node">
|
||||
<div class="node-header">
|
||||
<div class="node-icon">🚀</div>
|
||||
<h4>Rocket.Chat</h4>
|
||||
</div>
|
||||
<p>Self-hosted team chat with SSO integration. Automatic channel notifications for shift signups, canvass sessions, and campaign responses.</p>
|
||||
<div class="node-tags"><span class="node-tag">SSO</span><span class="node-tag">Channels</span><span class="node-tag">Slack alternative</span></div>
|
||||
</div>
|
||||
<div class="feature-node">
|
||||
<div class="node-header">
|
||||
<div class="node-icon">🔔</div>
|
||||
<h4>Smart Notifications</h4>
|
||||
</div>
|
||||
<p>Async notification queue for admin alerts and volunteer feedback. Shift reminders, session summaries, and signup confirmations.</p>
|
||||
<div class="node-tags"><span class="node-tag">BullMQ</span><span class="node-tag">Reminders</span><span class="node-tag">Summaries</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1911,6 +1932,14 @@
|
||||
<p>Full VS Code in the browser. Edit configuration, templates, and code from anywhere without SSH.</p>
|
||||
<div class="node-tags"><span class="node-tag">VS Code</span><span class="node-tag">Browser IDE</span><span class="node-tag">Extensions</span></div>
|
||||
</div>
|
||||
<div class="feature-node">
|
||||
<div class="node-header">
|
||||
<div class="node-icon">✏</div>
|
||||
<h4>Excalidraw Whiteboard</h4>
|
||||
</div>
|
||||
<p>Collaborative diagramming and whiteboard tool. Plan canvassing routes, sketch campaign strategies, and brainstorm as a team.</p>
|
||||
<div class="node-tags"><span class="node-tag">Collaborative</span><span class="node-tag">Diagrams</span><span class="node-tag">Real-time</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2001,10 +2030,71 @@
|
||||
<p>PostgreSQL dumps, Listmonk data, uploads archive, and optional S3 upload. One-command backup script.</p>
|
||||
<div class="node-tags"><span class="node-tag">PostgreSQL</span><span class="node-tag">S3 optional</span><span class="node-tag">Scripted</span></div>
|
||||
</div>
|
||||
<div class="feature-node">
|
||||
<div class="node-header">
|
||||
<div class="node-icon">🔐</div>
|
||||
<h4>Vaultwarden</h4>
|
||||
</div>
|
||||
<p>Self-hosted Bitwarden-compatible password manager. Secure credential sharing for your team with real-time sync and browser extensions.</p>
|
||||
<div class="node-tags"><span class="node-tag">Bitwarden</span><span class="node-tag">Team sharing</span><span class="node-tag">Encrypted</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ====== BRANCH 6: Data Sovereignty ====== -->
|
||||
<!-- ====== BRANCH 6: Fundraising & Commerce ====== -->
|
||||
<div class="branch branch-fundraising" data-branch="fundraising">
|
||||
<div class="branch-header reveal">
|
||||
<div class="branch-icon fundraising">💳</div>
|
||||
<div class="branch-title">
|
||||
<h3>Fundraising & Commerce</h3>
|
||||
<p>Donations, subscriptions, product sales, and supporter monetization</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nodes-grid stagger">
|
||||
<div class="feature-node">
|
||||
<div class="node-header">
|
||||
<div class="node-icon">💰</div>
|
||||
<h4>Donation Platform</h4>
|
||||
</div>
|
||||
<p>Accept one-time donations with configurable suggested amounts, anonymous giving, and automatic tax receipts via email.</p>
|
||||
<div class="node-tags"><span class="node-tag">Stripe</span><span class="node-tag">Anonymous</span><span class="node-tag">Receipts</span></div>
|
||||
</div>
|
||||
<div class="feature-node">
|
||||
<div class="node-header">
|
||||
<div class="node-icon">🔄</div>
|
||||
<h4>Subscription Plans</h4>
|
||||
</div>
|
||||
<p>Recurring revenue with tiered plans, monthly and yearly billing, and automatic renewal management. Replace Patreon.</p>
|
||||
<div class="node-tags"><span class="node-tag">Recurring</span><span class="node-tag">Tiers</span><span class="node-tag">MRR tracking</span></div>
|
||||
</div>
|
||||
<div class="feature-node">
|
||||
<div class="node-header">
|
||||
<div class="node-icon">🛒</div>
|
||||
<h4>Product Shop</h4>
|
||||
</div>
|
||||
<p>Sell digital products, event tickets, and merchandise. Inventory management, download delivery, and capacity limits.</p>
|
||||
<div class="node-tags"><span class="node-tag">Digital goods</span><span class="node-tag">Events</span><span class="node-tag">Inventory</span></div>
|
||||
</div>
|
||||
<div class="feature-node">
|
||||
<div class="node-header">
|
||||
<div class="node-icon">📊</div>
|
||||
<h4>Payment Dashboard</h4>
|
||||
</div>
|
||||
<p>Revenue analytics with subscriber counts, MRR tracking, donation history, and CSV exports for accounting.</p>
|
||||
<div class="node-tags"><span class="node-tag">Analytics</span><span class="node-tag">CSV export</span><span class="node-tag">Refunds</span></div>
|
||||
</div>
|
||||
<div class="feature-node">
|
||||
<div class="node-header">
|
||||
<div class="node-icon">📢</div>
|
||||
<h4>Gallery Ads</h4>
|
||||
</div>
|
||||
<p>Promote donations, products, and subscriptions within the media gallery. Visibility targeting, scheduling, and click analytics.</p>
|
||||
<div class="node-tags"><span class="node-tag">Targeting</span><span class="node-tag">Scheduling</span><span class="node-tag">CTR tracking</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ====== BRANCH 7: Data Sovereignty ====== -->
|
||||
<div class="branch branch-sovereignty" data-branch="sovereignty">
|
||||
<div class="branch-header reveal">
|
||||
<div class="branch-icon sovereignty">🇨🇦</div>
|
||||
@@ -2149,7 +2239,7 @@
|
||||
<div class="price">$0</div>
|
||||
<div class="price-period">forever</div>
|
||||
<ul class="pricing-features">
|
||||
<li>All 26 campaign tools</li>
|
||||
<li>All 30+ campaign tools</li>
|
||||
<li>Unlimited users & data</li>
|
||||
<li>Complete documentation</li>
|
||||
<li>Community support</li>
|
||||
@@ -2592,6 +2682,7 @@
|
||||
{ sel: '.branch[data-branch="content"]',headerSel: '.branch[data-branch="content"] .branch-header',cardSel: '.feature-node', color: '#FB923C', angle: -0.22 },
|
||||
{ sel: '.branch[data-branch="data"]', headerSel: '.branch[data-branch="data"] .branch-header', cardSel: '.feature-node', color: '#22D3EE', angle: 0.22 },
|
||||
{ sel: '.branch[data-branch="devops"]', headerSel: '.branch[data-branch="devops"] .branch-header', cardSel: '.feature-node', color: '#FBBF24', angle: -0.08 },
|
||||
{ sel: '.branch[data-branch="fundraising"]', headerSel: '.branch[data-branch="fundraising"] .branch-header', cardSel: '.feature-node', color: '#EC4899', angle: 0.18 },
|
||||
{ sel: '.branch[data-branch="sovereignty"]', headerSel: '.branch[data-branch="sovereignty"] .branch-header', cardSel: '.feature-node', color: '#F87171', angle: 0.08 },
|
||||
{ sel: '.live-sites', headerSel: '.live-sites .section-header', cardSel: '.site-card', color: '#8B5CF6', angle: -0.12 },
|
||||
{ sel: '#pricing', headerSel: '#pricing .section-header', cardSel: '.pricing-card, .cost-compare', color: '#C084FC', angle: 0.12 },
|
||||
|
||||
Reference in New Issue
Block a user