Hi! Big fan of Plannotator. I've been maintaining a React Native port in our fork (theflysurfer/Happier — Happy mobile app) since early 2026.
The port currently re-implements your parser + types from scratch, which drifts. I'd love to consume parts of upstream directly as an npm dep.
Proposal: extract these into a @plannotator/core package (zero runtime deps, pure logic):
packages/ui/utils/parser.ts (parseMarkdownToBlocks, extractFrontmatter, HTML_BLOCK_TAGS)
packages/ui/utils/planDiffEngine.ts
packages/ui/types.ts (Block, Annotation, AnnotationType, AlertKind)
Benefits:
- RN/mobile users can consume the parsing logic directly
- UI implementations stay platform-specific (web/Bun upstream, RN downstream)
- Updates flow naturally instead of via manual mirroring
Happy to open a PR if there's interest. Otherwise I'll keep mirroring manually.
(Note: our RN port is on the older API — INSERTION/REPLACEMENT annotation types — we'll catch up.)
Hi! Big fan of Plannotator. I've been maintaining a React Native port in our fork (theflysurfer/Happier — Happy mobile app) since early 2026.
The port currently re-implements your parser + types from scratch, which drifts. I'd love to consume parts of upstream directly as an npm dep.
Proposal: extract these into a
@plannotator/corepackage (zero runtime deps, pure logic):packages/ui/utils/parser.ts(parseMarkdownToBlocks, extractFrontmatter, HTML_BLOCK_TAGS)packages/ui/utils/planDiffEngine.tspackages/ui/types.ts(Block, Annotation, AnnotationType, AlertKind)Benefits:
Happy to open a PR if there's interest. Otherwise I'll keep mirroring manually.
(Note: our RN port is on the older API — INSERTION/REPLACEMENT annotation types — we'll catch up.)