Skip to content

General PDF viewer - one Bluebeam-style viewer that opens ANY pdf (submittals/contracts/RFIs + drawings); shared renderer-decoupled markup toolkit; takeoff & progress as modes on top

StageBuilding
StatusPartial
Design statusIn progress
EstimateXL
ConfidenceHigh
LinearPIN-973 ↗ PIN-1074 ↗ PIN-348 ↗
Linear statusDone · +2 planned
CycleC14-C15
DesignDesign ↗
Linear epicDrawings, Documents & Takeoff
ModuleProgress Drawings ↗

Priority: High

Scope

Universal in-app viewer for PDFs, Word, and Excel — replaces browser-downloads with in-app opening everywhere a document link is clicked — sized to Bluebeam-parity markup quality. Keeps large drawing PDFs uncompressed and vectorized so AI takeoff can still read them, and fixes the multi-page scroll fault found in the takeoff viewer. Performance and markup approach were validated against Procore as the bar. (Source: PIN-973, PIN-348.)

Acceptance criteria

  • Clicking any PDF/Excel/Word link opens it in-app, not as a Downloads-folder file
  • Large drawing PDFs stay uncompressed and vectorized (not rasterized) so AI takeoff can still read them
  • The multi-page large-PDF scroll error found in the takeoff viewer is fixed in the universal viewer
  • Viewer performance (render time, scroll FPS, memory, markup latency) matches or beats the Procore benchmark
  • Markup add/edit latency validated on large real-world drawing sets
  • iPad touch gestures — pinch-zoom + markup pen — work smoothly
  • Viewer is a distinct, universal layer available to every user, separate from the takeoff/progress-drawing tools built on top of it

Conor's comments

Per 2026-08-18 ruling. One PDF spine + one decoupled overlay toolkit + takeoff/progress as producer→consumer modes + freeform annotation (private-by-default + publish) vs progress markup (official) as two subsystems. Bluebeam = approved toolset at quality, NOT full breadth.

Notes

Ruling: 2026-08-18-viewer-architecture-general-pdf-and-bluebeam-scope.md; Marko PDF-viewer thread 8/18. Build order: annotation set → rail+tabs → split-screen. Offline = later workstream, not launch.

Reference

  • Linear: PIN-973 (In-app PDF / document viewer, Bluebeam-parity, universal); PIN-348 (Spike: PDF viewer performance + markup approach for office use)