- 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
76 lines
2.8 KiB
Markdown
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).
|