Solenoid built the fix overnight, while you slept.
One drift finding from the demand map → a decision, a design, and three code PRs.
~$214K ARR · 5 PRs opened · +1,016 −20 21 files · all CI-green · 0 merged
Found: top customers want Notion
Highest-drift demand this snapshot: a first-party Notion connector — top-5 by revenue, zero builds in flight.
~$214K ARR the gap that triggered everything below.
- [Observation] 4 asks across Slack, a sales call, Linear, and support — 3 name Notion explicitly.
- [Hypothesis] A true alignment gap, not work tracked elsewhere.
Solenoid opened 5 PRs to close it — each one yours to review & merge
Decided: build a Notion integration
Ship a first-party Notion connector in three staged PRs, behind a flag, BYOK-first.
~$214K ARR one account gated its annual renewal on it.
- [Observation] Reuses the existing BYOK token vault — no new secret-at-rest surface.
- [Hypothesis] Closing it converts the at-risk expansion account.
+96 −0 1 file CI ✓
Designed: the Notion connect experience
Paste a Notion URL — the card lights up 'connected' and previews the first ingested page.
Why it matters Lower-friction than OAuth-first; the preview confirms the right workspace before any sync.
- [Hypothesis] Paste-then-authorize beats authorize-then-browse for first connect.
+134 −0 2 files CI ✓
Built: the integration foundation
Scaffolds the connector package — schemas + types, no auth yet. A reviewable surface before any credentials land.
- [Assumption] Mirrors the existing connector package layout.
+312 −0 6 files CI ✓
Built: secure Notion sign-in
Adds the Notion OAuth flow; stores the token in the existing BYOK vault — never logged, never rendered.
- [Observation] Reuses @solenoid/byok — no new secret-at-rest surface.
+198 −12 5 files CI ✓
Built: Notion document sync
Pipes Notion docs into @solenoid/knowledge, idempotent per document revision.
- [Hypothesis] Incremental cursor sync stays within Notion's rate limits; full re-crawls wouldn't.
+276 −8 7 files CI ✓