Better Demo Implementation TODO #
Existing Issues #
Phase 1: Foundation (First 4 Deliverables) #
1. Convert to Declarative Mode #
Approach: Use DOM utilities (lib/src/demo/utils.ts) to programmatically build HTML markup that uses declarative VoltX attributes (data-volt-state, data-volt-computed, data-volt-*), then mount with charge() instead of programmatic mount() + signals.
2. Implement Multi-Page Routing #
3. Add Tooltip CSS Feature #
4. Create Home Page #
-
- Bundle size < 15KB
- No virtual DOM
- Signal-based reactivity
- Zero dependencies
- Declarative-first approach
PHASE 1 COMPLETE ✓ #
Phase 2: Core Feature Pages #
5. Page: Getting Started #
6. Page: Reactivity #
7. Page: HTTP #
8. Page: State #
-
- $store - access global state
- $scope - current scope reference
- $pulse - microtask scheduling
- $uid - deterministic IDs
- $probe - element refs
- $pins - custom helpers
- $arc - custom event dispatch
Phase 3: Plugin & Advanced Pages #
9. Page: Persistence #
10. Page: Animations #
11. Page: Forms #
Phase 4: Reference & Patterns #
12. Page: CSS #
13. Page: Patterns #
Phase 5: Polish & Documentation #
14. Framework Capabilities Showcase #
Note: Showcase framework capabilities as features are completed from ROADMAP.md
15. View-Source Friendly Code #
16. Copy-Paste Ready Patterns #
File Structure #
lib/
index.html # Main entry with routing and global state
src/
main.ts # Minimal bootstrap (charge + navigate init)
demo/
index.ts # Removed or minimal utilities only
sections/ # Keep or convert to HTML partials
utils.ts # DOM utilities (may still be useful)
pages/ # New directory for page templates
home.html
getting-started.html
reactivity.html
http.html
state.html
persistence.html
animations.html
forms.html
css.html
patterns.html
styles/
components.css # Add tooltip styles here
...
Example Ideas #
Many of these are ideas, not planned to be implemented
Components #
- Modal Dialog - Conditional rendering, focus trapping, backdrop, keyboard escape
- Tabs & Accordion - Conditional rendering, active state management, keyboard navigation
- Form Validation - Model binding, computed validation, conditional messages, error states
Client-Side (SPA/Static) #
-
✓ Counter - Basic signals, computed, event handling
-
✓ TodoMVC - List rendering, persistence, filtering, CRUD operations
-
Search with Autocomplete - Async effects, debouncing, API integration, keyboard navigation
-
Calculator - Event handling, computed expressions, button grid, operation state
-
Image Gallery - For loops, filtering, lightbox, category selection
-
Multi-Step Wizard - Form state across steps, validation per step, progress tracking, navigation
-
Note-Taking App - Rich CRUD, categories/tags, search/filter, localStorage persistence, markdown preview
-
Expense Tracker - Date handling, categories, computed totals/charts, filtering by date range, CSV export
-
Kanban Board - Drag-and-drop (via events), column management, task editing, state persistence
-
Timer/Stopwatch - Async effects, intervals, lap times, pause/resume, localStorage for history
-
Real-time Chat - SSE for messages, typing indicators, user presence, message history
-
Live Dashboard - SSE for metrics, charts updating in real-time, WebSocket fallback
-
Collaborative Editor - Operational transforms, SSE for changes, conflict resolution, cursor positions
-
Infinite Scroll Feed - Polling for new items, intersection observer, virtualized rendering
-
Admin Panel/CMS - CRUD operations, data tables, filters, pagination, bulk actions
Server-Side Rendered (SSR) #
These will live in an example repo.
- Authentication Flows - Login, signup, password reset, email verification (Go, Python, Rust, Node)
- File Upload with Progress - Chunked uploads, progress bars, validation (Go, Python, Rust, Node)
- Search with Server-Side Filtering - Debounced search, paginated results (Go, Python, Rust, Node)
Desktop Apps #
- Note Editor - Local file system, syntax highlighting, multi-tab, settings persistence
- System Monitor - CPU/memory graphs, process list, real-time updates
- Database Client - Table browser, query editor, result grid, export
- Media Player - File browser, playlists, controls, metadata display