Local · No uploads

ASCII table

Mobile·FullDesktop·Full

Reference

Browse ASCII codes in decimal, hex, octal, and binary.

Mobile·FullDesktop·Full

Runs entirely in your browser

Nothing you paste is uploaded. Monaco and Prettier load on demand from this origin.

Search

128 rows
DecHexOctBinaryChar
0000000000000NUL
1010010000001^A
2020020000010^B
3030030000011^C
4040040000100^D
5050050000101^E
6060060000110^F
7070070000111^G
8080100001000BS
9090110001001TAB
100A0120001010LF
110B0130001011^K
120C0140001100^L
130D0150001101CR
140E0160001110^N
150F0170001111^O
16100200010000^P
17110210010001^Q
18120220010010^R
19130230010011^S
20140240010100^T
21150250010101^U
22160260010110^V
23170270010111^W
24180300011000^X
25190310011001^Y
261A0320011010^Z
271B0330011011ESC
281C0340011100^\
291D0350011101^]
301E0360011110^^
311F0370011111^_
32200400100000SPACE
33210410100001!
34220420100010"
35230430100011#
36240440100100$
37250450100101%
38260460100110&
39270470100111'
40280500101000(
41290510101001)
422A0520101010*
432B0530101011+
442C0540101100,
452D0550101101-
462E0560101110.
472F0570101111/
483006001100000
493106101100011
503206201100102
513306301100113
523406401101004
533506501101015
543606601101106
553706701101117
563807001110008
573907101110019
583A0720111010:
593B0730111011;
603C0740111100<
613D0750111101=
623E0760111110>
633F0770111111?
64401001000000@
65411011000001A
66421021000010B
67431031000011C
68441041000100D
69451051000101E
70461061000110F
71471071000111G
72481101001000H
73491111001001I
744A1121001010J
754B1131001011K
764C1141001100L
774D1151001101M
784E1161001110N
794F1171001111O
80501201010000P
81511211010001Q
82521221010010R
83531231010011S
84541241010100T
85551251010101U
86561261010110V
87571271010111W
88581301011000X
89591311011001Y
905A1321011010Z
915B1331011011[
925C1341011100\
935D1351011101]
945E1361011110^
955F1371011111_
96601401100000`
97611411100001a
98621421100010b
99631431100011c
100641441100100d
101651451100101e
102661461100110f
103671471100111g
104681501101000h
105691511101001i
1066A1521101010j
1076B1531101011k
1086C1541101100l
1096D1551101101m
1106E1561101110n
1116F1571101111o
112701601110000p
113711611110001q
114721621110010r
115731631110011s
116741641110100t
117751651110101u
118761661110110v
119771671110111w
120781701111000x
121791711111001y
1227A1721111010z
1237B1731111011{
1247C1741111100|
1257D1751111101}
1267E1761111110~
1277F1771111111DEL

Technical transparency

SafePaper is built so your PDFs are processed in your browser, not on SafePaper servers. The sections below explain this in plain language.

Hosting & delivery

  • The site is a Next.js (App Router) application. Production is static HTML, JavaScript bundles, CSS, and assets—served like any modern front-end (e.g. on Vercel).
  • There is no Route Handler, no pages/api, and no server action that accepts your PDF for processing. We do not operate an upload endpoint for document bodies.

Runtime (your machine)

  • UI is React 19 + TypeScript, styled with Tailwind CSS, with motion via Framer Motion where noted in the interface.
  • Dropped files are read with the browser File API into ArrayBuffer / Uint8Array and kept in client-side React state (a shared provider across tool pages in one visit). The visible queue is also mirrored to sessionStorage when it fits browser limits so a refresh in the same tab can restore filenames and bytes without contacting a server.
  • Heavy merge, split, organize, compress, crop (CropBox and multi-region PDF exports), and redact PDF output runs in a dedicated Web Worker (pdf-operations.worker.ts, compress-pdf.worker.ts, bookmarks-outline.worker.ts, extract-embedded-images.worker.ts, crop-pdf.worker.ts) so the main UI thread stays responsive. Buffers are passed with postMessage + Transferable where supported to avoid extra copies.
  • Organize's optional duplicate-page scan runs in pdf-duplicate-pages.worker.ts with pdf.js + OffscreenCanvas—still only on your device.

Security Vault

  • Security Vault (/security) runs JWT decode, hashing, AES file encrypt, key generation, TOTP, bcrypt, and Shamir sharing with Web Crypto and jose in your tab only.
  • Optional site analytics and the consent banner are disabled on Security Vault routes even if you opted in elsewhere—so secrets pasted here are not on pages that load Vercel Analytics.

Share Desk (peer-to-peer)

  • Share Desk (/share) transfers files with WebRTC data channels directly between two browsers. SafePaper does not store or process file bytes on our infrastructure.
  • A separate WebSocket signaling service (configured via NEXT_PUBLIC_SIGNALING_URL) relays SDP offers/answers and ICE candidates so peers can find each other. That relay carries connection metadata only—not your file contents.
  • Large receives stream into OPFS via opfs-writer.worker.ts so the main UI thread stays responsive. Senders read files in 64KB slices with data-channel backpressure.
  • Peers may use Google's public STUN (stun:stun.l.google.com:19302) to discover network paths. Optional TURN env vars (NEXT_PUBLIC_TURN_URL, etc.) can relay traffic on restrictive networks—that is separate third-party network traffic, not a SafePaper file upload.

PDF stack

  • Structural PDF work (merge order, page extraction, rotation, removal) runs in the worker path described above.
  • Optional password protection applies AES-256 encryption on the main thread after the worker returns bytes, using the browser's Web Crypto API. Your open password is not sent to any server.
  • Previews and raster export (PNG images and plain-text extraction) use a canvas-based PDF renderer in a separate worker. The preview worker script is served as static /pdf.worker.mjs from this site. CMaps, standard font metrics, ICC profiles, and WASM helpers for pdf.js live under /pdfjs/ (copied from pdfjs-dist on npm install) so workers can fetch glyph data from the same origin.
  • That preview worker is separate from the merge/split/organize worker; both use Web Workers and stay entirely on your device.

Network & storage

  • Over the wire you should see requests for the app shell, JS chunks, CSS, fonts (next/font self-hosted subsets), icons, the PDF preview worker script, and (after npm install) same-origin OCR assets under /tesseract/—not outbound uploads of your document to SafePaper for processing.
  • Downloads use normal browser mechanisms (Blob / URL.createObjectURL) initiated by you.
  • We do not persist your PDFs to SafePaper storage; lifetime is in-memory for that tab session (and the shared client state resets when you leave the tool area for the home page).

Tool-by-tool: where work runs

Tool / areaWhere work runsExtra network
Merge, split, organize, protectBrowser + workersApp shell only
Compress, redact, cleanBrowser + workersApp shell only
Export (PNG / JPEG / text)Browser (pdf.js canvas)App shell only
Forms, watermark, page #, insertBrowser (pdf-lib)App shell only
OCRBrowser (pdf.js + Tesseract)Same-origin WASM/worker/lang after postinstall (no third-party OCR CDN)
Duplicate scan (Organize)Browser worker (pdf.js)App shell only
Share Desk (P2P)Browser WebRTC + OPFS workerSignaling WebSocket + STUN (optional TURN) — no file bytes to SafePaper
Media StudioBrowser + FFmpeg WASM (lazy) + image workersSame-origin FFmpeg under /vendor/ffmpeg/
Data ZoneWeb Workers + DuckDB-wasm + OPFS queuesDuckDB bundles may fetch from jsDelivr on first SQL use — not your table rows
Security VaultBrowser Web Crypto + jose (no upload)Analytics disabled on these routes
AI Desk (RAG)Embedding + chat workers; IndexedDB indexOne-time model weight downloads (Transformers.js / WebLLM CDN)
Record DeskCapture + OPFS mux; Whisper workerWhisper ONNX/WASM may fetch from jsDelivr on first caption run
Archive Deskzip.js + fflate in archive workerApp shell only (central directory parsed locally)
Data Roomcrypto-packager worker + offline HTML exportSame-origin /dataroom-template.html at build time

“App shell only” means HTML/JS/CSS/fonts and static assets from your host—no SafePaper API that accepts PDF bodies. A production service worker precaches the home page, PDF preview worker, and vendored OCR files for calmer offline reloads after the first visit.

Offline & limits

  • After the app has loaded once, cached bundles mean the core tools can keep working offline for files already held in memory—subject to browser cache eviction.
  • Practical limits are those of the device: available RAM, CPU, and browser tab limits. Malicious PDFs are still a local execution concern the same way opening a file in any desktop viewer is; we do not add a separate server-side malware scan because files never leave your machine for our processing.

Design rule

Zero server uploads for PDF work. New tools are expected to follow the same model: browser-first, worker offload where needed, and no silent exfiltration of document bytes to SafePaper infrastructure.

Privacy status

See what this page loaded. Your files stay on your device.

Live privacy status

Your PDF is not sent in requests to SafePaper. This section shows what your browser loaded on this page so you can verify that yourself.

Your snippets sent to SafePaper0bytes · by design
Tab requests shown
0
Bundles, CSS, fonts…
0
fetch / XHR rows
0
Downloaded (assets)

How to read this: PDF work happens on your device. The rows below are usually app files like scripts, styles, fonts, and worker files. Seeing requests here is normal; your actual PDF content should not be uploaded to SafePaper.

Network rowsTap for full list

No network rows yet. Reload once and they should appear after the page finishes loading.

Analytics preferences

You have not chosen yet — use the bar at the bottom of the screen, or choose below.

Optional analytics uses Vercel Web Analytics and Speed Insights for aggregated page and performance data only. We do not attach your PDFs or their contents to these tools.

Read the Privacy Policy section