Template versions that never rewrite a signed contract

Every save bumps a version number, and every contract carries the template id and version it was generated from — so what a customer signed stays reconstructable forever.

What it is

Contract_templates rows hold `version`; saving an existing template updates it in place with version + 1. Each contracts row stores template_id and template_version alongside the frozen rendered_body. The settings panel shows the current version (v3) beside the save button, and the confirmation copy states plainly that 'Previously-signed contracts keep their frozen copy and aren't affected.'

Also called: contract version history · contract audit trail · template versions

See it
Template versions that never rewrite a signed contract
Prepared for
Ivy Brubaker
1140 Ridge Line Rd · Fair Play
Shell package$28,663
Concrete & site$8,321
Doors & windows$5,548
Trim & finish$3,698
Total
$46,230
Signature
The save row: 'Default for new contracts' checkbox, a monospace 'v3' chip, and a green Saved dot. IntakeSettingsTab.tsx. Sample data — no customer information appears here.
How it works
  1. 1saveTemplate() reads the existing row, writes version: (existing.version || 1) + 1.
  2. 2New contracts stamp template_id + template_version at generation.
  3. 3The frozen rendered_body on the contract is the legally operative text; the template row is provenance.
  4. 4apply-template and sync-estimate both restamp template_id/version when they re-render an unsigned contract.
Why we built it

The freeze rule is stated at the top of the contracts library: the rendered body is frozen 'so future edits to the template don't rewrite this customer's contract.' Version numbering exists so a builder can answer, months later, exactly which wording a given customer agreed to.

The problem
  • Retroactive edits to legal text a customer already accepted
  • No provenance for which wording was in force on a given date
Sound familiar?
What you get
Signed contracts are immutable evidence
Every contract names the template and version it came from
Editing wording is safe — it only affects future contracts

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →