Website for SnaPDF: save any JavaScript-rendered page as a PDF or plain text file. Paste a ChatGPT or Claude share link, pick your settings, and download in seconds.
Built with Nuxt 4, deployed on Vercel.
- Converts any JS-rendered page (ChatGPT, Claude, etc.) to PDF or plain text
- Handles virtual scroll and lazy-loaded content, so every message is captured
- PDF options: page size (Letter/A4), margin, landscape orientation
- Selectively hide user prompts or assistant responses
- CSS selector override for custom content targeting
- In-session history with inline preview and re-download
- Light/dark/system color mode
- Auto-detects Letter vs A4 based on browser locale
GET /api/convert: streams progress over SSE, then delivers the file as a base64 payload.
| Parameter | Type | Default | Description |
|---|---|---|---|
url |
string | - | Page URL to convert (required) |
format |
pdf | txt |
pdf |
Output format |
pageSize |
letter | a4 |
letter |
PDF page size |
margin |
number | 36 |
PDF margin in points |
landscape |
boolean | false |
Landscape orientation |
hideUserInput |
boolean | false |
Omit user messages |
hideAssistantOutput |
boolean | false |
Omit assistant messages |
selector |
string | - | CSS selector for content nodes |
SSE event types: progress · complete · error
npm install
npm run dev # nuxt devTo test with Vercel Functions locally:
npm run build
vercel dev| Command | Description |
|---|---|
npm run dev |
Start dev server |
npm run build |
Production build |
npm run lint |
Lint with ESLint |
npm run fix |
Auto-fix lint issues |
npm test |
Run tests (Vitest) |
npm run typecheck |
Type-check with vue-tsc |
npm run release:patch |
Bump patch version and push tags |
Deploys automatically to Vercel on push to main. Functions are configured with a 300s max duration to accommodate long-running Puppeteer jobs.
On Vercel, @sparticuz/chromium provides a serverless-compatible Chromium binary. Set PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true in your Vercel environment variables.
SnaPDF is also available as a standalone CLI tool:
npm install -g snapdf
snapdf <url> [options]See npmjs.com/package/snapdf for full CLI docs.
The code is released under the MIT License, see LICENSE.
The app's name, logo, and icons, and the original artwork in this repository, are not covered by that license and remain all rights reserved. If you fork it, please give your version its own name and look.