Plans are files on your computer
Last updated 6 August 2026
This is the part of ctrlPlanner that surprises people, so it is worth five minutes before you build anything you care about. ctrlPlanner does not keep your plans. A plan is a file on your drive, in the same sense a spreadsheet is, and the app is the thing that opens it.
The plans page is a list of files you opened
The page titled Recently opened is a recents index, not a store. It records what you have worked on so you can get back to it, the way an editor's recent-files menu does. An empty list is the architecture working, not data that went missing.
Columns are part number, revision, customer, description and status. Every heading sorts, and clicking the one already sorted flips the direction. The search box matches part number, plan id, customer and description.
The ON DISK badge
Rows carrying an ON DISK badge are entries whose content is not in the browser. Opening one asks you for the file, because that is where the content is. The badge is not an error and nothing was lost.
Two things a recents-only row cannot do, for the same reason: it cannot be duplicated, and a workspace backup exports it as a list entry rather than as a plan. Open it first if you need either.
Saving
- Ctrl+S, or Cmd+S on a Mac, saves the open plan. The toolbar Save button does the same.
- In Chromium browsers the app remembers the file you opened and writes straight back to it, so saving twice does not leave you with two copies.
- Safari and Firefox do not offer that, so each save downloads a fresh copy. Your Downloads folder collects revisions and you choose which to keep.
- Lock and Save writes the file immediately, so what is on disk matches the locked state rather than trailing it.
If the file changed since you opened it
Each save stamps the time and a short id for the browser that wrote it. If the file on disk moved on since you opened it, saving raises a conflict instead of quietly winning: you can overwrite, cancel, or reload from disk. The id is what lets you tell your own saves from somebody else's on a shared machine.
Duplicate, remove, restore
- Duplicate creates a new draft, steps the revision letter, and clears the inspection records so they are not inherited by a part they were not measured on.
- Remove from list drops the recents entry. It does not touch the file. Deleting the file is something you do in your own file manager, where it goes to your own trash and can be recovered the usual way.
- Plans trashed before the file format arrived can still be restored from the trash view.
Only one plan lives in the browser
Local storage holds your shop settings, the recents index, and the content of exactly one plan: the one you opened most recently. Keeping that one is what lets a reload in the middle of an edit come back with your work intact. Opening a different plan displaces it, and nothing else does, so walking back to the plans list does not strip the plan you were editing.
The practical consequence is the one above: every other row is an ON DISK entry, and opening it asks for the file.
If saving is refused
A browser can refuse to write local storage, usually because the quota is full or because storage is blocked for the site. When that happens a red banner appears at the top of the app and stays there. It is the one message in ctrlPlanner that never dismisses itself, because it means your work is not being kept and a message that disappears after two seconds is how somebody loses a plan without ever finding out why.
What is inside a .cplan.zip
An ordinary ZIP archive. Rename it and open it with anything.
manifest.json file format and schema version, generated timestamp
plan.json the plan itself, pretty-printed: part and revision,
characteristics, operations, annotations, materials,
special processes, inspection records
drawings/ one ordinary PNG per drawing page
README.txt a plain-text explanation of all of the above
Everything needed to reopen the plan, redraw its prints, rebuild its control plan and regenerate its exports is inside the file. Nothing is fetched when you open it. A test in the build scans the saved plan for anything that points somewhere else, so a future change cannot quietly make your files depend on ours.