maCopy/ROADMAP.md
ilia e9461ed4f3
All checks were successful
CI / skip-ci-check (pull_request) Successful in 4s
CI / secret-scan (pull_request) Successful in 3s
CI / node-ci (pull_request) Successful in 17s
Add copy-only, color swatches, DB speed pragmas, and living docs
- Copy only (right-click -> Copy): write to clipboard without
  auto-pasting or hiding the window
- Color swatches: hex/rgb/hsl entries show a preview chip
- SQLite WAL + synchronous=NORMAL so the UI can read while the
  clipboard poller writes
- Memoize list rows (React.memo) so selection/focus changes don't
  re-render every row's preview
- Add docs/GUIDE.md (living install + usage doc), docs/SHARING.md,
  docs/TESTING.md, docs/LAUNCH-AT-LOGIN.md, docs/PRODUCT.md,
  CHANGELOG.md, ROADMAP.md
- Add homelab Gitea Actions CI (.gitea/workflows/ci.yml) + gitleaks
  allowlist
- Bump version to 0.2.0
2026-07-14 21:58:31 -04:00

3.6 KiB
Raw Permalink Blame History

maCopy roadmap

Living list of shipping ideas. Checked items are done (or landed in the current branch).

Done recently

  • Global hotkey Ctrl+` (avoids macOS Cmd+` window-cycle); configurable
  • Performance: pasteboard changeCount, list previews, no full-image list payloads
  • Image thumbnails in the picker (+ backfill)
  • Reliable left-click paste (mousedown + delayed blur hide)
  • Image paste via real clipboard image write
  • Sensitive redaction — save passwords / cards / banking / secrets fully, show •••• in the list; paste still uses the real value
  • Paste transforms — right-click → Transform (trim, case, collapse, JSON pretty, single line)
  • Paste plain — ⌥/Alt+click or “Paste plain” (strip HTML-ish formatting / entities)
  • Launch at login wired to macOS Login Items
  • Visible npm run test:visual walkthrough
  • Copy only — right-click → Copy puts content on the clipboard without auto-paste/hide
  • Color swatches — hex/rgb/hsl entries show a preview chip (Ditto/Pastebot-style)
  • SQLite speed pragmas — WAL + synchronous=NORMAL so reads don't block on writer fsyncs
  • Memoized list rows — selection/focus changes no longer re-render every row's preview

Next up (high value)

  • Exclude apps — dont capture from 1Password / banking / Terminal patterns (macOS frontmost app filter)
  • Signed + notarized release + install to /Applications (see docs/SHARING.md)
  • Accessibility first-run guide
  • CI on npm run check
  • Default transform preference in Settings
  • Snippets / favorites — named, always-available text (separate from history)
  • Ignore patterns — regex list that auto-drops or auto-redacts matches
  • Auto-delete window for sensitive — purge redacted items after N minutes (optional)
  • Virtualized list — if history UI grows past a few hundred rows

Later / brainstorm

Privacy & trust

  • Encrypt DB at rest (macOS Keychain-wrapped key)
  • Per-entry “never show again” / blacklist hash
  • Paste confirmation for sensitive items (Confirm paste?)
  • Clear sensitive on lock / sleep
  • Dont sync sensitive items if/when sync exists

Capture quality

  • HTML + plain dual capture with “prefer plain” default
  • File lists / Finder copy
  • Link enrichment (title/favicon for URLs)
  • OCR on image entries → searchable text (private, on-device)

Paste power

  • Paste stack / sequential paste (next item on each paste)
  • Paste as keystrokes (for fields that block paste)
  • Numbered paste queue from multi-select order
  • Date/time templates, UUID, lorem in snippets
  • Shell-escape / URL-encode / base64 transforms
  • “Edit before paste” quick editor sheet

UX polish

  • Compact vs comfortable density
  • Pin board / tabs (All · Pins · Images · Sensitive)
  • Drag item onto another app
  • Keyboard: Tab into transforms, / transform palette
  • Menu bar: last N items quick-paste submenu
  • Sound / haptic optional on paste

Sync & backup

  • Optional Tailscale / local LAN sync between machines
  • Export/import encrypted archive
  • Time-machine-friendly atomic DB

Power-user system

  • Alfred / Raycast callback URL or CLI (macopy paste 3 --plain)
  • Shortcuts / URL scheme
  • AppleScript / JXA bridge

Hardening

  • Sandbox-friendly Accessibility prompt flow + in-app guide
  • Crash-safe write-ahead DB
  • Telemetry: none (keep it that way); optional local diagnostics export

Non-goals (for now)

  • Cloud sync through a third-party host
  • Browser extension dependency
  • AI “summarize my clipboard” calling external APIs by default