This document outlines the migration from the original ChartSpec UI to the new Workbench interface. The migration is designed to be smooth and backward-compatible.
- Old UI:
index.html(preserved for backward compatibility) - New UI:
workbench.html(new full-screen interface) - Transition Period: Users can choose which interface to use
- Final State: Workbench becomes default, old UI available as fallback
The Workbench automatically migrates data from localStorage to IndexedDB on first load.
What Gets Migrated:
- Dataset metadata and rows
- LLM provider settings
- API keys
- Mode preferences (local/smart)
Migration Code:
// Happens automatically in workbench/main.js
async function migrateDatasets() {
const migrated = await idb.migrateFromLocalStorage();
if (migrated > 0) {
console.log(`✅ Migrated ${migrated} datasets to IndexedDB`);
}
}User Impact:
- ✅ Zero manual action required
- ✅ Existing datasets preserved
- ✅ Settings carried over
- ✅ Can still use old UI
These are fresh starts in Workbench:
- Chat history (fresh start)
- Tile configurations (new feature)
- Layout preferences (new feature)
- Drawer state (new feature)
| Feature | Old UI | Workbench | Notes |
|---|---|---|---|
| Dataset management | ✅ | ✅ | Same functionality |
| Smart Mode | ✅ | ✅ | Enhanced with tile output |
| LLM Mode | ✅ | ✅ | Enhanced with tile output |
| Manual/Local Mode | ✅ | ✅ | Same functionality |
| Chart rendering | ✅ | ✅ | Same renderers |
| Data transformations | ✅ | ✅ | Same engine |
| Feature | Description |
|---|---|
| Tile-based workspace | Multiple charts/views simultaneously |
| Draggable grid | Rearrange tiles |
| Resizable tiles | Customize tile sizes |
| Chat drawer | Collapsible chat interface |
| Layout presets | Quick layout switching |
| Presentation mode | Hide UI chrome |
| LED sampling control | Visual data sampling |
| Natural language settings | Inline settings UI |
| Persistent layouts | Save workspace state |
Recommended: Start with Workbench
- Go to
/workbench.html - Follow welcome tile instructions
- Explore keyboard shortcuts (Ctrl+B, Ctrl+P)
Option A: Try Workbench
- Go to
/workbench.html - Your datasets and settings auto-migrate
- Explore new features
- Fallback to
/index.htmlif needed
Option B: Stay on Old UI
- Continue using
/index.html - All features still work
- Upgrade when ready
Actions:
- Deploy workbench.html as separate URL
- Keep index.html as default
- Add link to workbench from old UI
- Monitor usage and bugs
Old UI Banner:
<div class="migration-notice">
🚀 Try the new <a href="./workbench.html">Workbench UI</a>
with multi-chart workspace and improved layout!
</div>Actions:
- Fix bugs reported by early adopters
- Polish UX based on feedback
- Add missing features if critical
- Update documentation
Workbench Banner:
<div class="beta-notice">
⚠️ Beta - <a href="./index.html">Switch to classic UI</a>
if you encounter issues.
</div>Actions:
- Swap: workbench.html → index.html
- Rename old: index.html → classic.html
- Update all links and documentation
- Add redirect from root to workbench
index.html (new):
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0; url=workbench.html">
<title>Redirecting to ChartSpec Workbench...</title>
</head>
<body>
<p>Redirecting to <a href="workbench.html">ChartSpec Workbench</a>...</p>
</body>
</html>Actions:
- Add deprecation notice to classic UI
- Set sunset date (e.g., 3 months)
- Ensure all features migrated
- Final user communications
Classic UI Banner:
<div class="deprecation-notice">
⚠️ This UI will be sunset on [DATE].
Please migrate to the <a href="./index.html">new Workbench</a>.
</div>Actions:
- Remove classic.html
- Archive old code in git
- Celebrate! 🎉
Before:
ChartSpec/
├── index.html
├── styles.css
├── chartspec/
│ ├── main.js
│ ├── dataEngine.js
│ └── ...
└── datasets/
After:
ChartSpec/
├── index.html (redirect or new workbench)
├── workbench.html
├── classic.html (old UI, optional)
├── styles.css (old UI styles)
├── styles/
│ ├── tokens.css
│ ├── app.css
│ └── components.css
├── components/
│ ├── app-shell.js
│ └── ...
├── state/
│ ├── store.js
│ ├── persistence.js
│ └── idb.js
├── workbench/
│ └── main.js
├── chartspec/ (unchanged)
└── datasets/ (unchanged)
Development:
- Old:
http://localhost:8000/index.html - New:
http://localhost:8000/workbench.html
Production (GitHub Pages):
- Old:
https://evcatalyst.github.io/ChartSpec/ - New:
https://evcatalyst.github.io/ChartSpec/workbench.html - Classic:
https://evcatalyst.github.io/ChartSpec/classic.html
Subject: Introducing ChartSpec Workbench 🚀
We're excited to announce ChartSpec Workbench - a completely redesigned
visualization workspace!
What's New:
✅ Full-screen grid workspace
✅ Multiple charts simultaneously
✅ Drag & resize tiles
✅ Collapsible chat drawer
✅ Presentation mode
✅ Your data migrates automatically
Try it now: [Link to workbench.html]
The classic UI remains available as a fallback.
Questions? See our migration guide: [Link]
// Show once per user
if (!localStorage.getItem('workbench_announcement_shown')) {
showNotification({
title: 'New Workbench UI Available!',
message: 'Try our redesigned interface with multi-chart workspace.',
actions: [
{ label: 'Try Now', url: './workbench.html' },
{ label: 'Later', dismiss: true }
]
});
localStorage.setItem('workbench_announcement_shown', 'true');
}If critical issues arise:
Step 1: Swap URLs back
mv index.html workbench.html.new
mv classic.html index.htmlStep 2: Communicate
- Post notice of temporary rollback
- Explain issue and timeline
- Reassure users data is safe
Step 3: Fix and redeploy
- Fix critical issues
- Test thoroughly
- Redeploy with more caution
If IndexedDB migration causes issues:
// Restore from localStorage backup
async function rollbackMigration() {
// Clear IndexedDB
await idb.clearAllData();
// Datasets still in localStorage
// Old UI can use them immediately
alert('Data restored. Please use classic UI.');
window.location = './classic.html';
}- Test migration with real user data
- Verify all features work in Workbench
- Test on all supported browsers
- Test on mobile (if applicable)
- Performance benchmarks meet targets
- Accessibility audit passes
- Documentation complete
- User guide/tutorial ready
- Monitor error logs
- Track user feedback
- Measure adoption rate
- Compare performance metrics
- Identify blocker issues
- Test edge cases reported
- No critical bugs remaining
- Performance acceptable
- Majority of users opted in
- Fallback plan tested
- Communication materials ready
- % users trying Workbench
- % users staying on Workbench
- Time to first tile creation
- Number of tiles created per session
- Page load time
- Time to first interaction
- Frame rate during drag/resize
- IndexedDB query performance
- Bug report rate
- User satisfaction score
- Feature completion rate
- Accessibility compliance
No. Data automatically migrates from localStorage to IndexedDB. The old UI remains functional as backup.
Yes, during the transition period. Data is accessible from both.
You can use the classic UI until it's sunset (3+ months notice).
Some are new (Ctrl+B, Ctrl+P), but existing functionality remains accessible.
Open a GitHub issue with "[Workbench]" prefix, or use the feedback link.
Yes, use the export feature (planned) to save workspace as JSON.
Workbench is optimized for desktop. Mobile support is planned for future release.
| Week | Phase | Activities |
|---|---|---|
| 1-2 | Soft Launch | Deploy workbench.html, add link from old UI |
| 3-4 | Beta | Fix bugs, polish UX, update docs |
| 5 | Make Default | Swap URLs, add redirect, notify users |
| 6-8 | Stabilization | Monitor, fix issues, improve features |
| 9-16 | Deprecation Notice | Announce classic UI sunset |
| 17+ | Sunset | Remove classic UI, archive code |
- Documentation:
/docs/ - Video tutorial: (planned)
- GitHub Discussions: Community help
- GitHub Issues: Bug reports
- Architecture docs:
/docs/ui-architecture.md - Storage docs:
/docs/storage-schema.md - Code comments: Inline documentation
- Examples:
/examples/(planned)
The migration to ChartSpec Workbench is designed to be smooth and low-risk:
- ✅ Automatic data migration
- ✅ Backward compatibility
- ✅ Gradual rollout
- ✅ Fallback options
- ✅ Clear communication
Users benefit from a modern, powerful interface while maintaining access to their data and the classic UI during transition.