Self-hosted PDF and EPUB reader that syncs with Obsidian literature notes. Stores reading progress, highlights, and bookmarks in markdown frontmatter.
Works best with BibLib, an Obsidian plugin for managing literature notes with bibliographic metadata.
- PDF and EPUB reading with progress sync
- Highlights and bookmarks stored in frontmatter
- Full-text search across documents
- Reading statistics and daily goals
- Dictionary lookup
- E-ink display mode
- Node.js 20+
- A directory with markdown files linking to PDF/EPUB files
Create pulp.yaml in ~/.config/pulp/ or set PULP_CONFIG:
library_path: ~/path/to/literature-notes
source_key: source # frontmatter key pointing to the PDF/EPUB filenpm install
# Start both servers
npm run dev:server # http://localhost:3000
npm run dev:web # http://localhost:5173npm run build
npm start -w @pulp/servernpm run test:e2e
npm run typecheck
npm run lintpackages/
├── server/ # Fastify API server
├── web/ # React frontend (Vite)
└── shared/ # TypeScript types



