Pitch
THE MANUSCRIPT is a self-aware meta-layer for marketing campaigns. It ingests campaign handbooks from Notion and Airtable, diffs them structurally, detects cross-campaign relationships (shared products, timing conflicts, synergies, dependencies, audience overlap), and renders the whole system in three switchable visualization modes: orbit, neural, metabolism. It sits above the publishing pipeline rather than replacing it.Target Audiences
- solo founders running 2+ concurrent campaigns who already lost track
- small marketing teams who use Notion/Airtable as source of truth but want intelligence on top
- developers building internal tools who want the pattern for any “meta-layer over a canonical store”
Angles
Design journal — “the pipeline watches itself”
the existing programs → trails → posts hierarchy was doing its job. nothing wrong with it. but a second campaign started, then a third, and the overlap between them went invisible. the manuscript isn’t a new pipeline — it’s the same pipeline, decorated with a graph layer. every handbook added makes every other handbook denser. the network effect lives inside your own content.Show HN — “three views, one dataset, zero hydration mismatch”
most campaign dashboards pick one metaphor and stick with it. we built three — orbit for relationships, neural for activity, metabolism for flow — by making the layout a pure function of(handbooks, seed). same input, same output, every render, every machine. the ‘running sync’ pulse is CSS keyframes on a conditional className. no force-directed physics, no animation frames, no useEffect for layout. SVG streams from the server; the client just listens to /api/sse and updates the className.
LinkedIn — “xref detection should be boring”
cross-references between campaigns are set operations and interval overlaps. jaccard for shared products. date-range intersection for timing conflict. dependency graph via metadata tags. strength scored 0–100, stored as int, human-eyeballable. LLM is a separate, additive layer — disabled by default. the deterministic pass is load-bearing; the creative pass is garnish. re-running a sync on unchanged data writes zero rows. that’s the invariant that makes the manuscript version number meaningful.Bluesky — “one prompt, five phases, two submodules”
plan mode, three explore agents in parallel, spec gists from a previous session, exitplanmode with allowedprompts, auto mode, TaskCreate per sub-step, filtered typecheck to separate pre-existing failures from new breakage. zod v4 renamed.datetime(). noble/hashes v2 wants .js subpaths. notion v5 moved databases.query to dataSources.query. feature shipped in a single session because every trap was caught at the typecheck boundary.
Hooks
- “your three campaigns don’t know about each other”
- “campaign intelligence shouldn’t require a spreadsheet”
- “the orbit view is 180 lines of typescript”
- “determinism is a feature, not a limitation”
Voice Constraints (Locked)
- lowercase, terse, confident, builder energy
- no hashtags on impact posts
- no engagement bait; no “drop a 🚀 if you agree”
- no villain framing; no “here’s what they got wrong”
- name the pattern, not the team
Spinoff Opportunities
- mini-deep-dive on the deterministic xref rules (links to
doctrines/deterministic-xref-detection.doctrine.md) - before/after screenshots of the three viz modes over the same manuscript
- a “plan mode → exit plan mode → auto mode” walkthrough as a devex post for Claude Code users
- an explainer on “meta-layer over a canonical store” as a reusable pattern (search/filter/recommendation all fit)
Anti-Rules For This Campaign
- don’t pitch it as a “notion replacement” — it sits above notion, not beside it
- don’t over-claim on the LLM layer — it’s optional and stubbed by default
- don’t compare to competitors — there isn’t a named category yet; make the pattern legible instead
- don’t publish before the first real handbook is seeded; a demo with 0 handbooks tells no story