Files
maCopy/docs/PRODUCT.md
T
ilia e9461ed4f3
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

76 lines
2.8 KiB
Markdown

# Making maCopy a professional product
Checklist beyond “it works on my machine.” Items marked done are already in-repo.
## Already in good shape
- [x] Native menu-bar UX (Accessory activation, tray)
- [x] Configurable global hotkey
- [x] Automated unit tests + `npm run check`
- [x] Performance-minded clipboard monitoring + list payloads
- [x] Image thumbnails; sensitive redaction (preview)
- [x] Paste plain + transforms
- [x] Living docs: README, ROADMAP, TESTING, Launch-at-login
- [x] Launch at login wired to macOS Login Items (release `.app`)
## Ship blockers (do these for v1)
1. **Installable release path**
- Copy `maCopy.app``/Applications`
- Document version / changelog (`CHANGELOG.md`)
2. **Code signing + notarization**
- Apple Developer ID Application certificate
- `codesign` + `notarytool` (or Tauri bundler config)
- Without this: Gatekeeper blocks random users
3. **First-run permissions guide**
- In-app sheet: Accessibility for paste, optional screen recording later
- Deep link / button to open System Settings pane
4. **Stable autostart**
- Only advertise Launch at login after install to `/Applications`
- Re-register Login Item after updates that change the bundle path
5. **CI**
- GitHub/Gitea Action: `npm run check` on every PR
- Optional macOS runner for `tauri build` artifacts
## Product polish (v1.x)
| Area | Idea |
|---|---|
| Updates | Sparkle or Tauri updater + signed feeds |
| Branding | Final icon, dmg background, website one-pager |
| Privacy | Short privacy policy (local-only DB; no telemetry) |
| Support | Issue templates, FAQ (hotkey conflict with cycle-windows) |
| Onboarding | Empty-state tips; `` Ctrl+` `` callout |
| Crash reports | Optional local-only panic log export |
| Quality | E2E smoke script (open → copy → paste) on macOS CI |
## Trust & privacy (especially with redaction)
- Be explicit: **sensitive items are stored** (encrypted-at-rest still TODO) — redaction is UI-only
- Offer “purge sensitive after N minutes” (on roadmap)
- Exclude password-manager apps from capture (on roadmap)
## Distribution options
| Channel | Notes |
|---|---|
| Direct DMG / zip | Simple; needs notarization |
| Homebrew cask | Great for power users once signed |
| Mac App Store | Heavier review; clipboard monitors are tricky under sandbox |
| Private TestFlight-style | Not really for menu-bar utilities; skip |
## Suggested “done for professional v1”
- [ ] Signed + notarized `.app` / DMG
- [ ] Installed under `/Applications` + Launch at login verified after reboot
- [ ] CI green on `npm run check`
- [ ] Accessibility onboarding UI
- [ ] CHANGELOG + version bump process
- [ ] Privacy blurb in README + Settings
Everything else can ride the [ROADMAP](../ROADMAP.md).