finds.dev← search

// the find

flyfish-dev/file-viewer

★ 2,435 · TypeScript · Apache-2.0 · updated Sep 2026

Browser-native Office / PDF / CAD / archive viewer for internal web apps, with Vue, React, Svelte, jQuery, Web Components, and no server-side conversion.

A browser-native previewer for Office, PDF, CAD, and archive files that renders everything client-side with no conversion server, shipped as separate packages for Vue, React, Svelte, jQuery, and vanilla Web Components. Aimed at teams building internal tools (document management, admin panels) who need file previews without standing up LibreOffice-on-a-server or shipping files to a third-party conversion API.

No server round-trip for rendering means documents never leave the browser, which matters if you're previewing anything sensitive, and the assets (WASM, fonts, workers) are self-hostable for air-gapped or private deployments. The package split (light components vs. full compatibility bundles vs. per-format presets) is done properly rather than shipping one 221-extension mega-bundle by default. Framework support isn't a thin wrapper afterthought — there are distinct packages for React 16.8/17 vs 18/19 and Vue 2.6/2.7/3, which is the kind of detail that avoids peer-dependency hell later. The CI setup (dependency-cohort tests, gitleaks scanning, a DICOM license ledger check, docx-upstream verification) is more rigorous than most UI libraries bother with.

Licensing is a trap: the core is Apache-2.0 but the DWG/DWF/DWFX CAD runtime is AGPL-3.0-only, so pulling in CAD support can obligate you to open-source your app depending on how you ship it — worth a legal review before use, not after. Runtime assets (Workers/WASM/fonts) have to be manually copied to the right path per bundler, and a missing file just quietly disables that format instead of erroring, which is a bad failure mode to debug in production. It's read-only — no editing — and the README itself warns that fidelity for CAD, Adobe design files, and DICOM needs testing with your own real files, not just a demo GIF. Source-build-only features (BPMN diagrams, XML validation profiles) aren't in the published npm packages, so building from source and installing via npm give you different capabilities, which is an odd inconsistency to discover mid-project.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →