Palette notes
4 days agoSea glass, ink, and a small apricot accent.
TextA searchable macOS clipboard archive designed to keep old entries useful without keeping the entire archive in memory.
Personal macOS app · Private source
A clipboard history grows continuously. Loading all of it into memory makes a long-lived tool less useful, while treating a search database as the only copy makes recovery and replication harder.
I built the native capture and search app, separating permanent entry files from the temporary indexes that make them fast to find.
The engineering decision
An entry file is the durable record. The SQLite database is a derived view that can be rebuilt. That separation makes the archive easier to recover and avoids trying to synchronize an actively written database.
The app keeps a recent window in memory and uses its on-disk index for older entries. The important boundary is between keeping information and accelerating access to it: the second should be replaceable without sacrificing the first.
Interactive model · synthetic data
Try “typography” in All time, then rebuild the lookup index.
Past 60 days, plus pinned entries.
Sea glass, ink, and a small apricot accent.
TextReview the diff. Verify the build. Keep the previous release.
TextMake the hierarchy clear before adding motion.
TextThe model is ready. Sample files are separate from the lookup index.
An in-memory explanation of the design, not the macOS app or a running SQLite database.
I built the application, archive model, and search integration. AppKit supplies clipboard access, SQLite supplies the index, and optional cross-device file replication is provided by Syncthing.