Explores WikiWikiWeb beginnings: design principles, social conventions, navigation vocabulary, and documented use cases. Federation explicitly deferred to a later research track.
15 KiB
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 (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
- Pattern exchange — publish, discuss, and refine software design patterns (the PPR mission).
- People + projects + patterns — connect practitioners, project experience,
and reusable design knowledge (
PeopleProjectsAndPatterns). - Idea exchange among programmers — fast, lightweight collaborative writing; "a forum where people share ideas."
- Informal history of programming ideas — accumulated narrative, not a
formal reference work (
InformalHistoryOfProgrammingIdeas). - Distillation of experience into patterns — thread discussions refined
into document-mode consensus, sometimes culminating in patterns
(
ThreadMode→DocumentMode→PatternMode).
Community / onboarding use cases
- First wiki experience — deliberate onboarding path for newcomers
(
WelcomeVisitors,NewUserPages,WikiWikiSandbox). - Sandbox experimentation — safe place to learn editing mechanics.
- Visitor presence — sign the guest book (
RecentVisitors). - Culture acclimation — expect
CultureShock; learn local conventions before adding pages.
Knowledge maintenance use cases
- Self-indexing — wiki indexes itself; community maintains structure
(
VolunteerHousekeeper, categories, road maps). - Activity awareness — follow what changed (
RecentChanges,QuickChanges,RecentChangesJunkie). - Discovery — browse by search, categories, random pages, visual tour, like-pages, starting points.
- Refactoring pages — merge thread into document, split tangents,
improve clarity (
ReFactoring,WikiMasterrole). - 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,WikiPediaas 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)
- ADD — append signed comment to continue conversation.
- EDIT — improve flow of others' signed comments (with care).
- SPLIT — separate tangents onto new pages with summary links.
- 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
WikiIsNotWikipediaparallels 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)
- Which c2 social conventions (DocumentMode, GoodStyle, WikiMaster
refactoring) belong in shard-wiki core vs reference UI vs
wiki/content? - How much of the flat CamelCase namespace survives in a Markdown-first, path-oriented federation model?
- Which derived views from c2 are MVP for an orchestrator vs adapter-provided?
- Does shard-wiki want an explicit WorkInProgress / WikiIsNotWikipedia
stance in
spec/ProductRequirementsDocument.md? - How does c2's open-by-default community norm relate to shard-wiki's L0 mode — coincidence of values or intentional lineage?