Tier: Fix first · Order: 2 of 35 · Effort: S · Impact: high
What
Every save keeps the previous project.json so support (and later the customer) can roll back a bad save. Invisible until version history ships.
Why
Audit: single project.json, overwritten each save, not even an atomic write (site-builder.php:664). Users' #5 complaint is losing work with no revert-to-date. Prerequisite for version history.
Today
No copies anywhere.
Design notes
Write to .tmp then rename (atomic). Before rename, gzip the current file into .site-builder/history/.json.gz. Keep the last 30, one per day for 30 days, and every publish. A few hundred KB per site; no DB table.
Depends on
None
From the 2026-10-07 site-builder research (competitor review, user sentiment, code audit, Fable prioritization). Roadmap: https://claude.ai/artifact/QpQcSCk21z6SN7LPSm8tKE · id project-json-backups
**Tier:** Fix first · **Order:** 2 of 35 · **Effort:** S · **Impact:** high
## What
Every save keeps the previous project.json so support (and later the customer) can roll back a bad save. Invisible until version history ships.
## Why
Audit: single project.json, overwritten each save, not even an atomic write (site-builder.php:664). Users' #5 complaint is losing work with no revert-to-date. Prerequisite for version history.
## Today
No copies anywhere.
## Design notes
Write to .tmp then rename (atomic). Before rename, gzip the current file into .site-builder/history/<ts>.json.gz. Keep the last 30, one per day for 30 days, and every publish. A few hundred KB per site; no DB table.
## Depends on
None
---
From the 2026-10-07 site-builder research (competitor review, user sentiment, code audit, Fable prioritization). Roadmap: https://claude.ai/artifact/QpQcSCk21z6SN7LPSm8tKE · id `project-json-backups`
Shipped in WHP release 2026.10.3 (site-builder mainbdb4789, deployed fleet-wide 2026-10-07). Implemented, reviewed and verified as part of the editor-polish batch.
Shipped in WHP release **2026.10.3** (site-builder `main` bdb4789, deployed fleet-wide 2026-10-07). Implemented, reviewed and verified as part of the editor-polish batch.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Tier: Fix first · Order: 2 of 35 · Effort: S · Impact: high
What
Every save keeps the previous project.json so support (and later the customer) can roll back a bad save. Invisible until version history ships.
Why
Audit: single project.json, overwritten each save, not even an atomic write (site-builder.php:664). Users' #5 complaint is losing work with no revert-to-date. Prerequisite for version history.
Today
No copies anywhere.
Design notes
Write to .tmp then rename (atomic). Before rename, gzip the current file into .site-builder/history/.json.gz. Keep the last 30, one per day for 30 days, and every publish. A few hundred KB per site; no DB table.
Depends on
None
From the 2026-10-07 site-builder research (competitor review, user sentiment, code audit, Fable prioritization). Roadmap: https://claude.ai/artifact/QpQcSCk21z6SN7LPSm8tKE · id
project-json-backupsShipped in WHP release 2026.10.3 (site-builder
mainbdb4789, deployed fleet-wide 2026-10-07). Implemented, reviewed and verified as part of the editor-polish batch.