# xushanpei/open-file-viewer

A framework-agnostic embedded file viewer for vanilla JavaScript, React, Vue and Svelte. Put PDF, Office, images, media, archives, email, drawings, 3D, GIS and engineering files inside one stable container.

Repository: https://github.com/xushanpei/open-file-viewer
Canonical: https://ross.abutalabs.com/products/open-file-viewer
Homepage: https://open-file-viewer-workspace.void.app/
Language: TypeScript
License: MIT
License Family: permissive
Last push: 2026-08-25T05:46:08+00:00

## Health v2 (maintenance only)
Score: 80/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 99, release rhythm 98, longevity 6
- inputs: {"age_days": 93, "days_push": 8, "days_rel": 14, "gap_med": 3, "n_releases_24m": 4}
- flags: young
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1368, forks 138 (observed 2026-08-28T04:04:31.413935+00:00)

## What it is
A framework-agnostic embedded file preview SDK for web applications that renders PDFs, Office documents, images, media, archives, emails, CAD drawings, 3D models, GIS data and more inside a single DOM container. It ships a plugin-based core with adapters for vanilla JavaScript, React, Vue, and Svelte.

## Use cases
- preview pdf and office documents in a web app
- embed file attachment preview in my application
- view zip archives and eml emails in the browser
- show cad dwg dxf drawings on a web page
- preview 3d glb stl models in react
- display geojson and kml map files in a viewer
- framework-agnostic file preview for vue and svelte

## When to choose
- you need in-page preview of many file formats without opening new windows
- your app mixes React, Vue, Svelte or vanilla JS and wants one shared preview core
- you want plugin-based extensibility for custom or proprietary formats
- you need production features like toolbars, themes, error states and multi-file queues

## When to avoid
- you only need PDF rendering and a lighter dedicated PDF library suffices
- you need server-side document conversion rather than client-side preview
- your target formats require optional dependencies you cannot ship

## Facets
- artifact type: library
- maturity: active
- function: ui-components, pdf-viewer, plugin-system, sdk, developer-tools
- domain: web-development, frontend, files, pdf, developer-tools
- platform: browser, cross-platform
- tags: file-preview, file-viewer, react, vue, svelte, vanilla-js, office-documents, cad, gis, 3d-models, email-preview, archive-preview, typescript, web-server, nodejs

## Member repositories
- xushanpei/open-file-viewer (main) score 80

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:31.413935+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:41:05.359094+00:00, confidence not recorded.
  - readme: https://github.com/xushanpei/open-file-viewer (fetched 2026-08-28T04:04:31.413935+00:00, sha a20ada1dbaef)
  - homepage: https://open-file-viewer-workspace.void.app/ (fetched 2026-08-29T11:58:29.214121+00:00, sha 277fd300ad91)
  - site_page: https://open-file-viewer-workspace.void.app/about.html (fetched 2026-08-29T11:58:29.223228+00:00, sha a719e4d524d9)
  - site_page: https://open-file-viewer-workspace.void.app/api.html (fetched 2026-08-29T11:58:29.225011+00:00, sha bacf315ca020)
- Data as of 2026-08-30T08:39:29.467469+00:00.
