<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Serban Andrew Locota</title>
    <description>The latest articles on DEV Community by Serban Andrew Locota (@andrei_veridox).</description>
    <link>https://dev.to/andrei_veridox</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4156049%2Fcd8d207e-1d4f-4bb9-a694-3213c19464eb.png</url>
      <title>DEV Community: Serban Andrew Locota</title>
      <link>https://dev.to/andrei_veridox</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/andrei_veridox"/>
    <language>en</language>
    <item>
      <title>Trying Loupe in a web app: install and integration notes</title>
      <dc:creator>Serban Andrew Locota</dc:creator>
      <pubDate>Mon, 05 Oct 2026 00:22:34 +0000</pubDate>
      <link>https://dev.to/andrei_veridox/trying-loupe-in-a-web-app-install-and-integration-notes-4ff7</link>
      <guid>https://dev.to/andrei_veridox/trying-loupe-in-a-web-app-install-and-integration-notes-4ff7</guid>
      <description>&lt;p&gt;Loupe is a browser document viewer for apps that need PDF, Word and images in the same workflow. You supply the toolbar and layout; the package handles viewer state and the format adapters.&lt;/p&gt;

&lt;p&gt;Some notes from setting it up, in case you try it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz6i5antmkxed6pctsdem.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz6i5antmkxed6pctsdem.gif" alt="Loupe playground with a fictional delivery note, then the install and main.ts code" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;p&gt;The current release is v0.1.3. It installs with npm from a GitHub release, rather than the public npm registry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;https://github.com/AndreiLocota/loupe/releases/download/v0.1.3/andreilocota-loupe-0.1.3.tgz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;a href="https://tryloupe.lovable.app/developers" rel="noopener noreferrer"&gt;developer page&lt;/a&gt; has the working example and capability table. The core is headless, with separate PDF, DOCX and image adapters. React bindings are optional.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bits to check in your app
&lt;/h2&gt;

&lt;p&gt;Give the viewer container a definite height. Without one, the document loads with no error, but the container is 0 px tall and nothing shows. Make sure your bundler serves the worker and WASM assets. If you use server rendering, keep the adapters on the client. Dispose of the viewer when you unmount it.&lt;/p&gt;

&lt;p&gt;Then try your real layout. A document beside an approval form has much less room than a full-screen demo. Check whether someone can read a table, find an amount and copy a reference at that width.&lt;/p&gt;

&lt;p&gt;A scan is also worth including in your test folder. Loupe has no OCR: PDF search needs text already in the file. Image controls vary by format, so check the capability table rather than assuming every button applies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scope and licence
&lt;/h2&gt;

&lt;p&gt;Viewing runs in the browser without an API key or hosted backend at runtime. The package is free for commercial use under its use licence, but it isn’t open source. It’s also pre-1.0, so the API can change.&lt;/p&gt;

&lt;p&gt;The Word inspector on the demo site is a separate application built around the viewer. Its retained-comments and tracked-changes inspection isn’t an SDK API.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tryloupe.lovable.app/playground" rel="noopener noreferrer"&gt;Try the playground&lt;/a&gt; with your own files. It accepts PDF, Word and the supported image formats, and nothing is uploaded.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>testing</category>
      <category>frontend</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
