Highlight, annotate, capture screenshots, record your screen, and run on‑device AI (OCR & transcription) — then sync across devices or share with people you choose. Private by design.
ptNotes replaces a stack of separate apps — highlighter, note-taker, screenshot tool, screen recorder, OCR and transcriber.
Multi-color highlights on any page, with notes attached via typing or voice-to-text. Auto-organised, searchable, foldered.
Pin draggable notes anywhere on a page, with voice input and read-aloud.
Full or region capture, saved alongside the source page and highlight.
Permission-based screen + mic capture via native browser APIs, with a clean WebCodecs→MP4 pipeline.
OCR (Tesseract) and speech-to-text transcription (Whisper via Transformers.js) — runs locally, no data leaves the device.
Turn notes and transcripts into PDF, Word, and PowerPoint documents.
Optional Google sign-in syncs content to a private per-user space across devices.
Connect with others and share only chosen content types — enforced by a feature-intersection permission model.
No ads, no behavioural tracking. Your content stays on your device until you sign in; then it syncs to your own private, access-controlled account.
Highlight text on any page and pick a color.
Add notes, sticky notes, screenshots, or screen recordings from the toolbar.
Run OCR & transcription on-device; generate summaries and export.
Sign in to sync across devices and share with approved connections.
Built as a Manifest V3 extension with a privacy-first, mostly client-side architecture and a serverless cloud backend.
Problems solved while building ptNotes.
XPath + offset anchoring with a text-search fallback to re-render highlights reliably across page reloads and DOM changes.
Per-feature access with a "feature-intersection" rule so two users only sync the content types both are authorised for.
Moved cloud upload into the service worker so content syncs even when the popup is closed.
WASM-backed Whisper + Tesseract keep audio and images on the device — no server round-trips, no per-call cost.
WebCodecs→MP4 muxing with a MediaRecorder fallback for broad browser support and shareable output.
No secrets shipped; access enforced server-side via Firestore rules, restricted API keys, and per-user data scoping.