The share sheet is the product
Capture has to take under five seconds or it does not happen. That one threshold decides most of how Curate is built, including what it refuses to ask you.
There is a moment, maybe a second and a half long, between finding something worth keeping and deciding it is not worth the effort. Everything Curate does about capture is built around not losing that moment.
Five seconds is not a target, it is a threshold
The goal we hold ourselves to is that capturing something takes under five seconds and works from any app. That is not a performance boast. It is the point at which saving stops being a decision and becomes a reflex, and below it people save things they would otherwise have let go.
Above it, they do what everyone already does: screenshot it, leave the tab open, send it to themselves in a message, and never look at any of it again.
What that rules out
Once you take the threshold seriously, a lot of reasonable-sounding features stop being reasonable.
It rules out asking you to file things. A folder picker at save time costs three or four seconds and, worse, costs a decision. You have to know where this goes before you know what it is. Curate suggests tags instead, and they cost you nothing because you do not have to accept them.
It rules out waiting for the parse. The share extension confirms in under two seconds, and it does that by fetching the page and reading its markup rather than rendering it. The heavier work happens after you have gone back to what you were doing.
It rules out failing quietly. If a save cannot complete, it has to say so somewhere you will see it, because a capture you believe succeeded and did not is worse than one that never happened.
What it asks for instead
The share sheet shows you what it found. Not a spinner and a hope, but the title it read, the source it came from, and whether it thinks this is a recipe or something to read. If it got the type wrong, one tap fixes it, because that is the single judgement a machine gets wrong often enough to be worth a control.
Everything else waits. You can tag it later. You can fix a quantity later. You can decide it was not worth keeping later. None of that belongs in the second and a half you actually had.
The part people notice last
The extension never opens a web view. It does one fetch, reads the page’s metadata and any recipe markup on it, and that is the whole confirmation path. The article body is extracted separately, later, when you first open it.
That split is invisible when it works and obvious when it does not, which is roughly the right shape for infrastructure.
Reading this with a machine? The same post as plain markdown: /blog/capture/the-share-sheet-is-the-product.md