|
| 1 | +[](https://github.com/sponsors/hyperpolymath) |
| 2 | + |
| 3 | +image:https://img.shields.io/badge/License-PMPL--1.0-blue.svg[License: PMPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] |
| 4 | +// SPDX-License-Identifier: MPL-2.0 |
| 5 | +// SPDX-FileCopyrightText: 2024-2025 hyperpolymath |
| 6 | + |
| 7 | += CCCP: Campaign for Cooler Coding and Programming |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | +:author: hyperpolymath |
| 13 | +:revnumber: 1.0.0 |
| 14 | +:revdate: 2025-12-26 |
| 15 | +:toc: left |
| 16 | +:toclevels: 3 |
| 17 | +:icons: font |
| 18 | +:source-highlighter: rouge |
| 19 | + |
| 20 | +image:https://img.shields.io/badge/CCCP-Certified-c41e3a[CCCP Certified] |
| 21 | +image:https://img.shields.io/badge/RSR-Gold-ffd700[RSR Gold] |
| 22 | + |
| 23 | +== What is CCCP? |
| 24 | + |
| 25 | +The *Campaign for Cooler Coding and Programming* is the philosophical and ethical foundation of the link:https://github.com/hyperpolymath/rhodium-standard-repositories[Rhodium Standard Repositories (RSR)] framework. |
| 26 | + |
| 27 | +CCCP defines *principles and policies* for building software that is: |
| 28 | + |
| 29 | +* *Emotionally safe* — development without shame or anxiety |
| 30 | +* *Technically excellent* — type-safe, memory-safe, formally verified |
| 31 | +* *Politically autonomous* — independent of Big Tech lock-in |
| 32 | + |
| 33 | +== The Four Temperatures of "Cooler" |
| 34 | + |
| 35 | +[cols="1,3"] |
| 36 | +|=== |
| 37 | +| Temperature | Meaning |
| 38 | + |
| 39 | +| *Emotional* |
| 40 | +| Reduced anxiety through reversibility, safe experimentation, no shame in mistakes |
| 41 | + |
| 42 | +| *Computational* |
| 43 | +| Efficient systems, no unnecessary cycles, minimal runtime overhead |
| 44 | + |
| 45 | +| *Social* |
| 46 | +| Warm community with graduated trust, cool-headed technical decisions |
| 47 | + |
| 48 | +| *Political* |
| 49 | +| Resistance to monopolistic tooling, anti-corporate lock-in, autonomy through offline-first design |
| 50 | +|=== |
| 51 | + |
| 52 | +== Core Principles |
| 53 | + |
| 54 | +=== 1. Post-JavaScript Liberation |
| 55 | + |
| 56 | +Rejecting the npm/node ecosystem's fragility in favor of: |
| 57 | + |
| 58 | +* *ReScript* — OCaml soundness, compiles to JS |
| 59 | +* *Rust* — Systems programming with memory safety |
| 60 | +* *Deno* — Secure-by-default runtime (when JS is unavoidable) |
| 61 | + |
| 62 | +=== 2. Offline-First as Autonomy |
| 63 | + |
| 64 | +* Work continues without constant connectivity |
| 65 | +* No cloud-dependent tooling |
| 66 | +* SaltRover for offline repository management |
| 67 | + |
| 68 | +=== 3. Distributed State Without Coordination |
| 69 | + |
| 70 | +* *CRDTs* eliminate locking and cache invalidation |
| 71 | +* Conflict-free by design |
| 72 | +* No single point of failure |
| 73 | + |
| 74 | +=== 4. Formal Verification as Mutual Aid |
| 75 | + |
| 76 | +* Correctness is an act of solidarity |
| 77 | +* SPARK/Ada for safety-critical paths |
| 78 | +* Type systems prevent bugs before they happen |
| 79 | + |
| 80 | +=== 5. Community Over Ego |
| 81 | + |
| 82 | +* TPCF (Tri-Perimeter Contribution Framework) |
| 83 | +* Graduated trust without gatekeeping |
| 84 | +* Collective ownership patterns |
| 85 | + |
| 86 | +=== 6. Language Polyglotism as Resistance |
| 87 | + |
| 88 | +Using diverse languages resists monoculture: |
| 89 | + |
| 90 | +[cols="1,2"] |
| 91 | +|=== |
| 92 | +| Approved | Banned |
| 93 | + |
| 94 | +| ReScript, Rust, Deno, Gleam, OCaml, Ada, Julia, Guile Scheme, Nickel |
| 95 | +| TypeScript, Node.js/npm, Go, Python (except SaltStack), Java/Kotlin, Swift |
| 96 | +|=== |
| 97 | + |
| 98 | +== Language Policy |
| 99 | + |
| 100 | +=== Allowed Languages |
| 101 | + |
| 102 | +[cols="1,2,2"] |
| 103 | +|=== |
| 104 | +| Language | Use Case | Notes |
| 105 | + |
| 106 | +| *ReScript* |
| 107 | +| Primary application code |
| 108 | +| Compiles to JS, OCaml type safety |
| 109 | + |
| 110 | +| *Rust* |
| 111 | +| Systems, performance, WASM |
| 112 | +| Preferred for CLI tools |
| 113 | + |
| 114 | +| *Deno* |
| 115 | +| Runtime & package management |
| 116 | +| Replaces Node/npm/Bun |
| 117 | + |
| 118 | +| *Gleam* |
| 119 | +| Backend services |
| 120 | +| BEAM or JS target |
| 121 | + |
| 122 | +| *OCaml* |
| 123 | +| Compilers, formal methods |
| 124 | +| Strong type system |
| 125 | + |
| 126 | +| *Ada* |
| 127 | +| Safety-critical systems |
| 128 | +| SPARK verification |
| 129 | + |
| 130 | +| *Julia* |
| 131 | +| Data processing, batch scripts |
| 132 | +| High-performance numerics |
| 133 | + |
| 134 | +| *Guile Scheme* |
| 135 | +| State/meta files |
| 136 | +| .machine_readable/6a2/STATE.a2ml, .machine_readable/6a2/META.a2ml, .machine_readable/6a2/ECOSYSTEM.a2ml |
| 137 | + |
| 138 | +| *Nickel* |
| 139 | +| Configuration language |
| 140 | +| Type-safe configs |
| 141 | + |
| 142 | +| *Bash/POSIX Shell* |
| 143 | +| Scripts, automation |
| 144 | +| Keep minimal |
| 145 | +|=== |
| 146 | + |
| 147 | +=== Banned Languages |
| 148 | + |
| 149 | +[cols="1,2,2"] |
| 150 | +|=== |
| 151 | +| Banned | Replacement | Rationale |
| 152 | + |
| 153 | +| *TypeScript* |
| 154 | +| ReScript |
| 155 | +| Unsound gradual typing |
| 156 | + |
| 157 | +| *Node.js* |
| 158 | +| Deno |
| 159 | +| Insecure by default |
| 160 | + |
| 161 | +| *npm/Bun/pnpm/yarn* |
| 162 | +| Deno |
| 163 | +| Supply chain risks |
| 164 | + |
| 165 | +| *Go* |
| 166 | +| Rust |
| 167 | +| Error handling, generics |
| 168 | + |
| 169 | +| *Python* (general) |
| 170 | +| ReScript/Rust |
| 171 | +| No static types |
| 172 | + |
| 173 | +| *Java/Kotlin* |
| 174 | +| Rust/Tauri/Dioxus |
| 175 | +| JVM overhead, platform lock-in |
| 176 | + |
| 177 | +| *Swift* |
| 178 | +| Tauri/Dioxus |
| 179 | +| Platform lock-in |
| 180 | +|=== |
| 181 | + |
| 182 | +NOTE: Python is permitted *only* for SaltStack configuration management (temporary exception). |
| 183 | + |
| 184 | +=== Mobile Development |
| 185 | + |
| 186 | +No exceptions for Kotlin/Swift. Use Rust-first approach: |
| 187 | + |
| 188 | +1. *Tauri 2.0+* — Web UI (ReScript) + Rust backend, PMPL-1.0/PMPL-1.0 |
| 189 | +2. *Dioxus* — Pure Rust native UI, PMPL-1.0/PMPL-1.0 |
| 190 | + |
| 191 | +Both are FOSS with independent governance. |
| 192 | + |
| 193 | +== Package Management Hierarchy |
| 194 | + |
| 195 | +[cols="1,2"] |
| 196 | +|=== |
| 197 | +| Priority | Tool |
| 198 | + |
| 199 | +| *Primary* |
| 200 | +| Guix (guix.scm) |
| 201 | + |
| 202 | +| *Fallback* |
| 203 | +| Nix (flake.nix) |
| 204 | + |
| 205 | +| *JS deps* |
| 206 | +| Deno (deno.json imports) |
| 207 | +|=== |
| 208 | + |
| 209 | +== Migration Priority |
| 210 | + |
| 211 | +When encountering banned languages: |
| 212 | + |
| 213 | +1. *Immediate*: Block new code in banned languages |
| 214 | +2. *Short-term*: Convert TypeScript to ReScript |
| 215 | +3. *Medium-term*: Replace Node/npm with Deno |
| 216 | +4. *Long-term*: Rewrite Go/Python in Rust |
| 217 | + |
| 218 | +== The Citadel of Code Creation |
| 219 | + |
| 220 | +The *Citadel* is where RSR meets CCCP — the actual implementation pattern that embodies both. |
| 221 | + |
| 222 | +=== What Makes It a "Citadel"? |
| 223 | + |
| 224 | +* *Defensible Position* — Local dev environment can't be taken away by service outages |
| 225 | +* *Self-Sufficient* — Nix + Podman + SaltRover = complete autonomy |
| 226 | +* *Collective Defense* — Architecture makes mutual aid easier than isolation |
| 227 | +* *Safe Haven* — Emotionally and technically safe to experiment |
| 228 | + |
| 229 | +== Relationship to RSR |
| 230 | + |
| 231 | +[source] |
| 232 | +---- |
| 233 | +CCCP (Philosophy) |
| 234 | + │ |
| 235 | + ▼ |
| 236 | +RSR (Standards Framework) |
| 237 | + ├── Defines 150+ compliance criteria |
| 238 | + ├── CCCP principles embedded |
| 239 | + └── Tier mapping (Bronze/Silver/Gold/Rhodium) |
| 240 | + │ |
| 241 | + ▼ |
| 242 | +Your Repository (Implementation) |
| 243 | + ├── Emotionally safe development |
| 244 | + ├── Technically excellent |
| 245 | + └── Politically autonomous |
| 246 | +---- |
| 247 | + |
| 248 | +== CCCP Certification |
| 249 | + |
| 250 | +Projects can display CCCP certification when they: |
| 251 | + |
| 252 | +1. Use only approved languages (see Language Policy) |
| 253 | +2. Follow offline-first principles |
| 254 | +3. Use FOSS tooling with independent governance |
| 255 | +4. Implement reversibility patterns |
| 256 | +5. Follow TPCF contribution model |
| 257 | + |
| 258 | +=== Badge |
| 259 | + |
| 260 | +[source,markdown] |
| 261 | +---- |
| 262 | + |
| 263 | +---- |
| 264 | + |
| 265 | +== Further Reading |
| 266 | + |
| 267 | +* link:https://github.com/hyperpolymath/rhodium-standard-repositories[RSR Framework] |
| 268 | +* link:https://github.com/hyperpolymath/mustfile[Mustfile] — Type-safe deployment |
| 269 | +* link:https://github.com/hyperpolymath/palimpsest-license[Palimpsest License] — Multi-layered licensing |
| 270 | + |
| 271 | +== Contributing |
| 272 | + |
| 273 | +CCCP is a living document. Contributions that align with its principles are welcome. |
| 274 | + |
| 275 | +See link:CONTRIBUTING.adoc[CONTRIBUTING.adoc] for guidelines. |
| 276 | + |
| 277 | +== License |
| 278 | + |
| 279 | +PMPL-1.0 + Palimpsest-0.8 |
| 280 | + |
| 281 | +--- |
| 282 | + |
| 283 | +_"We build systems that don't decay under pressure, communities that support experimentation without shame, and infrastructure that respects human autonomy."_ |
| 284 | + |
| 285 | +— The Rhodium Standard |
| 286 | + |
| 287 | + |
| 288 | +== Architecture |
| 289 | + |
| 290 | +See link:TOPOLOGY.md[TOPOLOGY.md] for a visual architecture map and completion dashboard. |
0 commit comments