Populus-Viewer
Social Annotation Powered by Matrix
Populus-Viewer is a tool for decentralized social annotation,
built on pdfjs and
the Matrix protocol. You can use it to read
PDFs and have rich discussions in the margins, with your friends,
classmates, or scholarly collaborators.
Each uploaded PDF is attached to a matrix space, and each annotation
to the PDF becomes a room within that space. Populus-Viewer has been
tested with synapse and dendrite, but should be compatible with any
spec-compliant matrix server.
To learn more or talk about the project, find us on Matrix.
The project should currently be considered beta-quality. UX is
unpolished, bugs are likely, and features are missing. Bug reports and
feature requests are welcome.
Features
recording.mp4
Populus-Viewer currently supports:
- Highlight and pin-drop annotations
- Audio and video messages
- Message edits and redactions
- Replies and reactions
- Unread message counts
- Markdown for text formatting (via commonmark.js)
- LaTeX for mathematical notation (via KaTeX)
- Integration with bots
- Typing notifications
- Room invitations
- Synchronized reading positions across devices
- Single Sign On (via Google, university, or another SSO provider), given a matrix server that supports it
If there's a feature supported by Matrix that you think would make for a
better social annotation experience, please open an issue or a PR!
Usage
To try out Populus-Viewer, just point your browser at our github pages
instance. You're welcome to use
the default testing server, but be aware that this server may be torn down or
replaced at any time.
To get started tinkering with the source code, clone this repository and then
run:
npm installto download dependencies and install them locally.npm run-script buildto build the browser JS, which will end up in thedistdirectory.npm run-script serveto serve the contents ofdistat localhost:9000, and auto-reload on changes.
Prior Art
Similar projects include:
But I couldn't resist trying something new :)