Sharing a Table
A PixelPatrol table is a single .parquet file holding everything about your dataset - metrics, thumbnails, schema, the works. Open it in a viewer and you get the full interactive report; this page covers all the ways to get the viewer to your collaborators (or the other way around).
Which method fits you?
Answer the three questions below and the cards for methods that don't fit will dim out - so the right one stands out at a glance.
Click the ✓ in the corner of each card to mark it as reviewed and track your progress.
The zero-effort option. No installation required on either end - send your collaborator the .parquet file and point them to:
They drag the file into the browser and the full interactive viewer loads. Everything runs locally in their browser - no data is uploaded anywhere.
pixel-patrol view instead.pixel-patrol view locally
Your collaborator will need PixelPatrol installed - a single pip install pixel-patrol away (see the installation tutorial). Once it's there, they can open any .parquet file directly:
This starts a local server backed by native DuckDB - no browser memory ceiling, fast even for very large reports.
pixel-patrol view the way it is into a self-contained HTML or hosted site (see below).Package the viewer into a single HTML file that works with any parquet:
Send both viewer.html and results.parquet to your collaborator. They open viewer.html in any browser, pick the parquet from the file picker, and get the full interactive report - with nothing to install and no external link to track down.
🔬 What's actually inside viewer.html
viewer.html is the application shell, not the data - your collaborator still needs the .parquet file alongside it (same folder is easiest; the viewer offers a file picker on load). Its core - DuckDB, Plotly, your extensions - is bundled directly into the file. Its styling (Bootstrap CSS and icons), however, still loads from a CDN at runtime, so your collaborator needs an internet connection the first time they open it, even though nothing needs installing.Want to publish results online - on GitHub Pages, an institutional server, an S3 bucket, or any static host? Deploy the viewer as a site folder and link straight to your parquet.
Step 1 - build a viewer site folder:
This creates a my-report-site/ directory with index.html and all viewer assets.
Step 2 - upload your parquet alongside the site (or to any public URL).
Step 3 - link to the viewer with a ?data= parameter:
The viewer fetches the parquet from the URL, so it can live anywhere publicly reachable - S3, GitHub releases, institutional storage, you name it.
🔬 GitHub Pages, end to end
# Build the viewer into your gh-pages output
pixel-patrol build-viewer-html -o docs/viewer/
# Add the parquet to the same repo (or reference an external URL)
cp results.parquet docs/viewer/
# After deploying to GitHub Pages, share:
# https://your-org.github.io/your-repo/viewer/?data=https://your-org.github.io/your-repo/viewer/results.parquet
?data= URL too - https://pixelpatrol.app/viewer/?data=https://your-server.com/results.parquet. Anyone with that link opens the full interactive report immediately, no deployment required.Bonus: share exactly what matters
--name and --description so recipients aren't left guessing what they're looking at - both appear at the top of every viewer session: