Skip to content
Mark Garrigan

Work › Plainwork

Plainwork

Micro apps for micro tasks.

Live plainwork.github.io ↗

Role
An experiment, start to finish: the Swift apps, the CLI, the packaging and the site.
Built
2025-12 → 2026-01
History
103 commits across 11 repos
Stack
Swift · Cocoa · Bash · Homebrew
[x] Interface[ ] API[x] Data[ ] Infra[x] Ops

Story

Plainwork was an experiment in how small a useful app can be: four macOS menu bar apps, each a single Swift file with no SwiftUI. Paper is for plain-text notes, Rated for quick 0 to 5 ratings, Taken for appending the clipboard to notebooks, and Timed for timers.

Alongside them is tkn, a Bash CLI for Markdown notebooks with search, date queries and git sync. Everything ships through Homebrew without a paid Apple developer account, which keeps the apps free.

Results

  • Four apps and a CLI shipped in two weeks, December 29, 2025 to January 10, 2026.
  • Each installs with brew.

System, layer by layer

[x] Interface
Cocoa menu bar apps with global hotkeys, each one main.swift of 220 to 1,118 lines. tkn has a small terminal UI.
[ ] API
Not part of this project.
[x] Data
Plain files (~/.rated, ~/.taken). Taken.app and tkn share one config, so both write to the same notebooks.
[ ] Infra
Not part of this project.
[x] Ops
SwiftPM builds, release scripts, changelogs written from git, and Homebrew casks and a formula.

Screens

Screenshot: plainwork.github.io.
plainwork.github.io.[Screenshot]
Site
plainwork.github.io
Status
Live
Built
2025-12 → 2026-01

Visit plainwork.github.io ↗

Decisions

  1. 01

    One file per app

    Each app is a single main.swift on Cocoa, without SwiftUI or an Xcode project.

  2. 02

    Plain text files

    Ratings and notebooks are text files in your home folder. You can read them, grep them and back them up.

  3. 03

    Free means unsigned

    “To keep these apps free, we don't use an Apple Developer account, so macOS may quarantine them.” The site gives the one command that clears it.

In the box

  • Paper: plain-text notes in the menu bar
  • Rated: 0 to 5 daily ratings with averages
  • Taken: append the clipboard to a notebook
  • Timed: a menu bar timer with sounds
  • tkn: a notebook CLI with search, date queries and git sync
  • Homebrew taps for every app
  • plainwork.github.io