gitwtfhub

wtf is file-viewer?

flyfish-dev/file-viewer — explained in plain English

Analysis updated 2026-05-18

50HTMLAudience · developerComplexity · 2/5LicenseSetup · easy

TL;DR

A Vue component that previews Word, Excel, PowerPoint, PDF, audio, and ebook files in the browser without a backend conversion server.

Mindmap

mindmap
  root((file-viewer))
    Inputs
      URL
      File object
      74 extensions
    Outputs
      Inline preview
      Highlighted code
      Rendered slides
    Use Cases
      Document portal
      Static iframe embed
      Vue app preview
    Tech Stack
      Vue
      pdfjs-dist
      docx-preview
      exceljs

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Add inline Office and PDF previews to a Vue 3 admin dashboard.

REASON 2

Embed the demo folder via iframe in a legacy app that cannot add Vue deps.

REASON 3

Show DXF, draw.io, and Excalidraw files inside a documentation portal.

What's in the stack?

VueJavaScriptpdfjs-distdocx-previewexceljshighlight.js

How it stacks up

flyfish-dev/file-viewercoleam00/hyperframes-ai-video-generationcsthink/dashmotion
Stars505050
LanguageHTMLHTMLHTML
Setup difficultyeasymoderateeasy
Complexity2/53/51/5
Audiencedevelopervibe codervibe coder

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 30min

Source code is paid, so customization beyond props means buying the shop license or living with the obfuscated dist.

Apache 2.0 lets you use, modify, and ship this commercially as long as you keep the notices, but the source code itself is sold separately.

Wtf does this do

Flyfish Viewer is a public artifact repository for a browser-based file preview component. The repository itself does not contain the source code. It hosts the built distribution files, a demo site, documentation, and example files. Teams who want the full source, a fork, or a commercial license are pointed to the project's shop page, where access is sold for 4.99. The component, published on npm as @flyfish-group/file-viewer3 for Vue 3 and @flyfish-group/file-viewer for Vue 2.7, lets a web app open Word, Excel, PowerPoint, PDF, audio files, and ebooks directly inside the browser. The README states that parsing and rendering happen entirely on the front end, so there is no need for a backend transcoding service, an Office server, or a LibreOffice process. The current version is 1.0.9, and both npm packages stay in sync. The README lists 74 file extensions across roughly 15 preview pipelines. Word docs use docx-preview or a legacy doc viewer, Excel uses styled-exceljs with virtual scrolling, PowerPoint slides render with theme backgrounds and EMF vector images, and PDFs use pdfjs-dist. Other supported types include OFD documents, DXF CAD drawings, Excalidraw boards, draw.io diagrams, EPUB and UMD ebooks, Markdown, common image formats, MP4 video, MP3 and other audio, and a long list of code and text files highlighted with highlight.js. The README describes three ways to use the project. You can install the npm package and register it as a Vue 3 or Vue 2 component, passing a url or a File prop. You can also drop the demo folder onto any static host and embed it through an iframe, which suits multi-system setups that do not want preview dependencies in the main bundle. A tarball under artifacts lets you install without going through npm. The project is released under Apache 2.0. Issues and pull requests for general fixes are welcome.

Yoink these prompts

Prompt 1
Wire @flyfish-group/file-viewer3 into my Vue 3 app and show a PDF from a signed S3 url with a download button.
Prompt 2
Build an iframe wrapper around the file-viewer demo folder that accepts a postMessage with a file url and resizes to content.
Prompt 3
Compare file-viewer to react-doc-viewer for a Next.js app that needs docx and xlsx preview without a backend.
Prompt 4
List which of the 74 supported extensions in file-viewer render fully client side versus needing extra config.

Frequently asked questions

wtf is file-viewer?

A Vue component that previews Word, Excel, PowerPoint, PDF, audio, and ebook files in the browser without a backend conversion server.

What language is file-viewer written in?

Mainly HTML. The stack also includes Vue, JavaScript, pdfjs-dist.

What license does file-viewer use?

Apache 2.0 lets you use, modify, and ship this commercially as long as you keep the notices, but the source code itself is sold separately.

How hard is file-viewer to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is file-viewer for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.