# Findings — Ward Cunningham, c2 wiki, and wiki movement origins Date: 2026-06-08 · Status: research draft Scope: beginnings of the wiki movement via the **WikiWikiWeb** (c2.com) and its creator **Ward Cunningham**. Emphasis on terms and use cases documented in and about the c2 wiki. **Federation concepts are out of scope here.** --- ## 1. Historical anchor | Fact | Detail | |------|--------| | First wiki | WikiWikiWeb — launched **25 March 1995** on c2.com | | Creator | Ward Cunningham (Cunningham & Cunningham, Portland, Oregon) | | Companion site | [Portland Pattern Repository](http://c2.com/ppr/) (PPR) | | PPR motto | **"People, Projects & Patterns"** | | Original software | Perl CGI script named `wiki`; later called **WikiBase** | | Intellectual roots | HyperCard stacks (late 1980s); pattern languages (Cunningham & Beck, OOPSLA 1987, inspired by Christopher Alexander) | | Name origin | Hawaiian *wiki* = "quick"; *wiki wiki* = "very quick" — from Honolulu airport Wiki Wiki Shuttle | | Intended name alternative | "QuickWeb" rejected in favor of **WikiWikiWeb** as more fun to say | | Capital-W convention | **Wiki** (capital W) = this original site; lowercase *wiki* = the technology genre | Ward's stated purpose (WikiHistory, 2002): make exchange of ideas between programmers easier. The wiki was an **automated supplement** to the Portland Pattern Repository, not a replacement encyclopedia. By 2015 the site went read-only after vandalism; Ward migrated toward Federated Wiki. That later history is **not** covered here. --- ## 2. What c2 said it was for (primary use cases) From **WelcomeVisitors**, **WikiHistory**, and community self-description: ### Core mission use cases 1. **Pattern exchange** — publish, discuss, and refine software design patterns (the PPR mission). 2. **People + projects + patterns** — connect practitioners, project experience, and reusable design knowledge (`PeopleProjectsAndPatterns`). 3. **Idea exchange among programmers** — fast, lightweight collaborative writing; "a forum where people share ideas." 4. **Informal history of programming ideas** — accumulated narrative, not a formal reference work (`InformalHistoryOfProgrammingIdeas`). 5. **Distillation of experience into patterns** — thread discussions refined into document-mode consensus, sometimes culminating in patterns (`ThreadMode` → `DocumentMode` → `PatternMode`). ### Community / onboarding use cases 6. **First wiki experience** — deliberate onboarding path for newcomers (`WelcomeVisitors`, `NewUserPages`, `WikiWikiSandbox`). 7. **Sandbox experimentation** — safe place to learn editing mechanics. 8. **Visitor presence** — sign the guest book (`RecentVisitors`). 9. **Culture acclimation** — expect `CultureShock`; learn local conventions before adding pages. ### Knowledge maintenance use cases 10. **Self-indexing** — wiki indexes itself; community maintains structure (`VolunteerHousekeeper`, categories, road maps). 11. **Activity awareness** — follow what changed (`RecentChanges`, `QuickChanges`, `RecentChangesJunkie`). 12. **Discovery** — browse by search, categories, random pages, visual tour, like-pages, starting points. 13. **Refactoring pages** — merge thread into document, split tangents, improve clarity (`ReFactoring`, `WikiMaster` role). 14. **Work-in-progress knowledge** — all content explicitly provisional (`WorkInProgress`). ### What c2 explicitly said it was *not* - **Not Wikipedia** — subjective, conversational, not a dedicated reference site (`WikiIsNotWikipedia`, `WikiPedia` as pointer to the real Wikipedia). - **Not a polished encyclopedia** — "Most of all, this is a forum where people share ideas!" ### Subject areas the community grew into (approximate eras, WikiHistory) | Era | Dominant topics on c2 | |-----|----------------------| | 1994+ | Patterns, sources, application | | 1996+ | General design, architecture, methods | | 1997+ | People and organizational aspects of programming | | 1998+ | Extreme Programming | | 2000+ | Wiki itself (meta-discussion) | Popular page clusters noted by observers: **DesignPatterns**, **ExtremeProgramming**, **TestDrivenDevelopment**, **AgileManifesto**, **UnitTest**, **AntiPattern**, build tools, languages, organizational culture. --- ## 3. Ward's WikiDesignPrinciples (1995 intent) From Ward Cunningham's reconstructed **WikiDesignPrinciples** page: | Principle | Meaning | |-----------|---------| | **Open** | Incomplete or poorly organized pages may be edited by any reader | | **Incremental** | Pages cite other pages, including ones not yet written | | **Organic** | Site structure is editable and evolves like page text | | **Mundane** | Small number of irregular text conventions for markup | | **Universal** | Editing and organizing use the same mechanisms as writing | | **Overt** | Formatted output suggests the input needed to reproduce it | | **Unified** | Page names from a flat namespace — no extra context to interpret | | **Precise** | Titles are precise noun phrases to avoid name clashes | | **Tolerant** | Interpretable behavior preferred over error messages | | **Observable** | Site activity can be watched and reviewed by any visitor | | **Convergent** | Duplication discouraged by finding and citing related content | Ward later noted additional forced principles (e.g. server robustness) beyond the original eleven. --- ## 4. Popular terms glossary Terms below are **CamelCase page names** as used on c2 unless noted. ### Wiki mechanics & naming | Term | Meaning on c2 | |------|---------------| | **Wiki** / **WikiWikiWeb** | The first wiki site; capital-W Wiki = this site specifically | | **WikiBase** | The Perl wiki engine behind c2 | | **WikiWord** / **WikiWords** | MixedCase token the engine treats as a hyperlink | | **WikiName** / **WikiNames** | Page title / link target (often built from WikiWords) | | **MixedCase** / **CamelCase** | CapitalizedWordsRunTogether → automatic link | | **TextFormattingRules** | Minimal markup conventions (paragraphs, bold, links) | | **EditText** / **EditCopy** | Core edit operations | | **Undefined page** / **red link** | `PageName?` with `?` — page does not exist yet; click to create | | **Flat namespace** | All page names in one space (no hierarchical paths) | ### Content modes (social conventions, not software features) | Term | Meaning | |------|---------| | **DocumentMode** | Third-person, unsigned, community-owned text; consensus artifact | | **ThreadMode** | Signed, first-person discussion; conversation thread | | **PatternMode** | Distilled pattern statements from converged discussion | | **OpeningStatement** | Strong initial claim/question that frames a page | | **SignedDocumentMode** | Hybrid: document-like but attributed | | **ThreadModeConsideredHarmful** | Community norm pushing toward document mode | | **InFavorOfDissertation** | Ward's preference for essay-like pages over dialog | ### Roles & community behavior | Term | Meaning | |------|---------| | **WikiMaster** | Person who refactors threads into documents (anyone can be one) | | **VolunteerHousekeeper** | Community members who maintain indexes and hygiene | | **RecentChangesJunkie** | Person who obsessively monitors RecentChanges | | **InvitedAuthors** | Early contributors who bootstrapped site culture | | **GoodStyle** | Ward's editing advice: factual, concrete, civil, flow over chronology | | **ReFactoring** / **RefactorMercilessly** | Rewrite pages for clarity; merge/split threads | | **RefactorDontDelete** | Prefer refactoring over deletion | | **CultureShock** | Newcomer disorientation from wiki norms | ### Navigation & derived views | Term | Meaning | |------|---------| | **RecentChanges** | Chronological edit log — central community nerve center | | **QuickChanges** | Short-form recent changes | | **RecentEdits** | Minor edits stream | | **NotSoRecentChanges** | Older change archives | | **FindPage** | Search | | **LikePages** | Similar-title suggestions | | **RandomPages** | Serendipitous browse | | **VisualTour** | Graphical browse aid | | **StartingPoints** | Curated entry paths | | **WikiCategories** / **RoadMaps** | Community-maintained indexes | | **PeopleIndex** / **RecentVisitors** | Who participates | | **BackLinks** | Pages linking here (classic derived view) | | **AllPages** / **SiteMap** / **SearchPage** | Core derived pages (also present in yawex prior art) | | **SisterSites** | Links to other wikis | ### Pattern & programming vocabulary (c2's dominant content) | Term | Meaning | |------|---------| | **Pattern** / **DesignPatterns** | Reusable design solution in context | | **AntiPattern** | Common bad solution | | **ProtoPattern** | Pattern-in-formation | | **PortlandPatternRepository** | Pattern submission/distribution site | | **PeopleProjectsAndPatterns** | c2's thematic focus | | **ExtremeProgramming** / **AgileManifesto** | Major c2 discourse topics (late 1990s–2000s) | | **CrcCards** | Design technique; also spawned from Ward's HyperCard work | ### Meta & identity pages | Term | Meaning | |------|---------| | **WorkInProgress** | Nothing is finished; everything editable | | **WikiIsNotWikipedia** | Identity boundary vs encyclopedic wikis | | **WhyWikiWorks** / **WhyWikiWorksNot** | Community theory of success/failure | | **WikiZen** | Cultural / philosophical reflection | | **WikiOnWiki** | Meta-discussion about wiki itself (sometimes controversial) | --- ## 5. Documented editing & collaboration patterns From **ThreadMode**, **DocumentMode**, **GoodStyle**, **WhyWikiWorks**: ### ThreadMode contributions (ADD / EDIT / SPLIT / CAPTURE) 1. **ADD** — append signed comment to continue conversation. 2. **EDIT** — improve flow of others' signed comments (with care). 3. **SPLIT** — separate tangents onto new pages with summary links. 4. **CAPTURE** — distill converging ideas into anonymous pattern paragraphs. ### DocumentMode lifecycle - Page opens with strong **OpeningStatement**. - Feedback arrives in ThreadMode. - On consensus, a **WikiMaster** (or anyone) replaces thread with DocumentMode synthesis. - Newcomers are expected to **rewrite** unclear passages rather than stack clarifying replies. ### WhyWikiWorks (community theory) Paradoxical strengths cited on c2: - Anyone can delete anything → only meaningful content survives curation. - Low WYSIWYG appeal → filters out drive-by noise; participants self-select. - Slow, considered edits → pages evolve over days/weeks. - Pedantic community → shared professional camaraderie. - "Insecure, indiscriminate, user-hostile, slow" — yet it worked *because* other online communities optimized differently. --- ## 6. Technical & formatting conventions (original c2) From Ward's etymology correspondence and c2 pages: - **Double conventions as formatting clues:** - double carriage-return → new paragraph - double single-quote → italic - double capitalized-word (CamelCase) → hyperlink - **Flat page namespace** — precise noun-phrase titles. - **Minimal markup** — "mundane" rules; overt correspondence between input and rendered output. - **Optional attribution** — `UserName` (2000+) to attach edits to a name instead of IP; signing in ThreadMode remained common. - **Deletion** — supported but culturally discouraged vs refactoring (`RefactorDontDelete`). --- ## 7. Use-case patterns worth naming (synthesis) Grouping c2-documented uses into reusable patterns: | ID | Use-case pattern | c2 evidence | |----|------------------|-------------| | UC-C2-01 | **Quick idea capture** | Wiki = quick web; incremental linking to unwritten pages | | UC-C2-02 | **Collaborative glossary** | Flat namespace of precise terms; WikiWords as vocabulary | | UC-C2-03 | **Discussion → consensus doc** | ThreadMode → DocumentMode refactoring | | UC-C2-04 | **Pattern mining** | Thread → PatternMode distillation | | UC-C2-05 | **Community guest book** | RecentVisitors, people pages | | UC-C2-06 | **Change radar** | RecentChanges / QuickChanges monitoring | | UC-C2-07 | **Self-curating knowledge base** | Open editing + convergent deduplication | | UC-C2-08 | **Sandbox learning** | WikiWikiSandbox for safe first edits | | UC-C2-09 | **Serendipitous browse** | RandomPages, VisualTour, LikePages | | UC-C2-10 | **Practitioner field notes** | InformalHistoryOfProgrammingIdeas, not encyclopedia | | UC-C2-11 | **Team memory for methods** | XP, TDD, patterns, tools discourse | | UC-C2-12 | **Soft creation of missing topics** | Red-link `?` pages created on first write | --- ## 8. Boundaries for shard-wiki (light notes, not federation) Items from c2 origins that align with existing `INTENT.md` themes **without** entering federation design: - **Open editing + recoverable history** — c2 trusted the community; shard-wiki INTENT makes Git history the safety net (stronger than c2's soft norms). - **WorkInProgress** — matches overlay/provenance/freshness thinking. - **Mechanism over policy** — c2 used social conventions (DocumentMode, GoodStyle) rather than hard gates; shard-wiki keeps policy configurable. - **Not an encyclopedia** — c2's `WikiIsNotWikipedia` parallels shard-wiki not owning universal ontology. - **Derived views** — BackLinks, RecentChanges, AllPages, SiteMap, Search were first-class on c2; already flagged in yawex research as union-view candidates. - **Flat namespace + CamelCase links** — original c2 model; shard-wiki is Markdown-first (wikilink extension question remains open). **Deferred:** Federated Wiki, sister sites, multi-wiki configuration — separate research track. --- ## 9. Sources | Source | URL / location | |--------|----------------| | Ward — WikiHistory | https://wiki.c2.com/?WikiHistory (archive 2002) | | Ward — WikiDesignPrinciples | https://wiki.c2.com/?WikiDesignPrinciples (archive 2002) | | Ward — etymology correspondence | https://c2.com/doc/etymology.html | | WelcomeVisitors | https://wiki.c2.com/?WelcomeVisitors (archive 2002) | | DocumentMode | https://wiki.c2.com/?DocumentMode (archive 2002) | | ThreadMode | https://wiki.c2.com/?ThreadMode (archive 2002) | | GoodStyle | https://wiki.c2.com/?GoodStyle (archive 2002) | | WhyWikiWorks | https://wiki.c2.com/?WhyWikiWorks (archive 2002) | | RecentChanges | https://wiki.c2.com/?RecentChanges (archive 2002) | | Wikipedia — WikiWikiWeb | https://en.wikipedia.org/wiki/WikiWikiWeb | | Wikipedia — Portland Pattern Repository | https://en.wikipedia.org/wiki/Portland_Pattern_Repository | | Observer summary — T.J. Maher (2016) | https://www.tjmaher.com/2016/06/time-capsule-ward-cunninghams-wiki-wiki.html | --- ## 10. Open questions (for later spec work) 1. Which c2 **social conventions** (DocumentMode, GoodStyle, WikiMaster refactoring) belong in shard-wiki core vs reference UI vs `wiki/` content? 2. How much of the **flat CamelCase namespace** survives in a Markdown-first, path-oriented federation model? 3. Which **derived views** from c2 are MVP for an orchestrator vs adapter-provided? 4. Does shard-wiki want an explicit **WorkInProgress / WikiIsNotWikipedia** stance in `spec/ProductRequirementsDocument.md`? 5. How does c2's **open-by-default** community norm relate to shard-wiki's L0 mode — coincidence of values or intentional lineage?