PortableWeb
Spec v0.1 · Draft

Interactive documents,
built to last.

PortableWeb is an open file format for self-contained, sandboxed, interactive documents. Like PDF, but interactive. Like a webpage, but a file you own.

What it is

A single file that opens like a document and behaves like a small, sandboxed web app.

A PortableWeb bundle (.pweb) packages HTML, CSS, JavaScript, and media into one file. A compatible viewer opens it in its own window, sandboxed from the host system, with no network access by default.

The format is designed so that the document is the unit. You can save it, copy it, email it, archive it, or send it across an office network with AirDrop. It works offline. It doesn't expire when a CDN goes dark. It doesn't need a server. It doesn't need a subscription.

Each spec version freezes a stable subset of web platform features, so a bundle built against v1.0 will render correctly in any v1.0-compatible viewer, forever — the same archival promise PDF/A makes for static documents, applied to interactive ones.

Anatomy of a bundle

Inside, it is plain. Three required files in a ZIP.

You can rename any .pweb file to .zip and unpack it with any tool. There is no proprietary container, no hidden state, no DRM. The format's strength is in its simplicity and its discipline, not in its complexity.

Path Role
mimetype · required First file in the archive, uncompressed. Identifies the format as application/vnd.portableweb+zip.
manifest.json · required Metadata: id, version, title, entry point, declared permissions, rights.
index.html · required Entry HTML the viewer loads first. May reference any other file in the bundle.
assets/ Recommended: images, icons, fonts, bundled media.
scripts/, styles/ Recommended: JavaScript modules and stylesheets.

Design principles

Self-contained, sandboxed, archival, owned.

Self-contained

A bundle carries everything it needs. No CDN dependency. No broken script tags in five years. No surprise network calls. Bundles are the unit of preservation.

Sandboxed

No filesystem access, no surveillance APIs, network off by default. Storage scoped per bundle. Permissions declared upfront in the manifest, enforced by the viewer.

Archival

Each spec version freezes a stable subset of web features. A v1.0 bundle renders identically in any v1.0 viewer, indefinitely. New features ship in v2.0; old bundles don't break.

Owned

A bundle is a file. No host, no account, no subscription, no platform. You can copy it, archive it, mail it, or seal it in a time capsule. It belongs to whoever holds it.

What it's for

Anywhere interactivity should outlive its hosting.

01

Interactive presentations

Slide decks with real interactivity, sent as a file. The natural successor to PDF for anything more than text.

02

AI-generated artifacts

A real home for the millions of interactive things that AI tools create. Stop deploying ephemera; start saving artifacts.

03

Educational explainers

Interactive lessons that work offline, without a server, on any device — and still work next year, and the year after.

04

Personal tools

Journals, calculators, planners, trackers. Tools you keep as files instead of renting as subscriptions.

05

Scientific artifacts

Reproducible figures, interactive supplements, simulations that stay reproducible across decades.

06

Archival of interactive work

For libraries, museums, journals, and individuals who need interactive content to survive past the lifespan of any host.

How it differs

Sitting between the static document and the live web app.

Format Interactive? Offline? Self-contained? Archival promise?
PDF

Limited

Yes

Yes

PDF/A

Webpage / URL

Yes

No

No

Link rot

PWA

Yes

After install

No

No

EPUB

Partial

Yes

Yes

For books

.pweb

Yes, fully

Always

Yes

By design

Roadmap

A long game. The spec lasts; we don't rush.

v0.1

Container & manifest (here today)

The ZIP layout, the mimetype convention, the manifest schema, the first example bundle. Specs and the hello.pweb bundle are public on GitHub.

v0.2

Sandbox and runtime profile

Formal sandbox spec. The frozen subset of HTML/CSS/JS allowed in v1.0 bundles. First reference viewer (cross-platform).

v0.3 – 0.9

Iteration with real users

CLI validator, mobile viewers, AI tool integrations. Specs evolve based on what people actually build.

v1.0

Stable spec

From v1.0 forward, bundles render correctly in any v1.0-compatible viewer, forever. New features ship in v1.x and v2.x without breaking old bundles.

Get involved

The spec is open. The work is just beginning.

PortableWeb is a small project with large ambitions. If any of this matters to you — as an engineer, an educator, an archivist, a designer, a researcher, a writer — there's a place for you in it.