Hovarn Classic
View, Sheets, Docs, Slides, PDF, Files, Books, MathA white-label office suite and file viewer that any of our apps can drop in.

What it does
- View: one viewer for PDF, images, video, spreadsheets, Word and PowerPoint — downloads off unless allowed
- Sheets, Docs, Slides and PDF editors over one shared Files store
- Books: shelves per batch and a page-flip reader with highlights, notes and bookmarks
- Math: KaTeX formulas and chemistry (mhchem) drawn anywhere, plus a symbol and equation picker
- No platform name in the UI; every colour comes from the host app's theme
Who it's for
Any Hovarn app that shows or edits files: notes, sheets, slides, PDFs, textbooks, formulas.
How another app uses it
Each part is one script and one stylesheet, with no framework. It adds a single namespace and never overwrites existing members:
<link rel="stylesheet" href="/assets/css/hovarn-view.css">
<script src="/assets/js/hovarn-view.js" defer></script>
<script>
const v = Hovarn.Classic.View.open('/files/notes.pdf', {
title: 'Plant growth regulators — class notes',
onPage: e => console.log(`page ${e.page} of ${e.pages}`)
});
</script>const M = Hovarn.Classic.Math;
await M.render(document.body); // KaTeX loads only if a formula is present
M.toText('\\ce{CH3COOH <=> CH3COO- + H+}'); // 'CH₃COOH ⇌ CH₃COO⁻ + H⁺'
M.attach(document.querySelector('textarea')); // adds the Ω symbol pickerconst B = Hovarn.Classic.Books;
B.config({ catalogUrl: '/assets/data/books.json', readerHref: '/reader.html' });
const r = B.reader(document.querySelector('#book'), { id: 'openstax-physics', page: 1 });
r.next(); r.setMode('scroll');Where it stands Embeddable today · preview
All parts work in the demo today and can be embedded now. Files are kept in the browser (IndexedDB) until the shared server store lands; editors load their open-source engines (Quill, PDF.js, pdf-lib, KaTeX) on demand at pinned versions.