Bookshaper is in early access — subscriptions opening soon.

Docs / Windows Performance

Windows Performance Guide

If Bookshaper feels slow on Windows — long project-open times, lag when saving, the app hanging briefly before loading a recent project — the cause is almost always something environmental outside of Bookshaper itself. This guide walks through the common causes in the order you should check them.

Before you start

Fast diagnostic: is the same project fast on a different machine (a Mac, a co-writer's PC) but slow on your Windows machine? If yes, it's environmental. Read on.

If you only have one machine to compare against, the signature of an environmental slowdown is that every file operation is uniformly slow — opening a chapter that was fast yesterday takes 10× longer today, even though your project hasn't grown meaningfully. That pattern points at the OS layer, not Bookshaper.

1. Is your project inside OneDrive? (most common cause)

By default on Windows 10/11 with a Microsoft account, your Desktop, Documents, and Pictures folders are silently redirected into OneDrive. The folder names stay the same in File Explorer's sidebar, so you might not realize that saving a project to “Desktop” actually puts it in a cloud-synced folder.

When a file-heavy application like Bookshaper operates on a OneDrive-synced folder, every single read and write is intercepted by OneDrive's sync filter driver. On a 150-scene project this can make open and save operations 10× slower or worse.

How to check

In File Explorer, navigate to your project folder and look at the address bar breadcrumb:

  • Affected: breadcrumb shows This PC › Local Disk (C:) › Users › <you> › OneDrive › Desktop › ... or similar containing “OneDrive.”
  • Not affected: breadcrumb shows a path that does NOT contain “OneDrive” (e.g. C:\Bookshaper\projects\...).
  • Alternate check: right-click your project folder → Properties → look at the Location field. If it starts with C:\Users\<you>\OneDrive\, you're affected.

How to fix

Move the project out of OneDrive to a local-only path. Suggested destination: C:\Bookshaper\projects\ (root of C: drive, outside any synced or backed-up directory).

  1. Close Bookshaper completely (don't just close the project — exit the app).
  2. In File Explorer, create C:\Bookshaper\projects\ if it doesn't exist. Type the path into the address bar and press Enter; File Explorer will offer to create it.
  3. Drag your project folder (e.g. my-novel) from its OneDrive location to C:\Bookshaper\projects\. Or use cut + paste.
  4. Launch Bookshaper. The Recent Projects list will still point at the old location and show an “unavailable” error if you click it — that's expected.
  5. Use File → Open Project (or the Open Project button on the welcome screen) and navigate to C:\Bookshaper\projects\my-novel. Open it.
  6. The new location is added to Recent Projects. You can dismiss the broken old entry from Recent Projects on the welcome screen.

How to prevent it going forward

If you want to stop OneDrive from redirecting your Desktop/Documents/Pictures folders altogether:

  1. Open the OneDrive system-tray icon (cloud icon near the clock).
  2. Click the gear icon → Settings.
  3. Under Sync and backup Manage backup.
  4. Turn off backup for Desktop, Documents, and Pictures (or whichever you don't want synced).

Files already in those folders stay in place; new files you save there will no longer be uploaded.

2. Windows Defender exclusions (secondary — only if #1 didn't fix it)

If your project is already on a local-only path and loads are still inconsistent (fast sometimes, slow other times), Defender's real-time scanning may be the cause. On each read Defender re-scans the file, which can add anywhere from 50 ms to a few seconds depending on file size and system load.

How to add exclusions

  1. Open Settings Privacy & security Windows Security Virus & threat protection.
  2. Under Virus & threat protection settings, click Manage settings.
  3. Scroll down to Exclusions and click Add or remove exclusions.
  4. Click Add an exclusion Folder → pick your Bookshaper projects folder (e.g. C:\Bookshaper\projects).
  5. Repeat for your import source folder, if you have a dedicated one for Ulysses / Word / Markdown sources you re-import frequently.

Exclusions apply immediately — no restart needed.

Note: Defender exclusions do NOT help if your project is still inside OneDrive. OneDrive uses its own filesystem filter driver that's independent of Defender. Fix #1 first.

3. Third-party antivirus (Norton, Kaspersky, McAfee, Bitdefender, etc.)

If your PC was set up with a third-party antivirus instead of (or in addition to) Windows Defender, the same exclusion-list concept applies but the location differs per vendor. Common paths:

  • Norton: Settings → Antivirus → Scans and Risks → Exclusions/Low Risks
  • Kaspersky: Settings → Threats and Exclusions → Manage exclusions
  • McAfee: My Protection → Real-Time Scanning → Excluded Files
  • Bitdefender: Protection → Antivirus → Settings → Manage Exceptions

Add your Bookshaper projects folder as an exclusion. Vendor documentation is authoritative; the list above is just a starting point.

4. Windows Search indexer (rare)

Windows Search crawls indexed folders in the background and can cause brief disk-I/O spikes. If your project folder is in an indexed location (most of C:\Users\<you>\ is indexed by default), reads during active indexing can be slowed.

How to exclude a folder from indexing

  1. Open Settings Privacy & security Searching Windows.
  2. Under Exclude folders from enhanced search, click Add an excluded folder.
  3. Navigate to your Bookshaper projects folder and select it.

This typically saves only 10–20 ms per file read — minor compared to the OneDrive or Defender causes — but can matter on large projects with concurrent indexing.

OneDrive Business / SharePoint

The enterprise variant of OneDrive that's automatically set up for Microsoft 365 school/work accounts behaves identically to personal OneDrive from the filesystem's perspective. The folder path will typically look like:

C:\Users\<you>\OneDrive - <Organization Name>\Documents\...

Same fix as #1: move the project to a non-synced local path.

How to tell if your symptoms are environmental or a Bookshaper bug

Bookshaper emits detailed per-phase timings on every project open at <project-dir>\reference\load-timings.json. A few signatures distinguish environmental from in-app slowness:

Environmental (OneDrive, Defender, etc.)

  • loadNewFormat_diag.chapterStats.medianMs is roughly equal to maxMs — every chapter pays the same cost. Cloud-sync or AV tagging every file read leaves no single chapter as an outlier.
  • cleanupTempFiles is more than a few seconds. This step only walks a handful of known-write directories — on a healthy filesystem it takes well under a second.
  • readProjectJson is more than a few hundred milliseconds. A single small JSON file taking ~100 ms+ indicates the filesystem itself is unhealthy.
  • Symptom is intermittent — sometimes fast, sometimes slow. Cloud sync, AV, and the indexer all work in bursts.

Bookshaper bug

  • One specific phase is consistently slow while others are normal (e.g. loadCharacters always takes 20s).
  • chapterStats has a wide spread — a handful of chapters take 10× longer than the median.
  • Symptom is consistent — reliably slow every time on the same machine.

If you want to report it

Open Help → Send Feedback… and paste the contents of reference\load-timings.json (the whole file, or at least the most recent 5–10 rows). The in-app feedback form accepts up to 50,000 characters — comfortably covering a full timings dump. Screenshots of File Explorer showing your project path (especially the breadcrumb) and a task-manager screenshot during a slow load are also useful.

Summary

CauseCheckFixEffort
OneDrive Desktop redirectionProject path contains \OneDrive\Move project to C:\Bookshaper\projects\2 min
Defender real-time scanningInconsistent load times on a clean local pathAdd project folder to Defender exclusions1 min
Third-party antivirusInconsistent load times; Defender isn't the scannerVendor-specific exclusion path2–5 min
Windows Search indexerHeavy concurrent disk activity during loadExclude project folder from Windows Search1 min
OneDrive Business / SharePointPath contains OneDrive - <Organization>Same as OneDrive — move to local-only2 min

The first row is responsible for the vast majority of “Bookshaper is slow on Windows” reports confirmed to date. Start there.