Skip to main content

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