office

PPTX Version Control

Manage PowerPoint (PPTX) versions locally with semantic and visual diffing, branches, 3-way merge, and conflict resolution in the browser.

Local processing
About your filesFiles and content selected in this tool are processed in your browser and are not uploaded to a Browser Kitty backend.
Operation demo See the basic workflow in a short video.

About this tool

PPTX Version Control keeps PowerPoint revisions as a local project instead of requiring a growing set of manually duplicated files. Create a project from the first PPTX, then add each edited PPTX as a new version. Saved versions can be opened or exported without moving HEAD, restored as a new version, or used as the starting point for a branch.

Rather than exposing raw OOXML noise, the tool reviews text, numbers, images, objects, layout, formatting, slide order, and speaker notes through Semantic Diff. Saved versions, branch heads, and the current unsaved edit can also be compared visually with side-by-side, overlay, split, and blink views. Divergent work can be combined through a common-BASE 3-way merge, while changes that cannot be merged safely remain in the Conflict Resolver. PPTX parsing, history storage, comparison, branch/merge processing, and project import/export run on the device.

Good for

  • Keep multiple generations of a PowerPoint deck and review what changed in each version
  • Create an alternative branch from an older PPTX without changing the current line of work
  • Merge divergent branches with 3-way merge and resolve only the conflicting changes in the UI
  • Back up browser-local history as .pptxvc or export normalized files for ordinary Git review

What it can do

Key capabilities available in this tool.

How to use

  1. Open the tool and drop or choose the first PPTX file.
  2. Enter a project name and version note, then save the initial version.
  3. After editing the deck in PowerPoint, drop or choose the revised PPTX in the edited-PPTX area and review the detected changes.
  4. Check Semantic Diff and, when useful, Visual Compare, then save the file as the next version.
  5. For an alternative line of work, create a branch from a saved version, switch branches, and keep adding versions there.
  6. When combining branches, open Merge and review the BASE/current/incoming result. Resolve conflicts by choosing the current or incoming side, or manually editing supported text conflicts.
  7. Export important projects as .pptxvc backups. Use the separate Git-friendly ZIP when you want normalized files for ordinary Git review.

Supported

  • Input: `.pptx` is the stable release format. Legacy `.ppt`, `.pptm`, `.potx`, and `.ppsx` are not release targets.
  • History: Project, Commit, Branch, ref, HEAD, and content-addressed objects are stored in IndexedDB, with objects managed by SHA-256.
  • Comparison: Semantic Diff is paired with side-by-side, overlay, split, and blink review across saved versions, branch heads, and an unsaved PPTX.
  • Branches and merge: branches can start from saved versions, with common-BASE 3-way merge and an in-app Conflict Resolver.
  • Backup: export/import the complete project as one `.pptxvc` file containing refs, commits, and required objects.
  • Git-friendly export: save stable-slide-ID JSON, normalized relationships, and SHA-256-named media in a ZIP. It does not create, clone, push, or sync a `.git` repository.
  • Runtime networking: the standalone HTML uses `connect-src 'none'`; selected PPTX files and history are not uploaded to an app server.

Limitations and notes

  • The stable input format is `.pptx`; `.pptm`, `.potx`, and `.ppsx` are not current release targets.
  • SmartArt, OLE objects, and unsupported OOXML extensions are preserved through the original package where possible, but may not receive detailed Semantic Diff.
  • Package-level or relationship-heavy conflicts cannot always be merged safely property by property; those cases remain conflicts instead of being forced into the PPTX.
  • Git-friendly ZIP export is for ordinary Git diff/review and is not a complete project backup. Use `.pptxvc` when you need the full history and original PPTX package data.
  • History is stored in IndexedDB and can be lost when browser or site data is cleared, so important projects should be exported as `.pptxvc` backups.
  • Large PPTX files, many embedded media files, or long histories can use substantial browser memory and local storage.
  • Normal Deflate-compressed PPTX parsing requires `DecompressionStream('deflate-raw')`; current Chrome and Edge are the primary targets.

Frequently asked questions

Are my PPTX files or version history sent to a server?

No. The GitHub Pages version downloads the app HTML initially, but PPTX parsing, history storage, semantic/visual comparison, branch/merge processing, and project import/export run on the device without uploading selected presentations to an app server.

How is this different from PPTX Diff?

PPTX Diff focuses on comparing two PPTX files for a review. PPTX Version Control keeps ongoing version history and adds restore, branching, 3-way merge, conflict resolution, and `.pptxvc` project backup.

Should I rely on browser storage as the only backup?

Not for important projects. History lives in IndexedDB and can be removed with browser/site data. Export a `.pptxvc` file and keep it separately.

Does Git-friendly export create a Git repository?

No. It creates normalized files that are easier to diff in an ordinary Git repository, but it does not create `.git`, clone, push, or sync. Use `.pptxvc` for a complete PPTX Version Control project backup.

Offline version and source code

Save the standalone HTML to use PPTX parsing, version history, Semantic Diff, visual comparison, branches/merge, conflict resolution, `.pptxvc`, and Git-friendly export without runtime external connections. History is stored in this browser's IndexedDB. Normal Deflate-compressed PPTX requires `DecompressionStream('deflate-raw')`.

View source on GitHub