Skip to content

[Proposal] Extract @plannotator/core npm package (parser + types) for cross-platform reuse #737

@theflysurfer

Description

@theflysurfer

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.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions