· updated · Thomas Karner
voidrab: two web tools for working with PDF documents
The PDF Co-Viewer for reviewing documents together and the PDF Pattern Matcher for checking large batches of documents against each other – how they work and what they are for.
A lot of office work still revolves around PDF documents: going through contracts together, matching invoices against bank statements, checking delivery notes. Under the name voidrab, I have built two small web applications that make exactly these tasks easier. Both run directly in the browser, with nothing to install.
PDF Co-Viewer: review documents together
If you have ever walked through a contract page by page on a video call, you know the problem: the screen share is blurry, someone scrolls too fast, and nobody is quite sure which paragraph is being discussed.
The PDF Co-Viewer takes a different approach. Instead of streaming video, every participant opens the same document in their own browser. One person moderates: when they scroll or change the page, everyone else’s view follows automatically. A marker tool lets them highlight passages or graphics, visible to all. Anyone who wants to lead through the document can request and take over the moderator role.
How it works
Synchronisation runs over a WebSocket connection (RFC 6455), a permanently open channel between browser and server. Only small control messages travel over it – something like “page 4, position 30 %” – which keeps latency low. The moderator uploads the PDF once; it is then passed on to participants in chunks, so everyone works with a local copy. The interface is built with Vue.js 3 and Tailwind CSS and also works on tablets and smartphones.
Because each device renders the document itself, text stays sharp and the connection needs far less bandwidth than a video screen share.
What it is for
- Walking through contracts or proposals with clients
- Reviewing or proofreading reports as a team
- Going through course material page by page in class
- Quick check-ins that don’t justify a full meeting tool
PDF Pattern Matcher: check large batches of documents
The second application solves a different problem: you have two batches of documents and need to check whether certain details appear in both. For example, whether every invoice number in a folder also shows up in the bank statement. By hand, that is tedious and error-prone.
The PDF Pattern Matcher searches documents using patterns (regular expressions), for instance for IBANs, e-mail addresses, invoice numbers or custom IDs. It then shows which values are missing from which batch and which file a value came from. Results can be exported as CSV for further processing in Excel or other systems.
Scanned documents without selectable text are supported too. For that, it uses Tesseract.js, an optical character recognition (OCR) engine that runs directly in the browser.
Privacy by architecture
All processing happens locally in the browser. Documents are not uploaded and never leave your device. That is a deliberate choice: invoices, bank statements and HR documents in particular contain personal data. What never reaches a server doesn’t have to be protected, stored or deleted there. This follows the GDPR principles of data minimisation and data protection by design (Art. 5 and Art. 25).
What it is for
- Accounting: matching bank statements against a folder of invoices
- HR: searching applications for specific certificates or details
- Legal and compliance: checking that reference numbers or clauses appear consistently across a whole stack of contracts
- Logistics: checking delivery notes against inventory lists
Work that would otherwise take hours by hand often takes only seconds.
Try them and get in touch
You can try both tools right away: viewer.voidrab.com and patterns.voidrab.com. If you have questions, want to use them commercially or need a similar solution for your own workflows, get in touch.
Sources
- Fette, I.; Melnikov, A.: RFC 6455 – The WebSocket Protocol. IETF (2011)
- Tesseract.js: Pure JavaScript OCR for more than 100 languages. GitHub
- Regulation (EU) 2016/679 (GDPR), Art. 5 and Art. 25: EUR-Lex