diff --git a/LANDING_PAGE_DEVELOPMENT_PLAN.md b/LANDING_PAGE_DEVELOPMENT_PLAN.md new file mode 100644 index 0000000..53a176a --- /dev/null +++ b/LANDING_PAGE_DEVELOPMENT_PLAN.md @@ -0,0 +1,300 @@ +# Changemaker Lite Landing Page Development Plan +*UPDATED: Grid-Optimized Media Integration Strategy* + +## Executive Summary +We've revolutionized the Changemaker Lite landing page with an Alibaba-style grid system that maximizes screen real estate while aggressively promoting our self-hosting message: **"This Site Runs On Changemaker Lite."** The page is now a living proof-of-concept that converts visitors through demonstration, not just explanation. + +## π SELF-HOSTING HYPE STRATEGY +**Core Message:** "The Infrastructure That Runs Itself" + +### Primary Positioning: +- **"π€― This Site Runs On Changemaker Lite"** - Meta-badge visible throughout +- **Live Proof Points** - Show actual BNKops infrastructure running on the same hardware +- **Real Savings Data** - Our actual $13,800/year savings vs corporate SaaS +- **Zero Corporate Dependencies** - Emphasize complete digital liberation + +### Proof-of-Concept Integration: +1. **Meta-Validation** - Every page element proves the platform works +2. **Behind-the-Scenes Access** - Video demos of actual running services +3. **Real Stats Display** - Live subscriber counts, uptime metrics, cost savings +4. **Transparent Operations** - Show the actual $200 hardware running everything + +## π― GRID SYSTEM ARCHITECTURE +**Maximum Screen Real Estate - Alibaba Style** + +### Grid Layout Principles: +- **Tight Spacing** - 0.5rem base gaps for content density +- **Modular Cards** - Every element in contained, hover-interactive cards +- **Responsive Scaling** - 4-column desktop β 2-column tablet β 1-column mobile +- **Information Hierarchy** - Color-coded importance levels + +### Section Structure: +1. **Hero Grid** - 2x2 layout: Main message + Video + Stats + Trust indicators +2. **Proof Grid** - 4-card layout showing live infrastructure +3. **Hardware Grid** - 3-option purchase matrix +4. **Services Grid** - Tight showcase of all 11 included services + +## πΉ MEDIA INTEGRATION STRATEGY + +### Video Content Requirements: + +#### 1. HERO VIDEO: "See Changemaker Lite In Action" (3:00) +**Script Outline:** +``` +[0:00-0:15] HOOK: "What you're looking at right now is running on $200 hardware" +[0:15-0:45] TERMINAL DEMO: docker compose ps, service URLs, real data +[0:45-1:30] DASHBOARD TOUR: Homepage overview, all 11 services working +[1:30-2:15] BACKEND ACCESS: NocoDB, Listmonk, email campaigns +[2:15-2:45] COST COMPARISON: Corporate bills vs our $50/month +[2:45-3:00] CTA: "Get the same setup for $200" +``` + +#### 2. BACKEND DEMO: "Homepage Dashboard Tour" (1:30) +**Script Outline:** +``` +[0:00-0:20] Homepage overview - all services green status +[0:20-0:50] Click through key services (NocoDB, Listmonk, Gitea) +[0:50-1:10] Show actual data - newsletters, databases, code repos +[1:10-1:30] "This is what you get out of the box" +``` + +#### 3. SETUP DEMO: "30-Minute Time-lapse" (5:23) +**Script Outline:** +``` +[0:00-0:30] Unboxing hardware, connection setup +[0:30-2:00] Initial boot, docker compose deployment +[2:00-3:30] Service configuration, domain setup +[3:30-4:30] Testing all services, sending first email +[4:30-5:23] Final dashboard tour, "You're live!" +``` + +#### 4. COST BREAKDOWN: "Corporate vs Changemaker" (2:00) +**Script Outline:** +``` +[0:00-0:30] Show typical SaaS stack bills ($1,200/mo) +[0:30-1:00] Break down each service cost vs Changemaker equivalent +[1:00-1:30] Annual savings calculation ($13,800) +[1:30-2:00] "Money for organizing, not shareholders" +``` + +### Video Production Specs: +- **Resolution:** 1920x1080 minimum, 4K preferred for hero video +- **Format:** MP4 with H.264 encoding +- **Length:** Keep under 3 minutes for engagement +- **Captions:** Required for accessibility +- **Hosting:** Self-hosted on Changemaker Lite (of course!) + +## π¨ VISUAL DESIGN UPDATES + +### Grid-Optimized Elements: +- **Micro-interactions** - Card hovers, button states, loading animations +- **Progressive Enhancement** - Mobile-first, desktop-enhanced +- **Performance Focus** - Lazy loading, optimized assets, minimal JS +- **Brand Consistency** - Trans flag colors throughout + +### Component Library: +1. **Grid Cards** - Standardized containers with consistent padding +2. **Video Placeholders** - Interactive preview states with play buttons +3. **Stat Displays** - Animated counters with real data integration +4. **CTA Buttons** - Primary/secondary hierarchy with hover effects + +## π° CONVERSION OPTIMIZATION + +### Three-Path Strategy: +1. **Plug & Play ($200)** - Recommended, ships in 5 days +2. **DIY Install (Free)** - Technical users, community support +3. **Managed Hosting ($150/mo)** - Hands-off but still your infrastructure + +### Conversion Elements: +- **Social Proof** - "Powers BNKops.com" trust indicators +- **Urgency** - "Ships in 5 days" immediacy +- **Risk Reduction** - "30-minute setup" simplicity promise +- **Value Demonstration** - Live cost savings calculator + +## π CONTENT PERSONALITY + +### Voice & Tone: +- **Confident Revolutionary** - "We're not just selling it - we're living it" +- **Technical Transparency** - Show the actual infrastructure +- **Community-Focused** - "Trans liberation tech" +- **Anti-Corporate** - "Zero surveillance" messaging + +### Key Phrases: +- "The Infrastructure That Runs Itself" +- "What You're Looking At Right Now" +- "Money for organizing, not shareholders" +- "Your data, your power, your movement" +- "Digital liberation movement" + +## π SUCCESS METRICS + +### Primary KPIs: +1. **Hardware Orders** - Track $200 package conversions +2. **Installation Attempts** - DIY guide engagement +3. **Video Completion Rates** - Media effectiveness +4. **Time on Page** - Grid layout engagement + +### Secondary Metrics: +1. **Self-hosting Message Retention** - Post-visit surveys +2. **Social Shares** - Viral potential tracking +3. **Return Visits** - Community building indicator +4. **Email Signups** - Newsletter conversion funnel + +## π§ TECHNICAL IMPLEMENTATION + +### Completed Updates: +1. β **Grid-optimized CSS** - Alibaba-style layout system +2. β **Self-hosting badges** - Meta-validation throughout +3. β **Grid HTML structure** - Maximum screen real estate utilization +4. β **Video placeholder integration** - Ready for content production + +### Next Phase: +1. πΉ **Video Production** - Execute scripted content strategy +2. π **Analytics Setup** - Privacy-respecting conversion tracking +3. π§ͺ **A/B Testing Framework** - Message optimization capability +4. π **Performance Optimization** - Mobile loading improvements + +### Performance Targets: +- **Load Time:** <2 seconds on 3G +- **Mobile Score:** >90 Lighthouse +- **Accessibility:** AA WCAG compliance +- **SEO:** Structured data, meta optimization + +## π¬ VIDEO PRODUCTION ROADMAP + +### Phase 1: Hero Content (Priority 1) +1. **"See Changemaker Lite In Action" (3:00)** - Main conversion driver +2. **"30-Minute Setup Time-lapse" (5:23)** - Risk reduction + +### Phase 2: Proof Content (Priority 2) +3. **"Homepage Dashboard Tour" (1:30)** - Technical demonstration +4. **"Corporate vs Changemaker Costs" (2:00)** - Value proposition + +### Phase 3: Advanced Content (Priority 3) +5. **"Behind the Scenes: How BNKops Runs" (4:00)** - Advanced proof +6. **"Community Testimonials" (2:30)** - Social proof compilation + +### Production Requirements: +- **Screen Recording:** OBS Studio with 1080p60 capture +- **Hardware Demo:** Good lighting, stable camera setup +- **Audio:** Clear narration, background music optional +- **Editing:** Simple cuts, captions, brand consistency +- **Hosting:** Self-hosted on Changemaker Lite infrastructure + +## π CONVERSION FUNNEL OPTIMIZATION + +### Landing Paths: +1. **Curious Visitor** β Video Demo β Understanding β Newsletter Signup +2. **Ready Buyer** β "Order Hardware" β Immediate conversion +3. **DIY Techie** β Installation Guide β Community Engagement +4. **Managed Solution** β Hosting Inquiry β Sales Process + +### Optimization Priorities: +1. **Video Completion Rates** - Shorter, punchier content +2. **Hardware Order Flow** - Streamlined purchase process +3. **Newsletter Value** - Immediate PDF guides/resources +4. **Mobile Experience** - Touch-optimized interactions + +## π― IMMEDIATE ACTION ITEMS + +### This Week: +1. **Video Script Finalization** - Get all 4 core scripts approved +2. **Screen Recording Setup** - Prepare clean demo environment +3. **Analytics Integration** - Privacy-respecting tracking setup +4. **Mobile Testing** - Cross-device grid layout verification + +### Next Week: +1. **Hero Video Production** - Priority 1 content creation +2. **Setup Demo Recording** - Time-lapse capture +3. **Performance Audit** - Loading speed optimization +4. **A/B Testing Framework** - Message variation testing + +### Month 1: +1. **Full Video Suite** - All 6 videos produced and integrated +2. **Conversion Optimization** - Data-driven improvements +3. **Community Feedback** - User testing and iteration +4. **SEO Enhancement** - Search visibility improvements + +## π SUCCESS DEFINITION + +### Quantitative Goals: +- **50% video completion rate** for hero video +- **15% conversion rate** from visitor to newsletter signup +- **10% hardware order rate** from engaged visitors +- **<2 second load time** on mobile devices + +### Qualitative Goals: +- **"I get it now"** - Clear self-hosting value proposition +- **"This looks professional"** - Trust and credibility establishment +- **"I want this"** - Emotional connection to digital sovereignty +- **"It's actually simple"** - Technical barrier reduction + +--- + +**THE LANDING PAGE IS NOW A LIVING PROOF THAT CHANGEMAKER LITE WORKS. EVERY VISITOR SEES EXACTLY WHAT THEY'LL GET - BECAUSE THEY'RE LOOKING AT IT.** + +## πΉ FUTURE MEDIA INTEGRATION + +### Video Content to Add Later: + +#### 1. HERO VIDEO: "The FOSS Campaign Revolution" (2:30) +**Location:** Hero grid section +**Script Outline:** +``` +[0:00-0:15] HOOK: "Stop paying $1,200/month for campaign tech" +[0:15-0:45] PROBLEM: Show corporate SaaS bills, vendor lock-in +[0:45-1:30] SOLUTION: Changemaker Lite demo - all services running +[1:30-2:00] PROOF: Real campaigns using it, cost savings +[2:00-2:30] CTA: "Join the digital liberation movement" +``` + +#### 2. SERVICE DEMOS: Individual Tool Showcases (0:30 each) +**Location:** Service cards in solution grid +- **Listmonk Demo:** Email campaign creation +- **NocoDB Demo:** Voter database management +- **Chatwoot Demo:** Text banking in action +- **n8n Demo:** Automation workflows + +#### 3. COMPARISON VIDEO: "Corporate vs FOSS" (1:30) +**Location:** Comparison grid section +**Content:** Side-by-side comparison of costs, features, data ownership + +#### 4. SETUP WALKTHROUGH: "From Box to Campaign" (5:00) +**Location:** Get started section +**Content:** Complete setup process time-lapse + +### Screenshot Requirements: +- Dashboard overview showing all services +- Individual service interfaces +- Cost comparison charts +- Hardware photos (unboxing, setup) +- Real campaign examples (anonymized) + +### Animation Enhancements: +- Service icon animations (already implemented) +- Interactive comparison table +- Live visitor counter +- Real-time savings calculator + +## π― COMPLETED UPDATES + +### Page Focus: +β **Repositioned as FOSS political campaign solution** +β **Removed video placeholders for cleaner grid** +β **Added comparison with corporate alternatives** +β **Emphasized cost savings and data ownership** + +### Design Implementation: +β **Ultra-tight grid system (Alibaba-style)** +β **Neon animations with trans flag colors** +β **Smooth scroll and parallax effects** +β **Responsive grid that reflows perfectly** +β **Stagger animations on scroll** +β **Interactive hover states** + +### Content Strategy: +β **Clear problem/solution messaging** +β **Service-by-service breakdown** +β **Direct corporate alternative comparisons** +β **Three-tier pricing strategy** +β **Trust indicators and social proof** diff --git a/README.md b/README.md index 63dd223..d2b2a44 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Changemaker Lite is a streamlined documentation and development platform featuri ```bash # Clone the repository -git clone https://gitea.bnkops.com/admin/Changemaker.git +git clone https://gitea.bnkops.com/admin/changemaker.lite cd changemaker.lite # Configure environment (creates .env file) diff --git a/mkdocs/.cache/plugin/social/09bbbc93a961c0990fa7e3217673978f.png b/mkdocs/.cache/plugin/social/09bbbc93a961c0990fa7e3217673978f.png new file mode 100644 index 0000000..3bec336 Binary files /dev/null and b/mkdocs/.cache/plugin/social/09bbbc93a961c0990fa7e3217673978f.png differ diff --git a/mkdocs/.cache/plugin/social/2030a47afa1104093ebf519a6f22a7d1.png b/mkdocs/.cache/plugin/social/2030a47afa1104093ebf519a6f22a7d1.png new file mode 100644 index 0000000..b00e9d9 Binary files /dev/null and b/mkdocs/.cache/plugin/social/2030a47afa1104093ebf519a6f22a7d1.png differ diff --git a/mkdocs/.cache/plugin/social/2ebef08d3656ba930098da817110716f.png b/mkdocs/.cache/plugin/social/2ebef08d3656ba930098da817110716f.png new file mode 100644 index 0000000..2a8927b Binary files /dev/null and b/mkdocs/.cache/plugin/social/2ebef08d3656ba930098da817110716f.png differ diff --git a/mkdocs/.cache/plugin/social/361e599f2484bc4c4e5e1bf247f2da41.png b/mkdocs/.cache/plugin/social/361e599f2484bc4c4e5e1bf247f2da41.png new file mode 100644 index 0000000..0e645bf Binary files /dev/null and b/mkdocs/.cache/plugin/social/361e599f2484bc4c4e5e1bf247f2da41.png differ diff --git a/mkdocs/.cache/plugin/social/3df345a41836bfa1f24aa074839aff71.png b/mkdocs/.cache/plugin/social/3df345a41836bfa1f24aa074839aff71.png new file mode 100644 index 0000000..f62f0a0 Binary files /dev/null and b/mkdocs/.cache/plugin/social/3df345a41836bfa1f24aa074839aff71.png differ diff --git a/mkdocs/.cache/plugin/social/440935fb98e7e27d2e2cfdc0bbbdc6ae.png b/mkdocs/.cache/plugin/social/440935fb98e7e27d2e2cfdc0bbbdc6ae.png new file mode 100644 index 0000000..cce4739 Binary files /dev/null and b/mkdocs/.cache/plugin/social/440935fb98e7e27d2e2cfdc0bbbdc6ae.png differ diff --git a/mkdocs/.cache/plugin/social/461dbf70704556ebdba00d9b93fdd71a.png b/mkdocs/.cache/plugin/social/461dbf70704556ebdba00d9b93fdd71a.png new file mode 100644 index 0000000..8c9d2bc Binary files /dev/null and b/mkdocs/.cache/plugin/social/461dbf70704556ebdba00d9b93fdd71a.png differ diff --git a/mkdocs/.cache/plugin/social/59775a558e0236f880c9401534507ab3.png b/mkdocs/.cache/plugin/social/59775a558e0236f880c9401534507ab3.png new file mode 100644 index 0000000..7121640 Binary files /dev/null and b/mkdocs/.cache/plugin/social/59775a558e0236f880c9401534507ab3.png differ diff --git a/mkdocs/.cache/plugin/social/5c8323641288ce96dac5e5d0c03d1d88.png b/mkdocs/.cache/plugin/social/5c8323641288ce96dac5e5d0c03d1d88.png new file mode 100644 index 0000000..d3f2f01 Binary files /dev/null and b/mkdocs/.cache/plugin/social/5c8323641288ce96dac5e5d0c03d1d88.png differ diff --git a/mkdocs/.cache/plugin/social/5dc82dd4549191e7484d163c2916414e.png b/mkdocs/.cache/plugin/social/5dc82dd4549191e7484d163c2916414e.png new file mode 100644 index 0000000..340b120 Binary files /dev/null and b/mkdocs/.cache/plugin/social/5dc82dd4549191e7484d163c2916414e.png differ diff --git a/mkdocs/.cache/plugin/social/63fe0d7764ab46b6b1a896c92f5f08ad.png b/mkdocs/.cache/plugin/social/63fe0d7764ab46b6b1a896c92f5f08ad.png new file mode 100644 index 0000000..de606a1 Binary files /dev/null and b/mkdocs/.cache/plugin/social/63fe0d7764ab46b6b1a896c92f5f08ad.png differ diff --git a/mkdocs/.cache/plugin/social/6e0a466e141c6410aa3b931db727ad5a.png b/mkdocs/.cache/plugin/social/6e0a466e141c6410aa3b931db727ad5a.png new file mode 100644 index 0000000..98db777 Binary files /dev/null and b/mkdocs/.cache/plugin/social/6e0a466e141c6410aa3b931db727ad5a.png differ diff --git a/mkdocs/.cache/plugin/social/7339eda49b6ad5cd292f8762fe09c799.png b/mkdocs/.cache/plugin/social/7339eda49b6ad5cd292f8762fe09c799.png new file mode 100644 index 0000000..3a4518e Binary files /dev/null and b/mkdocs/.cache/plugin/social/7339eda49b6ad5cd292f8762fe09c799.png differ diff --git a/mkdocs/.cache/plugin/social/7b06061b4b9b4a82384b4b9cf809471d.png b/mkdocs/.cache/plugin/social/7b06061b4b9b4a82384b4b9cf809471d.png new file mode 100644 index 0000000..1a165eb Binary files /dev/null and b/mkdocs/.cache/plugin/social/7b06061b4b9b4a82384b4b9cf809471d.png differ diff --git a/mkdocs/.cache/plugin/social/7cc7e1ec8732cd69b83aa549bfb13cc3.png b/mkdocs/.cache/plugin/social/7cc7e1ec8732cd69b83aa549bfb13cc3.png new file mode 100644 index 0000000..6c00bdf Binary files /dev/null and b/mkdocs/.cache/plugin/social/7cc7e1ec8732cd69b83aa549bfb13cc3.png differ diff --git a/mkdocs/.cache/plugin/social/89cb9170565057569d85b76ef729d173.png b/mkdocs/.cache/plugin/social/89cb9170565057569d85b76ef729d173.png new file mode 100644 index 0000000..2762632 Binary files /dev/null and b/mkdocs/.cache/plugin/social/89cb9170565057569d85b76ef729d173.png differ diff --git a/mkdocs/.cache/plugin/social/8b4d2b2992e85f6cc7dcfc9a7eb7c502.png b/mkdocs/.cache/plugin/social/8b4d2b2992e85f6cc7dcfc9a7eb7c502.png new file mode 100644 index 0000000..11040cd Binary files /dev/null and b/mkdocs/.cache/plugin/social/8b4d2b2992e85f6cc7dcfc9a7eb7c502.png differ diff --git a/mkdocs/.cache/plugin/social/8e08f754f4d8c04a82391ae575aafaaa.png b/mkdocs/.cache/plugin/social/8e08f754f4d8c04a82391ae575aafaaa.png new file mode 100644 index 0000000..f84a58e Binary files /dev/null and b/mkdocs/.cache/plugin/social/8e08f754f4d8c04a82391ae575aafaaa.png differ diff --git a/mkdocs/.cache/plugin/social/9ce7dbc001bbf6d2aac4483d3c682a9b.png b/mkdocs/.cache/plugin/social/9ce7dbc001bbf6d2aac4483d3c682a9b.png new file mode 100644 index 0000000..f14d6ca Binary files /dev/null and b/mkdocs/.cache/plugin/social/9ce7dbc001bbf6d2aac4483d3c682a9b.png differ diff --git a/mkdocs/.cache/plugin/social/9d5df4651afceab422984c33bfbdc9ed.png b/mkdocs/.cache/plugin/social/9d5df4651afceab422984c33bfbdc9ed.png new file mode 100644 index 0000000..1c05739 Binary files /dev/null and b/mkdocs/.cache/plugin/social/9d5df4651afceab422984c33bfbdc9ed.png differ diff --git a/mkdocs/.cache/plugin/social/a2ad821d050eaeab17c1c5cc13a3277c.png b/mkdocs/.cache/plugin/social/a2ad821d050eaeab17c1c5cc13a3277c.png new file mode 100644 index 0000000..63c7038 Binary files /dev/null and b/mkdocs/.cache/plugin/social/a2ad821d050eaeab17c1c5cc13a3277c.png differ diff --git a/mkdocs/.cache/plugin/social/a33fe3375450956515c8b6a627d12fd1.png b/mkdocs/.cache/plugin/social/a33fe3375450956515c8b6a627d12fd1.png new file mode 100644 index 0000000..c6336a5 Binary files /dev/null and b/mkdocs/.cache/plugin/social/a33fe3375450956515c8b6a627d12fd1.png differ diff --git a/mkdocs/.cache/plugin/social/b3b12e8c71c3f991609d278875d5ca18.png b/mkdocs/.cache/plugin/social/b3b12e8c71c3f991609d278875d5ca18.png new file mode 100644 index 0000000..e5a8891 Binary files /dev/null and b/mkdocs/.cache/plugin/social/b3b12e8c71c3f991609d278875d5ca18.png differ diff --git a/mkdocs/.cache/plugin/social/c502f7e3a2048dd87b10fa6ff5291aab.png b/mkdocs/.cache/plugin/social/c502f7e3a2048dd87b10fa6ff5291aab.png new file mode 100644 index 0000000..0596860 Binary files /dev/null and b/mkdocs/.cache/plugin/social/c502f7e3a2048dd87b10fa6ff5291aab.png differ diff --git a/mkdocs/.cache/plugin/social/cb389f13acf697cb6aa15c98fec4a25a.png b/mkdocs/.cache/plugin/social/cb389f13acf697cb6aa15c98fec4a25a.png new file mode 100644 index 0000000..ffcc330 Binary files /dev/null and b/mkdocs/.cache/plugin/social/cb389f13acf697cb6aa15c98fec4a25a.png differ diff --git a/mkdocs/.cache/plugin/social/fbe77cdbcef871b9d78306f1c9bdce51.png b/mkdocs/.cache/plugin/social/fbe77cdbcef871b9d78306f1c9bdce51.png new file mode 100644 index 0000000..1dbabe1 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fbe77cdbcef871b9d78306f1c9bdce51.png differ diff --git a/mkdocs/.cache/plugin/social/fd4de0e14e62b2216135775537405340.png b/mkdocs/.cache/plugin/social/fd4de0e14e62b2216135775537405340.png new file mode 100644 index 0000000..8697881 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fd4de0e14e62b2216135775537405340.png differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Black Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Black Italic.ttf new file mode 100644 index 0000000..b33602f Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Black Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Black.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Black.ttf new file mode 100644 index 0000000..89673de Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Black.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Bold Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Bold Italic.ttf new file mode 100644 index 0000000..0d19c1a Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Bold Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Bold.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Bold.ttf new file mode 100644 index 0000000..cd13f60 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Bold.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraBold Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraBold Italic.ttf new file mode 100644 index 0000000..df45062 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraBold Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraBold.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraBold.ttf new file mode 100644 index 0000000..e71c601 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraBold.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraLight Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraLight Italic.ttf new file mode 100644 index 0000000..275f305 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraLight Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraLight.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraLight.ttf new file mode 100644 index 0000000..f9c6cfc Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt ExtraLight.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Italic.ttf new file mode 100644 index 0000000..14d3595 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Light Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Light Italic.ttf new file mode 100644 index 0000000..f69e18b Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Light Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Light.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Light.ttf new file mode 100644 index 0000000..acae361 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Light.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Medium Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Medium Italic.ttf new file mode 100644 index 0000000..5c8c8b1 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Medium Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Medium.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Medium.ttf new file mode 100644 index 0000000..71d9017 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Medium.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Regular.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Regular.ttf new file mode 100644 index 0000000..ce097c8 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Regular.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt SemiBold Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt SemiBold Italic.ttf new file mode 100644 index 0000000..d9c9896 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt SemiBold Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt SemiBold.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt SemiBold.ttf new file mode 100644 index 0000000..053185e Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt SemiBold.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Thin Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Thin Italic.ttf new file mode 100644 index 0000000..134e837 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Thin Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/18pt Thin.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Thin.ttf new file mode 100644 index 0000000..e68ec47 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/18pt Thin.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Black Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Black Italic.ttf new file mode 100644 index 0000000..b89d61c Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Black Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Black.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Black.ttf new file mode 100644 index 0000000..dbb1b3b Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Black.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Bold Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Bold Italic.ttf new file mode 100644 index 0000000..d1c0f53 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Bold Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Bold.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Bold.ttf new file mode 100644 index 0000000..46b3583 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Bold.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraBold Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraBold Italic.ttf new file mode 100644 index 0000000..3461a92 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraBold Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraBold.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraBold.ttf new file mode 100644 index 0000000..b775c08 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraBold.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraLight Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraLight Italic.ttf new file mode 100644 index 0000000..c634a5d Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraLight Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraLight.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraLight.ttf new file mode 100644 index 0000000..2ec6ca3 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt ExtraLight.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Italic.ttf new file mode 100644 index 0000000..1048b07 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Light Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Light Italic.ttf new file mode 100644 index 0000000..ded5a75 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Light Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Light.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Light.ttf new file mode 100644 index 0000000..1a2a6f2 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Light.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Medium Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Medium Italic.ttf new file mode 100644 index 0000000..be091b1 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Medium Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Medium.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Medium.ttf new file mode 100644 index 0000000..5c88739 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Medium.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Regular.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Regular.ttf new file mode 100644 index 0000000..6b088a7 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Regular.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt SemiBold Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt SemiBold Italic.ttf new file mode 100644 index 0000000..6921df2 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt SemiBold Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt SemiBold.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt SemiBold.ttf new file mode 100644 index 0000000..ceb8576 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt SemiBold.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Thin Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Thin Italic.ttf new file mode 100644 index 0000000..a3e6feb Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Thin Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/24pt Thin.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Thin.ttf new file mode 100644 index 0000000..3505b35 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/24pt Thin.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Black Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Black Italic.ttf new file mode 100644 index 0000000..3c8fdf9 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Black Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Black.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Black.ttf new file mode 100644 index 0000000..66a252f Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Black.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Bold Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Bold Italic.ttf new file mode 100644 index 0000000..6fce50a Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Bold Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Bold.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Bold.ttf new file mode 100644 index 0000000..d17828b Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Bold.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraBold Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraBold Italic.ttf new file mode 100644 index 0000000..1a56735 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraBold Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraBold.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraBold.ttf new file mode 100644 index 0000000..6d87cae Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraBold.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraLight Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraLight Italic.ttf new file mode 100644 index 0000000..90e2f20 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraLight Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraLight.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraLight.ttf new file mode 100644 index 0000000..d42b3f5 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt ExtraLight.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Italic.ttf new file mode 100644 index 0000000..c2a143a Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Light Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Light Italic.ttf new file mode 100644 index 0000000..6b90b76 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Light Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Light.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Light.ttf new file mode 100644 index 0000000..5eeff3a Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Light.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Medium Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Medium Italic.ttf new file mode 100644 index 0000000..7481e7b Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Medium Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Medium.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Medium.ttf new file mode 100644 index 0000000..00120fe Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Medium.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Regular.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Regular.ttf new file mode 100644 index 0000000..855b6f4 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Regular.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt SemiBold Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt SemiBold Italic.ttf new file mode 100644 index 0000000..2e22c5a Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt SemiBold Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt SemiBold.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt SemiBold.ttf new file mode 100644 index 0000000..8b84efc Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt SemiBold.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Thin Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Thin Italic.ttf new file mode 100644 index 0000000..d3d44cd Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Thin Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/28pt Thin.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Thin.ttf new file mode 100644 index 0000000..94e6108 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/28pt Thin.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/Italic.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/Italic.ttf new file mode 100644 index 0000000..43ed4f5 Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/Italic.ttf differ diff --git a/mkdocs/.cache/plugin/social/fonts/Inter/Regular.ttf b/mkdocs/.cache/plugin/social/fonts/Inter/Regular.ttf new file mode 100644 index 0000000..e31b51e Binary files /dev/null and b/mkdocs/.cache/plugin/social/fonts/Inter/Regular.ttf differ diff --git a/mkdocs/docs/cost-comparison.md b/mkdocs/docs/cost-comparison.md new file mode 100644 index 0000000..2e383aa --- /dev/null +++ b/mkdocs/docs/cost-comparison.md @@ -0,0 +1,203 @@ +# Cost Comparison: Corporation vs. Community + +## The True Cost of Corporate Dependency + +When movements choose corporate software, they're not just paying subscription feesβthey're paying with their power, their privacy, and their future. Let's break down the real costs. + +## Monthly Cost Analysis + +### Small Campaign (50 supporters, 5,000 emails/month) + +| Service Category | Corporate Solution | Monthly Cost | Changemaker Lite | Monthly Cost | +|------------------|-------------------|--------------|------------------|--------------| +| **Email Marketing** | Mailchimp | $59/month | Listmonk | $0* | +| **Database & CRM** | Airtable Pro | $240/month | NocoDB | $0* | +| **Website Hosting** | Squarespace | $40/month | Static Server | $0* | +| **Documentation** | Notion Team | $96/month | MkDocs | $0* | +| **Development** | GitHub Codespaces | $87/month | Code Server | $0* | +| **Automation** | Zapier Professional | $73/month | n8n | $0* | +| **File Storage** | Google Workspace | $72/month | PostgreSQL + Storage | $0* | +| **Analytics** | Corporate tracking | Privacy costβ | Self-hosted | $0* | +| **TOTAL** | | **$667/month** | | **$50/month** | + +*\*Included in base Changemaker Lite hosting cost* +*β Privacy costs are incalculable but include surveillance, data sales, and community manipulation* + +--- + +### Medium Campaign (500 supporters, 50,000 emails/month) + +| Service Category | Corporate Solution | Monthly Cost | Changemaker Lite | Monthly Cost | +|------------------|-------------------|--------------|------------------|--------------| +| **Email Marketing** | Mailchimp | $299/month | Listmonk | $0* | +| **Database & CRM** | Airtable Pro | $600/month | NocoDB | $0* | +| **Website Hosting** | Squarespace | $65/month | Static Server | $0* | +| **Documentation** | Notion Team | $240/month | MkDocs | $0* | +| **Development** | GitHub Codespaces | $174/month | Code Server | $0* | +| **Automation** | Zapier Professional | $146/month | n8n | $0* | +| **File Storage** | Google Workspace | $144/month | PostgreSQL + Storage | $0* | +| **Analytics** | Corporate tracking | Privacy costβ | Self-hosted | $0* | +| **TOTAL** | | **$1,668/month** | | **$75/month** | + +--- + +### Large Campaign (5,000 supporters, 500,000 emails/month) + +| Service Category | Corporate Solution | Monthly Cost | Changemaker Lite | Monthly Cost | +|------------------|-------------------|--------------|------------------|--------------| +| **Email Marketing** | Mailchimp | $1,499/month | Listmonk | $0* | +| **Database & CRM** | Airtable Pro | $1,200/month | NocoDB | $0* | +| **Website Hosting** | Squarespace + CDN | $120/month | Static Server | $0* | +| **Documentation** | Notion Team | $480/month | MkDocs | $0* | +| **Development** | GitHub Codespaces | $348/month | Code Server | $0* | +| **Automation** | Zapier Professional | $292/month | n8n | $0* | +| **File Storage** | Google Workspace | $288/month | PostgreSQL + Storage | $0* | +| **Analytics** | Corporate tracking | Privacy costβ | Self-hosted | $0* | +| **TOTAL** | | **$4,227/month** | | **$150/month** | + +## Annual Savings Breakdown + +### 3-Year Cost Comparison + +| Campaign Size | Corporate Total | Changemaker Total | **Savings** | +|---------------|----------------|-------------------|-------------| +| **Small** | $24,012 | $1,800 | **$22,212** | +| **Medium** | $60,048 | $2,700 | **$57,348** | +| **Large** | $152,172 | $5,400 | **$146,772** | + +## Hidden Costs of Corporate Software + +### What You Can't Put a Price On + +#### Privacy Violations +- **Data Harvesting**: Every interaction monitored and stored +- **Behavioral Profiling**: Your community mapped and analyzed +- **Third-Party Sales**: Your data sold to unknown entities +- **Government Access**: Warrantless surveillance through corporate partnerships + +#### Political Manipulation +- **Algorithmic Suppression**: Your content reach artificially limited +- **Narrative Control**: Corporate interests shape what your community sees +- **Shadow Banning**: Activists systematically de-platformed +- **Counter-Intelligence**: Your strategies monitored by opposition + +#### Movement Disruption +- **Dependency Creation**: Critical infrastructure controlled by adversaries +- **Community Fragmentation**: Platforms designed to extract attention, not build power +- **Organizing Interference**: Corporate algorithms prioritize engagement over solidarity +- **Cultural Assimilation**: Movement culture shaped by corporate values + +## The Changemaker Advantage + +### What You Get for $50-150/month + +#### Complete Infrastructure +- **Email System**: Unlimited contacts, unlimited sends +- **Database Power**: Unlimited records, unlimited complexity +- **Web Presence**: Unlimited sites, unlimited traffic +- **Development Environment**: Full coding environment with AI assistance +- **Documentation Platform**: Beautiful, searchable knowledge base +- **Automation Engine**: Connect everything, automate everything +- **File Storage**: Unlimited files, unlimited backups + +#### True Ownership +- **Your Domain**: No corporate branding or limitations +- **Your Data**: Complete export capability, no lock-in +- **Your Rules**: No terms of service to violate +- **Your Community**: No algorithmic manipulation + +#### Community Support +- **Open Documentation**: Complete guides and tutorials available +- **Community-Driven Development**: Built by and for liberation movements +- **Technical Support**: Professional assistance from BNKops cooperative +- **Political Alignment**: Technology designed with movement values + +## The Compound Effect + +### Year Over Year Savings + +Corporate software costs grow exponentially: +- **Year 1**: "Starter" pricing to hook you +- **Year 2**: Feature limits force tier upgrades +- **Year 3**: Usage growth triggers premium pricing +- **Year 4**: Platform changes force expensive migrations +- **Year 5**: Lock-in enables arbitrary price increases + +Changemaker Lite costs grow linearly with actual infrastructure needs: +- **Year 1**: Base infrastructure costs +- **Year 2**: Modest increases for storage/bandwidth only +- **Year 3**: Scale only with actual technical requirements +- **Year 4**: Community-driven improvements at no extra cost +- **Year 5**: Established infrastructure with declining per-user costs + +### 10-Year Projection + +| Year | Corporate (Medium Campaign) | Changemaker Lite | Annual Savings | +|------|---------------------------|------------------|----------------| +| 1 | $20,016 | $900 | $19,116 | +| 2 | $22,017 | $900 | $21,117 | +| 3 | $24,219 | $1,080 | $23,139 | +| 4 | $26,641 | $1,080 | $25,561 | +| 5 | $29,305 | $1,260 | $28,045 | +| 6 | $32,235 | $1,260 | $30,975 | +| 7 | $35,459 | $1,440 | $34,019 | +| 8 | $39,005 | $1,440 | $37,565 | +| 9 | $42,905 | $1,620 | $41,285 | +| 10 | $47,196 | $1,620 | $45,576 | +| **TOTAL** | **$318,998** | **$12,600** | **$306,398** | + +## Calculate Your Own Savings + +### Current Corporate Costs Worksheet + +**Email Marketing**: $____/month +**Database/CRM**: $____/month +**Website Hosting**: $____/month +**Documentation**: $____/month +**Development Tools**: $____/month +**Automation**: $____/month +**File Storage**: $____/month +**Other SaaS**: $____/month + +**Monthly Total**: $____ +**Annual Total**: $____ + +**Changemaker Alternative**: $50-150/month +**Your Annual Savings**: $____ + +## Beyond the Numbers + +### What Movements Do With Their Savings + +The money saved by choosing community-controlled technology doesn't disappearβit goes directly back into movement building: + +- **Hire organizers** instead of paying corporate executives +- **Fund direct actions** instead of funding surveillance infrastructure +- **Support community members** instead of enriching shareholders +- **Build lasting power** instead of temporary platform dependency + +## Making the Switch + +### Transition Strategy + +You don't have to switch everything at once: + +1. **Start with documentation** - Move your knowledge base to MkDocs +2. **Add email infrastructure** - Set up Listmonk for newsletters +3. **Build your database** - Move contact management to NocoDB +4. **Automate connections** - Use n8n to integrate everything +5. **Phase out corporate tools** - Cancel subscriptions as you replicate functionality + +### Investment Timeline + +- **Month 1**: Initial setup and learning ($150 including setup time) +- **Month 2-3**: Data migration and team training ($100/month) +- **Month 4+**: Full operation at optimal cost ($50-150/month based on scale) + +### ROI Calculation + +Most campaigns recover their entire first-year investment in **60-90 days** through subscription savings alone. + +--- + +*Ready to stop feeding your budget to corporate surveillance? [Get started with Changemaker Lite today](/getting-started/) and take control of your digital infrastructure.* diff --git a/mkdocs/docs/getting-started.md b/mkdocs/docs/getting-started.md index d8b1138..09605ee 100644 --- a/mkdocs/docs/getting-started.md +++ b/mkdocs/docs/getting-started.md @@ -1,23 +1,55 @@ -# Getting Started +# Getting Started with Digital Liberation π³οΈββ§οΈ -Welcome to Changemaker Lite! This guide will help you get up and running on Ubuntu 24.04 LTS (Noble Numbat) with Docker. +Welcome to Changemaker Lite! You're about to reclaim your digital sovereignty and stop feeding your secrets to corporations. This guide will help you set up your own political infrastructure that you actually own and control. + +## Why Changemaker Lite? + +Before we dive into the technical setup, let's be clear about what you're doing here: + +!!! quote "The Reality" + **If you do politics, who is reading your secrets?** Every corporate platform you use is extracting your power, selling your data, and building profiles on your community. It's time to break free. + +### What You're Getting + +- **Data Sovereignty**: Your data stays on your servers +- **Cost Savings**: $50/month instead of $2,000+/month for corporate solutions +- **Community Control**: Technology that serves movements, not shareholders +- **Trans Liberation**: Tools built with radical politics and care + +### What You're Leaving Behind + +- β Corporate surveillance and data extraction +- β Escalating subscription fees and vendor lock-in +- β Algorithmic manipulation of your community +- β Terms of service that can silence you anytime + +--- ## System Requirements ### Operating System + - **Ubuntu 24.04 LTS (Noble Numbat)** - Recommended and tested - Other Linux distributions with systemd support - WSL2 on Windows (limited functionality) +!!! tip "New to Linux?" + Consider [Linux Mint](https://www.linuxmint.com/) - it looks like Windows but opens the door to true digital freedom. + ### Hardware Requirements + - **CPU**: 2+ cores (4+ recommended) -- **RAM**: 4GB minimum (8GB recommended) +- **RAM**: 4GB minimum (8GB recommended) - **Storage**: 20GB+ available disk space - **Network**: Stable internet connection +!!! info "Cloud Hosting" + You can run this on a VPS from providers like Hetzner, DigitalOcean, or Linode for $20-50/month. + ### Software Prerequisites 1. **Docker Engine** (24.0+) + ```bash # Install Docker curl -fsSL https://get.docker.com | sudo sh @@ -29,12 +61,14 @@ sudo usermod -aG docker $USER ``` 2. **Docker Compose** (v2.20+) + ```bash # Verify Docker Compose v2 is installed docker compose version ``` 3. **Essential Tools** + ```bash # Install required packages sudo apt update @@ -46,7 +80,7 @@ sudo apt install -y git curl jq openssl ### 1. Clone Repository ```bash -git clone https://gitea.bnkops.com/admin/Changemaker.git +git clone https://gitea.bnkops.com/admin/changemaker.lite cd changemaker.lite ``` @@ -59,6 +93,7 @@ The `config.sh` script will guide you through the initial setup: ``` This wizard will: + - β Create a `.env` file with secure defaults - β Scan for available ports to avoid conflicts - β Set up your domain configuration @@ -106,6 +141,7 @@ docker compose ps ``` Expected output should show all services as "Up": + - code-server-changemaker - listmonk_app - listmonk_db @@ -124,26 +160,31 @@ Expected output should show all services as "Up": Once services are running, access them locally: ### π Homepage Dashboard + - **URL**: http://localhost:3010 - **Purpose**: Central hub for all services - **Features**: Service status, quick links, monitoring ### π» Development Tools + - **Code Server**: http://localhost:8888 - VS Code in browser - **Gitea**: http://localhost:3030 - Git repository management - **MkDocs Dev**: http://localhost:4000 - Live documentation preview - **MkDocs Prod**: http://localhost:4001 - Built documentation ### π§ Communication + - **Listmonk**: http://localhost:9000 - Email campaigns - Login with credentials set during configuration ### π Automation & Data + - **n8n**: http://localhost:5678 - Workflow automation - Login with credentials set during configuration - **NocoDB**: http://localhost:8090 - No-code database ### π οΈ Interactive Tools + - **Map Viewer**: http://localhost:3000 - Geographic data visualization - **Mini QR**: http://localhost:8089 - QR code generator @@ -158,6 +199,7 @@ For secure public access, use the production deployment script: ``` This script will: + 1. Install and configure `cloudflared` 2. Create a Cloudflare tunnel 3. Set up DNS records automatically @@ -177,6 +219,7 @@ This script will: After successful deployment, services will be available at: **Public Services**: + - `https://yourdomain.com` - Main documentation site - `https://listmonk.yourdomain.com` - Email campaigns - `https://docs.yourdomain.com` - Documentation preview @@ -187,6 +230,7 @@ After successful deployment, services will be available at: - `https://qr.yourdomain.com` - QR generator **Protected Services** (require authentication): + - `https://homepage.yourdomain.com` - Dashboard - `https://code.yourdomain.com` - Code Server @@ -283,11 +327,13 @@ docker compose up -d If services fail to start due to port conflicts: 1. Check which ports are in use: + ```bash sudo ss -tulpn | grep LISTEN ``` 2. Re-run configuration to get new ports: + ```bash ./config.sh ``` diff --git a/mkdocs/docs/index.md b/mkdocs/docs/index.md index 7ad2ac6..a559af5 100644 --- a/mkdocs/docs/index.md +++ b/mkdocs/docs/index.md @@ -1,6 +1,13 @@ +--- +template: home.html +hide: + - navigation + - toc +--- + # Welcome to Changemaker Lite -A streamlined, self-hosted platform for documentation, development, and digital activism. +Stop feeding your secrets to corporations. Own your political infrastructure. ## Quick Start @@ -8,7 +15,7 @@ Get up and running in minutes: ```bash # Clone the repository -git clone https://gitea.bnkops.com/admin/Changemaker.git +git clone https://gitea.bnkops.com/admin/changemaker.lite cd changemaker.lite # Configure environment @@ -26,21 +33,25 @@ docker compose up -d Changemaker Lite includes these essential services: ### Core Services + - **[Homepage](services/homepage.md)** (Port 3010) - Central dashboard and service monitoring - **[Code Server](services/code-server.md)** (Port 8888) - VS Code in your browser - **[MkDocs](services/mkdocs.md)** (Port 4000) - Documentation with live preview - **[Static Server](services/static-server.md)** (Port 4001) - Production documentation site ### Communication & Automation + - **[Listmonk](services/listmonk.md)** (Port 9000) - Newsletter and email campaign management - **[n8n](services/n8n.md)** (Port 5678) - Workflow automation platform ### Data & Development + - **[NocoDB](services/nocodb.md)** (Port 8090) - No-code database platform - **[PostgreSQL](services/postgresql.md)** (Port 5432) - Database backend for Listmonk - **[Gitea](services/gitea.md)** (Port 3030) - Self-hosted Git service ### Interactive Tools + - **[Map Viewer](services/map.md)** (Port 3000) - Interactive map with NocoDB integration - **[Mini QR](services/mini-qr.md)** (Port 8089) - QR code generator diff --git a/mkdocs/docs/javascripts/home.js b/mkdocs/docs/javascripts/home.js new file mode 100644 index 0000000..1707903 --- /dev/null +++ b/mkdocs/docs/javascripts/home.js @@ -0,0 +1,222 @@ +// Changemaker Lite - Minimal Interactions + +document.addEventListener('DOMContentLoaded', function() { + // Terminal copy functionality + const terminals = document.querySelectorAll('.terminal-box'); + terminals.forEach(terminal => { + terminal.addEventListener('click', function() { + const code = this.textContent.trim(); + navigator.clipboard.writeText(code).then(() => { + // Quick visual feedback + this.style.background = '#0a0a0a'; + setTimeout(() => { + this.style.background = '#000'; + }, 200); + }); + }); + }); + + // Smooth scroll for anchors + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function (e) { + e.preventDefault(); + const target = document.querySelector(this.getAttribute('href')); + if (target) { + target.scrollIntoView({ behavior: 'smooth', block: 'start' }); + } + }); + }); + + // Reduced motion support + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + document.documentElement.style.scrollBehavior = 'auto'; + const style = document.createElement('style'); + style.textContent = '*, *::before, *::after { animation: none !important; transition: none !important; }'; + document.head.appendChild(style); + } +}); + +// Changemaker Lite - Smooth Grid Interactions + +document.addEventListener('DOMContentLoaded', function() { + // Smooth scroll for anchors + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function (e) { + e.preventDefault(); + const target = document.querySelector(this.getAttribute('href')); + if (target) { + target.scrollIntoView({ behavior: 'smooth', block: 'start' }); + } + }); + }); + + // Add stagger animation to grid cards on scroll + const observerOptions = { + threshold: 0.1, + rootMargin: '0px 0px -50px 0px' + }; + + const observer = new IntersectionObserver((entries) => { + entries.forEach((entry, index) => { + if (entry.isIntersecting) { + setTimeout(() => { + entry.target.style.opacity = '1'; + entry.target.style.transform = 'translateY(0)'; + }, index * 50); + observer.unobserve(entry.target); + } + }); + }, observerOptions); + + // Observe all grid cards + document.querySelectorAll('.grid-card').forEach((card, index) => { + card.style.opacity = '0'; + card.style.transform = 'translateY(20px)'; + card.style.transition = 'opacity 0.5s ease, transform 0.5s ease'; + observer.observe(card); + }); + + // Neon hover effect for service cards + document.querySelectorAll('.service-card').forEach(card => { + card.addEventListener('mouseenter', function(e) { + const rect = this.getBoundingClientRect(); + const x = e.clientX - rect.left; + const y = e.clientY - rect.top; + + const ripple = document.createElement('div'); + ripple.style.position = 'absolute'; + ripple.style.left = x + 'px'; + ripple.style.top = y + 'px'; + ripple.style.width = '0'; + ripple.style.height = '0'; + ripple.style.borderRadius = '50%'; + ripple.style.background = 'rgba(91, 206, 250, 0.3)'; + ripple.style.transform = 'translate(-50%, -50%)'; + ripple.style.pointerEvents = 'none'; + ripple.style.transition = 'width 0.6s, height 0.6s, opacity 0.6s'; + + this.appendChild(ripple); + + setTimeout(() => { + ripple.style.width = '200px'; + ripple.style.height = '200px'; + ripple.style.opacity = '0'; + }, 10); + + setTimeout(() => { + ripple.remove(); + }, 600); + }); + }); + + // Animated counter for stats + const animateValue = (element, start, end, duration) => { + const range = end - start; + const increment = range / (duration / 16); + let current = start; + + const timer = setInterval(() => { + current += increment; + if (current >= end) { + current = end; + clearInterval(timer); + } + element.textContent = Math.round(current); + }, 16); + }; + + // Animate stat numbers on scroll + const statObserver = new IntersectionObserver((entries) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + const statNumber = entry.target.querySelector('.stat-number'); + if (statNumber && !statNumber.animated) { + statNumber.animated = true; + const value = parseInt(statNumber.textContent); + if (!isNaN(value)) { + statNumber.textContent = '0'; + animateValue(statNumber, 0, value, 1000); + } + } + statObserver.unobserve(entry.target); + } + }); + }, observerOptions); + + document.querySelectorAll('.stat-item').forEach(stat => { + statObserver.observe(stat); + }); + + // Add parallax effect to hero section + let ticking = false; + function updateParallax() { + const scrolled = window.pageYOffset; + const hero = document.querySelector('.hero-grid'); + if (hero) { + hero.style.transform = `translateY(${scrolled * 0.3}px)`; + } + ticking = false; + } + + function requestTick() { + if (!ticking) { + window.requestAnimationFrame(updateParallax); + ticking = true; + } + } + + // Only add parallax on desktop + if (window.innerWidth > 768) { + window.addEventListener('scroll', requestTick); + } + + // Button ripple effect + document.querySelectorAll('.btn').forEach(button => { + button.addEventListener('click', function(e) { + const rect = this.getBoundingClientRect(); + const x = e.clientX - rect.left; + const y = e.clientY - rect.top; + + const ripple = document.createElement('span'); + ripple.style.position = 'absolute'; + ripple.style.left = x + 'px'; + ripple.style.top = y + 'px'; + ripple.className = 'btn-ripple'; + + this.appendChild(ripple); + + setTimeout(() => { + ripple.remove(); + }, 600); + }); + }); + + // Reduced motion support + if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + document.documentElement.style.scrollBehavior = 'auto'; + window.removeEventListener('scroll', requestTick); + } +}); + +// Add CSS for button ripple +const style = document.createElement('style'); +style.textContent = ` + .btn-ripple { + position: absolute; + width: 20px; + height: 20px; + border-radius: 50%; + background: rgba(111, 66, 193, 0.5); /* mkdocs purple */ + transform: translate(-50%, -50%) scale(0); + animation: ripple-animation 0.6s ease-out; + pointer-events: none; + } + + @keyframes ripple-animation { + to { + transform: translate(-50%, -50%) scale(10); + opacity: 0; + } + } +`; +document.head.appendChild(style); \ No newline at end of file diff --git a/mkdocs/docs/overrides/home.html b/mkdocs/docs/overrides/home.html index e69de29..383b702 100644 --- a/mkdocs/docs/overrides/home.html +++ b/mkdocs/docs/overrides/home.html @@ -0,0 +1,339 @@ +{% extends "main.html" %} + +{% block extrahead %} + {{ super() }} + +{% endblock %} + +{% block content %} +
Stop paying $1,200/month to corporate platforms. Run your entire political campaign on $200 hardware with fewer corporate dependencies every day.
+ + +Replace your entire SaaS stack with open source alternatives. First free and open source canvassing solution included.
+Why campaigns are switching to self-hosted FOSS
+Three ways to break free from corporate campaign tech
+Some of the biggest players in local politics are already using it; maybe give it a try?
+ +