You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add version history that persists across sessions, enabling undo/redo beyond the current session and branching exploration of design variations. Git-like for designers.
User Story
As a user, I want to browse previous versions of my design and restore them, so I can experiment without fear of losing work.
Scope
Git-like commit model: snapshot project state at meaningful points
Timeline view: browse history and restore previous states
Branch/merge: explore variations without losing main thread
Auto-commit: snapshots before major AI generation
Commit messages: optional annotations for changes
Tradeoffs / Optionality
Storage Model
Full Snapshots (simpler):
Pros: Easy to implement, fast restore
Cons: Storage grows quickly, inefficient
Delta Compression (efficient):
Pros: Minimal storage, like git
Cons: Complex implementation, slower restore
Decision: Start with full snapshots. Add delta compression when storage becomes an issue.
Linear vs Branching History
Linear (MVP):
Pros: Simple UI, easy to understand
Cons: No parallel experimentation
Branching (P2):
Pros: True git-like workflow, explore variations
Cons: Complex UI, merge conflicts
Decision: Linear for MVP. Branching is a P2 enhancement.
Technical Considerations
Storage: SQLite blob column for snapshots
Trigger Points:
Before AI generation (auto-commit)
User explicit save
After successful export
Performance:
Serialize canvas state (frames, positions, comments)
Compress with zlib or pako
Lazy-load history (only load metadata, not full snapshots)
UI: Timeline sidebar with commit messages, timestamps, thumbnails
TL;DR
Add version history that persists across sessions, enabling undo/redo beyond the current session and branching exploration of design variations. Git-like for designers.
User Story
Scope
Tradeoffs / Optionality
Storage Model
Full Snapshots (simpler):
Delta Compression (efficient):
Decision: Start with full snapshots. Add delta compression when storage becomes an issue.
Linear vs Branching History
Linear (MVP):
Branching (P2):
Decision: Linear for MVP. Branching is a P2 enhancement.
Technical Considerations
zliborpakoReferences
docs/prd-v2.mdP2+ (Version History)docs/roadmap/canvas-enhancements.md