diff --git a/docs/roadmap-v0.2.0.md b/docs/roadmap-v0.2.0.md new file mode 100644 index 0000000..a43974c --- /dev/null +++ b/docs/roadmap-v0.2.0.md @@ -0,0 +1,93 @@ +# VoxVera Roadmap & Technical Specification (v0.2.0) + +This document outlines the next major evolution of the VoxVera project, focusing on trust, social amplification, visual versatility, and network resilience. + +--- + +## 1. Integrity & Trust (PGP Signing) +**Goal:** Provide cryptographic proof that the `voxvera-portable.zip` provided by a flyer has not been tampered with by the hoster. + +### Technical Requirements +- **CLI:** Add `voxvera sign ` command. +- **Dependency:** Use a lightweight PGP implementation (e.g., `python-gnupg` or `pgpy`) to sign the portable ZIP. +- **Storage:** Generate a `.sig` or `.asc` file alongside the ZIP in the `download/` folder. +- **Web:** The landing page will look for `voxvera-portable.zip.asc`. If found, a **"Verified Source"** badge with the signer's Fingerprint will appear next to the download button. + +### Implementation Phases +1. **Phase 1:** Add PGP key generation/import logic to `voxvera init`. +2. **Phase 2:** Update `build_assets` to optionally sign the generated ZIP. +3. **Phase 3:** Update `index-master.html` to display verification status. + +--- + +## 2. Nostr Integration (Social Amplification) +**Goal:** Bridge the physical world (flyers) with the decentralized digital world (Nostr) by automatically broadcasting live .onion sites. + +### Technical Requirements +- **CLI:** Add `voxvera serve --nostr` flag. +- **Workflow:** When a site goes live and the `.onion` URL is generated, the tool posts a "Flyer Event" to a list of configured Nostr relays. +- **Identity:** Users can provide an existing NSEC or have VoxVera generate a "Flyer Identity" (new NPUB) for that specific server. +- **Metadata:** Include tags for the flyer title, headline, and the `.onion` link. + +### Implementation Phases +1. **Phase 1:** Add `nostr` and `bech32` to the `vendor/` directory. +2. **Phase 2:** Implement a background broadcast thread in `serve()`. +3. **Phase 3:** Add "View on Nostr" links to the flyer footer. + +--- + +## 3. The "Tear-off" Designer (Template Gallery) +**Goal:** Expand the utility of VoxVera to new use cases like missing person alerts, protest organizing, and artistic distribution. + +### Technical Requirements +- **Restructuring:** Move from a single `voxvera` template to a category-based system: + - `/templates/default/` (The original Operation VoxVera style) + - `/templates/minimal/` (Clean, text-heavy) + - `/templates/alert/` (High-contrast, for emergencies) + - `/templates/art/` (Image-focused) +- **CLI:** Update `voxvera init` to include a visual description and selector for templates. + +### Implementation Phases +1. **Phase 1:** Refactor `copy_template` to support categories. +2. **Phase 2:** Design and implement 3 new HTML/CSS templates. +3. **Phase 3:** Allow templates to define their own custom character limits (e.g., "Alert" might allow larger headlines). + +--- + +## 4. Self-Healing Network (Update Logic) +**Goal:** Ensure the decentralized "Viral" network stays current with security fixes and features. + +### Technical Requirements +- **Discovery:** The tool will check a "Source of Truth" (e.g., `voxvera.org/version.json` or a hardcoded list of onion mirrors). +- **Notification:** `voxvera manage` will show a 🌟 or ⚠️ next to the version number if an update is available. +- **Update Workflow:** Provide a `voxvera update` command that downloads the latest `voxvera-portable.zip` and safely replaces the `vendor/` and `voxvera/` directories. + +### Implementation Phases +1. **Phase 1:** Implement version-checking logic via Tor SOCKS proxy. +2. **Phase 2:** Add update notifications to the management menu. +3. **Phase 3:** (Advanced) Implement "In-Place" updates for the vendored dependencies. + +--- + +## 5. GUI Modernization +**Goal:** Transition the Electron wrapper from a CLI mirror to a rich, visual dashboard. + +### Technical Requirements +- **Flyer Cards:** Replace the text list with visual "cards" showing the flyer's headline and a mini QR preview. +- **Tor Dashboard:** A dedicated tab showing all active hidden services, their uptime, and their `.onion` links. +- **One-Click Actions:** Visual buttons for "Export All," "Start All," and "New Flyer." +- **Direct Log Stream:** A collapsible panel to see the OnionShare logs in real-time. + +### Implementation Phases +1. **Phase 1:** Update the IPC bridge between Electron and the Python CLI. +2. **Phase 2:** Redesign the frontend using a modern, dark-themed CSS framework (keeping it local-first). +3. **Phase 3:** Add a "Theme Preview" during the flyer creation process. + +--- + +## Summary of Impact +By completing this roadmap, VoxVera moves from a standalone utility to a **Decentralized Information Ecosystem**. +- **Security** is solved via PGP. +- **Reach** is solved via Nostr. +- **Versatility** is solved via the Template Gallery. +- **Sustainability** is solved via Update Logic.