# Build brief — a focused alternative to Capture - Quick Notes

> **Verdict:** Partly, if you narrow it · **Buildability:** 63/100 · **Category:** Notes Knowledge
> **Source:** https://www.canitbevibecoded.com/capture
> Independent editorial assessment from Can It Be Vibe Coded? Not affiliated with, endorsed by, or derived from Capture - Quick Notes. Verify current pricing and capabilities before acting.

## Context

**Capture - Quick Notes** — Catch notes, links, images, and files now, then send them to the app where they belong.

The core capture inbox is a focused build: everything runs on public Apple frameworks, so SwiftData plus CloudKit sync, a share extension, and a menu bar capture window cover the loop on iPhone and Mac. What is not a focused implementation is Capture's real surface: five Apple platforms and a catalog of 40+ destination exporters whose URL schemes, APIs, and content rules shift independently. Build the two-platform inbox with a handful of exporters you actually use and it is genuinely yours; chase full parity and you have signed up for the maintenance.

This brief describes a focused, single-operator replacement for the part of Capture - Quick Notes that is genuinely reproducible. It is deliberately narrower than the product it replaces, and it says so in writing. Build the useful core; do not pretend to have rebuilt the rest.

## What you are building

Catch text, links, images, and files on iPhone and Mac, sync them through your private iCloud, organize them into lists, then send each item on to the apps you actually use via destination-specific export actions.

- Capture, organise, search, link, and export personal notes.
- A responsive interface with real empty, loading, success, and error states.

## Requirements

### Functional

- Xcode.
- Apple Developer account for iCloud and App Group entitlements.

### Non-functional

- Accessibility: semantic markup, labelled controls, visible focus, and reduced-motion support.
- Security: server-side secrets, validated input, and no credentials in the client bundle.
- Reliability: retries with backoff on external calls, and a clear failure state when a provider is down.
- Portability: the operator can export their data and leave without losing it.

## Implementation brief

Build me a native quick-capture inbox for iPhone and Mac to replace Capture. Requirements:

- Swift 6 + SwiftUI, one Xcode project: an iOS app and a macOS menu bar app sharing a
  Swift package for the model, persistence, search, and export logic. SwiftData for
  storage, synced through my private CloudKit database.
- A capture is text, a URL, an image, or a file, with a list, archive state, and
  created/edited dates. Run NSDataDetector on text so URLs, phone numbers, and dates
  become tappable.
- iOS: a share extension so anything can be sent in from any app, plus a WidgetKit
  widget for one-tap capture. Mac: a menu bar item with a global hotkey opening a
  compact capture window.
- Inbox, Archive, and lists, with full-text search and undoable archive/delete. JSON
  export of everything so my notes are never trapped.
- Export actions for the destinations I actually use: Reminders and Calendar via
  EventKit, a Mail draft, Things and Bear via their URL schemes, and copy-as-Markdown.
  One small adapter file per destination so more are addable later.
- Offline-first: SwiftData writes locally and CloudKit retries when back online.
  Last-write-wins conflict handling is fine, say so in the README.
- No accounts, no telemetry, nothing leaves my devices except private iCloud sync and
  the exports I trigger.
- Out of scope: Apple Watch and Vision Pro apps, and Capture's 40+ destination catalog.
  Keeping that many exporters alive is the paid product's job, not mine.
- README: the entitlements to enable (App Groups, iCloud/CloudKit), and a plain warning
  that CloudKit sync needs a paid Apple Developer account.

## Delivery standard

- Inspect the repository first, then write a short implementation plan before writing code.
- Deliver the smallest complete end-to-end workflow first; every primary control must work against persisted data.
- Use real validation and storage; never substitute fake dashboards, decorative controls, hard-coded success states, or mock integrations.
- Include responsive layouts plus genuine empty, loading, success, validation, and failure states.
- Keep secrets server-side in environment variables, provide .env.example, and never commit credentials or user data.
- Add structured logs around every external call and return actionable errors without leaking sensitive details.
- Write unit tests for the core logic and one automated test of the main user journey.
- Finish with a README covering setup, architecture, data location, backups, tests, deployment, and known limitations.

## Acceptance criteria

- [ ] A clean install starts the app using only the README and .env.example.
- [ ] The primary journey works from first visit through saved result, reload, edit, export, and deletion where applicable.
- [ ] Invalid input, missing configuration, provider failure, and an empty database each have a usable state.
- [ ] The interface works at 390px and 1440px, is keyboard navigable, and shows visible focus on every control.
- [ ] Tests, type checking, linting, and a production build all pass with no ignored failures.
- [ ] No part of the interface implies a live integration, security guarantee, or scale capability that was not actually built and verified.

## Non-goals

Do not build these, and do not claim to have replaced them:

- App Store-ready polish across iPhone, iPad, Mac, Apple Watch, and Apple Vision Pro.
- Years of CloudKit migration, conflict, and offline-sync edge cases.
- Ongoing maintenance for more than 40 destination-specific export integrations.
- The localization, accessibility, and device test matrix.
- Fast compatibility updates when Apple or a destination app changes behavior.

## What you still own after launch

- Run migrations, backups, restores, and dependency updates.
- Test the critical journey after every model, API, or hosting change.
- Monitor failures and fix the edge cases a first prompt will miss.
- Maintain every third-party integration as APIs and OAuth rules change.

## Risk

**Operational risk.** The code is achievable; dependable data, integrations, and ongoing operations are the real cost.

Editorial confidence in this assessment: medium. No reviewed project implementation is linked yet.

## Prior art

Working open-source software you can read, fork, or borrow from before starting:

- [FSNotes](https://github.com/glushchenko/fsnotes) — Open-source notes manager for macOS and iOS with plain-text storage
- [NoteTaker](https://github.com/insidegui/NoteTaker) — Open-source Swift notes app for macOS and iOS with CloudKit sync

---

Generated by [Can It Be Vibe Coded?](https://www.canitbevibecoded.com) · Full report: https://www.canitbevibecoded.com/capture
