Files
shard-wiki/research/260608-c2-wiki-origins/findings.md
tegwick 64b77f30c1 Add c2 wiki origins research (Ward Cunningham, terms, use cases)
Explores WikiWikiWeb beginnings: design principles, social conventions,
navigation vocabulary, and documented use cases. Federation explicitly
deferred to a later research track.
2026-06-08 14:05:59 +02:00

15 KiB
Raw Blame History

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

  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 (ThreadModeDocumentModePatternMode).

Community / onboarding use cases

  1. First wiki experience — deliberate onboarding path for newcomers (WelcomeVisitors, NewUserPages, WikiWikiSandbox).
  2. Sandbox experimentation — safe place to learn editing mechanics.
  3. Visitor presence — sign the guest book (RecentVisitors).
  4. Culture acclimation — expect CultureShock; learn local conventions before adding pages.

Knowledge maintenance use cases

  1. Self-indexing — wiki indexes itself; community maintains structure (VolunteerHousekeeper, categories, road maps).
  2. Activity awareness — follow what changed (RecentChanges, QuickChanges, RecentChangesJunkie).
  3. Discovery — browse by search, categories, random pages, visual tour, like-pages, starting points.
  4. Refactoring pages — merge thread into document, split tangents, improve clarity (ReFactoring, WikiMaster role).
  5. 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.


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 1990s2000s)
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 attributionUserName (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?