PublicTxt

wiki · updated

PublicTxt is an experiment in using Git repositories as an interoperability layer and online storage for public and community knowledge.

The idea: keep your notes, wiki, and writing as plain Markdown files in a Git repository. Publish them to the web for free. Subscribe to other people’s PublicTxt repositories and pull selected content into a local aggregate view you can browse and search - all without a centralised platform, server, or subscription.

The experiment is in early stages. Links to software repositories for tooling that works with these plaintext repositories to follow.

Linked Repos

  • WikiTool In-progress. Multiplatform .NET Tool for handling multiple wikis
    • Core Wiki Libraries
    • Converts between Wiki formats and Wiki-Syntax
    • Copy between wikis based on search, tag expressions (tag1 + tag2 - tag3), attributes.
  • PublicTxt.net An in-progress .NET implementation with:
    • Core libraries, and feature based services
    • Git and Database Infrastructure projects
    • Avalonia Desktop & Blazor Web Apps

Why Git?

Git hosting is free, ubiquitous, versioned, and nobody owns it. A PublicTxt repository is just a folder of Markdown files - it works in any text editor, any Git client, and any static site host today, regardless of whether purpose-built PublicTxt tooling exists yet. The content outlives the tooling.

The Core Idea

  • Zero Cost Online Storage and Web Hosting: Leverages free Git hosting (GitHub, Codeberg, etc.) for all storage and distribution, and for static websites.

  • Plain text: Using Markdown for simple, flexible content creation and editing. Tags and more complex metadata is stored using plaintext syntax.

  • Static Website Generation: Simple publish to web flow requiring zero/minimal setup.

  • Selective aggregation is the differentiator. Anyone can put Markdown in Git. What PublicTxt adds is a shared structure and convention that lets software:

    • Subscribe to another person’s repository and pull only the parts you want (by topic branch, tag, path, or filter expression).
    • Publish your own content to the web with a single push to a Pages-enabled branch.
    • Sync bidirectionally with one or more of your own remotes.
  • GIT Topic Branches: Using different branches to allow following certain aspects of a repo. These use shared naming standards.

Plain-text Markdown in Git is the substrate. Aggregation across many repositories is the value.

Format

Content is stored as standard Markdown using md-wiki link syntax ([Page Title](page.md)), so any static site generator can publish it without a conversion step.

PublicTxt syntax is compatible with Obsidian - either by configuring Obsidian to use Markdown links directly, or via WikiTool format conversion tooling.

Tags and structured metadata use plaintext conventions compatible with Obsidian DataView attributes.

Directory Structure

v1 content types in bold; later-phase types in italics.

  • blog/ - Blog posts, organized by year/month/day/
  • wiki/ - Wiki pages
  • notes/ - Notes
  • media/ - Media files
  • tags/ - Tag indexes for the repository
  • indexes/ - Content indexes
  • settings/ - Repository settings
  • metaweb/ - Bookmarks, annotations, and notes about web pages (later)
    • sites/, bookmarks/, notes/, annotations/, indexes/, tags/
  • community/ - Discussion, profiles, groups (later)

Future Ideas

These are part of the long-term vision, explicitly deferred until the core aggregation-and-publish story is working:

  • Community & Social - Discussion threads, profiles, groups, moderation, access controls, friendly merge UX for non-technical contributors.
  • CuratedCommons / MetaWeb / Web Annotation - Browser extension for Git-backed page annotations; W3C Annotation-compatible social bookmarking.
  • Federation - ActivityPub integration; immutable public records via Git commits.
  • Richer Data Models - RDF semantic edges, weighted links, graph-database backend (e.g. TerminusDB), consensus and reputation mechanisms.
  • Consensus and Reputation Mechanisms: Empowering community-driven content management and peer review.

License

GPLv3

Contributing

See CONTRIBUTING.md.