/plaintext-everything

📝 A list of tools and articles helpful for keeping everything under plaintext.

plaintext-everything

version-control-everything

A curated list of awesome plain-text tools.

I like to keep everything under version control as plain-text. This is a list of utilities that allow you to do that. Unmaintained tools are striked out.

Note: * denotes that the linked item is not a library or tool, but an article or blog post.

DNS

Configuration

  • etckeeper. The Arch Wiki has a nice guide on usage.
  • NixOS is a completely declarative OS that uses nix, the purely functional package manager
  • RANCID - RANCID monitors a device's configuration, including software and hardware (cards, serial numbers, etc) and uses a version-control-system to maintain history of changes.
  • Oxidised - Oxidized is a network device configuration backup tool. It's a RANCID replacement!
  • *Blog post about Oxidised
  • In general, most configuration management software will keep everything in plain-text.

Terraform

Terraform lets you manage a lot of things in plain-text, including Cloud Assets, Databases, Networking, configuration for various Web services, your CI/CD configuration, and even your Google Calendar. A full list of providers is on the Terraform Registry.

Passwords

  • *Question on StackOverflow
  • *John Resig's blog post
  • pass - Standard unix password manager (encrypt, then commit).
  • ansible-vault - Encrypted storage for ansible.
  • sops - Encrypts files for git.

Dotfiles

Editors

Media

  • Git Large File Storage - Replaces large fileswith text pointers inside Git, while storing the file contents on a remote server. Maintained by github

Encrypted Storage

  • *HN Thread for blackbox, with various alternatives suggested
  • git-crypt - git-crypt enables transparent encryption and decryption of files in a git repository
  • *Blog post on git-crypt
  • transcrypt - transparently encrypt files within a git repository
  • blackbox - use decryption keys per user, meaning that there is no single shared password

Designers

  • pixelapse - Visual version control and collaboration workflow
  • *Adobe Version Cue - Blog post explaining version control to designers
  • kactus.io - Version control for designers (Sketch+Git for now)
  • SnowFS - a fast, scalable version control file storage for graphic files. There is a commercial offering as well.

Music

  • lilypond - version control for sheet music. Think Latex for sheet music
  • tunemachine - Version control for spotify playlists.

Database

  • *Jeff Atwood's blog post
  • GNU Recutils - set of tools and libraries to access human-editable, plain text databases called recfiles. The data is stored as a sequence of records, each record containing an arbitrary number of named fields.

Database Schema

  • flyway - Version control for your database.
  • MyBatis
  • Liquibase - Source Control for your database
  • Rumba RDBM - Database schema migration tool, plain-SQL, and declarative schema definition supported.

Backups

  • bup - Very efficient backup system based on the git packfile format, providing fast incremental saves and global deduplication (among and within files, including virtual machine images)

Writing

  • Draft - Easy version control and collaboration for writers.
  • Penflip - GitHub for collaborative writers.
  • GitBook - Book publishing platform based on git and markdown.
  • CriticMarkup - a way for authors and editors to track changes to documents in plain text.
  • TextBundle - a file format that aims to provide a more seamless user experience when exchanging plain text files, like Markdown or Fountain, between sandboxed applications on MacOS/iOS.

Journaling

Todo

Food

Diagrams & Flowcharts

  • Web Sequence Diagrams - Generates imagess from your plain text descriptions. Has an API for plugin support, so you can embed easily.
  • Kanga Modelling - UML diagram generator in plain text. Written in .NET
  • yuml.me - Class UML diagrams, described in plain text, and easily embeddable.
  • Mermaid - Mermaid lets you create diagrams and visualizations using text and code.
  • Kroki - Kroki provides a unified API for all the diagram libraries including BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag), BPMN, Bytefield, C4 (with PlantUML), Ditaa, Erd, Excalidraw, GraphViz, Mermaid, Nomnoml, Pikchr, PlantUML, SvgBob, UMLet, Vega, Vega-Lite, WaveDrom... and more.
  • ditaa - converts diagrams drawn using ascii art, into proper bitmap graphics.
  • erd - takes a plain text description of entities, their attributes and the relationships between entities and produces a visual diagram modeling the description using GraphViz and Dot.
  • Svgbob Editor - Convert your ascii diagram scribbles into happy little SVG
  • Penrose - create beautiful diagrams just by typing notation in plain text.

Visualization

  • Sparklines are possible in plain-text (specifically these 8 characters: '▁▂▃▄▅▆▇█').
  • Tables-Generator lets you generate plain-text tables.

Presentations

  • Sent - Simple plaintext presentation tool.
  • Slide - Make a presentation using plain-text on Android devices.

Email

Finance

Tools that let you manage finances, but keep your books in plain-text.

  • *plain text accounting - umbrella site for the plain text accounting community.
  • ledger - Ledger is a powerful, double-entry accounting system that is accessed from the UNIX command-line
  • ledger-go, a ledger implementation in go.
  • hledger - cross-platform accounting software for both power users and folks new to accounting.
  • beancount - A double-entry bookkeeping computer language that lets you define financial transaction records in a text file, read them in memory, generate a variety of reports from them, and provides a web interface.
  • transity - A transaction-first plain-text account tool that uses YAML to store your transactions.
  • tackler
  • plainbudget - Minimalist plaintext budgeting tool.

Typesetting

Tools that let you create professional looking documents, but keep your books in plain-text.

  • LaTeX
  • SILE - a typesetting system written in Lua and using the HarfBuzz font shaper. It’s input syntax is somewhat inspired by LaTeX.
  • groff - is a typesetting system that creates formatted output when given plain text mixed with formatting commands. Primarily used for man pages, it has been used for books as well.
  • rinohtype - a Python library that transforms a structured document into a professionally typeset PDF guided by a document template and style sheet.
  • pandoc - If you need to convert files from one markup format into another, pandoc is your swiss-army knife.
  • *Sustainable Authorship in Plain Text using Pandoc and Markdown
  • *Unicode Nearly Plain-Text Encoding of Mathematics - With a few conventions, Unicode1can encode manymathematical expressions in readable nearly plain text. Technically thisformat is a “lightly marked up format”; hence the use of “nearly”.
  • MathML - MathML is a low-level specification for mathematical and scientific content on the Web and beyond.
  • *A list of MathML Tools
  • AsciiDoctor - AsciiDoctor is a fast text processor & publishing toolchain for converting AsciiDoc to HTML5, DocBook & more.

Miscellaneous

Knowledge

  • ScrollSets - All tabular knowledge can be stored in a single long plain text file. Used to build PLDB
  • Webtag - A free text-based bookmarking website.
  • zk - a command-line tool helping you to maintain a plain text Zettelkasten or personal wiki.

Specification

  • OpenAPI Specification - a standard, language-agnostic interface to RESTful APIs which allows both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network traffic inspection.
  • *OpenAPI.Tools - List of various tools that use the OpenAPI Specification including Convertors, Validators, Documentation, Mock Servers, SDK Generators, Text Editors and more.
  • OpenAPI Arazzo Specification - express sequences of calls and articulate the dependencies between them to achieve a particular outcome, or set of outcomes, when dealing with API descriptions .
  • MSON - A description format for describing data structures in common markup formats such as JSON, XML or YAML.
  • Bru Markup Language - A simple markup language with JSON-like semantics, useful for representing API requests in a human-readable format.

Related

License

CC0