chore: add features

This commit is contained in:
Jesús Pérez 2025-11-10 11:57:49 +00:00
parent cd8bc02944
commit af9364267e
3 changed files with 1030 additions and 0 deletions

101
.gitignore vendored Normal file
View File

@ -0,0 +1,101 @@
wrks
ROOT
OLD
# Generated by Cargo
# will have compiled files and executables
debug/
target/
# Encryption keys and related files (CRITICAL - NEVER COMMIT)
.k
.k.backup
*.k
*.key.backup
config.*.toml
config.*back
# where book is written
_book
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock
# These are backup files generated by rustfmt
**/*.rs.bk
# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb
node_modules/
**/output.css
**/input.css
# Environment files
.env
.env.local
.env.production
.env.development
.env.staging
# Keep example files
!.env.example
# Configuration files (may contain sensitive data)
config.prod.toml
config.production.toml
config.local.toml
config.*.local.toml
# Keep example configuration files
!config.toml
!config.dev.toml
!config.example.toml
# Log files
logs/
*.log
# TLS certificates and keys
certs/
*.pem
*.crt
*.key
*.p12
*.pfx
# Database files
*.db
*.sqlite
*.sqlite3
# Backup files
*.bak
*.backup
*.tmp
*~
# Encryption and security related files
*.encrypted
*.enc
secrets/
private/
security/
# Configuration backups that may contain secrets
config.*.backup
config.backup.*
# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# Documentation build output
book-output/
# Generated setup report
SETUP_COMPLETE.md

732
FEATURES.md Normal file
View File

@ -0,0 +1,732 @@
# 🎯 Vapora Features
<div align="center">
<img src="imgs/vapora_v.svg" alt="Vapora Logo" width="300">
<h2> 🌟 Development flows <br><span style="margin-left: 20px"> when teams and AI agents <b>orchestrate</b></span> </h2>
<small>**Version**: 0.2.0 | **Status**: Alpha </small>
</div>
Vapora is an **intelligent development orchestration platform** where teams and AI agents work together in continuous flow. It automates and coordinates software development lifecycle—from design and implementation through testing, documentation, and deployment—while maintaining full context and enabling intelligent decision-making at every step.
Unlike fragmented tool ecosystems, Vapora is a single, self-contained system where developers and AI agents collaborate seamlessly, complexity evaporates, and development flows naturally.
### Core Value Proposition
- ✅ **Unifies task management** with intelligent code context (all in one place)
- ✅ **Reduces context switching** for developers (no tool jumping)
- ✅ **Makes team knowledge** discoverable and actionable (searchable, organized)
- ✅ **Enables AI agents** as first-class team members (12 specialized roles)
- ✅ **Self-hosted** with cloud-agnostic deployment (own your data)
- ✅ **Multi-tenant by design** with fine-grained access control (shared platforms)
### Target Users
- **Development teams** needing better coordination and visibility
- **Organizations** wanting AI assistance embedded in workflow
- **Platform engineers** managing shared development infrastructure
- **Enterprise teams** requiring on-premise deployment and data control
- **Teams at scale** needing fine-grained permissions and multi-tenancy
---
## Table of Contents
1. [Project Management](#project-management)
2. [AI-Powered Intelligence](#ai-powered-intelligence)
3. [Multi-Agent Coordination](#multi-agent-coordination)
4. [Knowledge Management](#knowledge-management)
5. [Cloud-Native & Deployment](#cloud-native--deployment)
6. [Security & Multi-Tenancy](#security--multi-tenancy)
7. [Technology Stack](#technology-stack)
8. [Optional Integrations](#optional-integrations)
---
## 🎨 Project Management
### Kanban Board (Glassmorphism UI)
**Solves**: Context Switching Infinito
The centerpiece of Vapora is a beautiful, responsive Kanban board with real-time collaboration:
- **Intuitive columns**: Todo → Doing → Review → Done (customizable)
- **Drag & drop** task reordering with instant sync across team
- **Glassmorphism design** with vaporwave aesthetics (modern, beautiful UX)
- **Optimistic updates** (UI responds instantly, server syncs in background)
- **Rich task cards** featuring:
- Title, description, priority levels, tags
- Assigned team members (developers + AI agents)
- Subtasks and dependency chains
- Comments and threaded discussions
- Time estimates and actual time spent
- Code snippets and inline documentation
### Unified Task Lifecycle
**Solves**: Task Management Sin Inteligencia
Manage all project work from a single source of truth:
- **Work items** (tasks, bugs, features, chores)
- **Developers + AI agents** treated equally as team members
- **Task templates** for recurring workflow patterns
- **Bulk operations** (reorder, assign, tag, bulk updates)
- **Advanced search & filters**:
- By assignee, status, priority, tags, due date
- Custom filters (created by, mentioned in, blocked by)
- Saved search queries
- **Multiple views**:
- Kanban view (visual workflow)
- List view (text-focused)
- Timeline/Gantt (dependencies and critical path)
- Calendar view (deadline-focused)
- Table view (spreadsheet-like)
### Real-Time Collaboration
- **Live presence** (see who's viewing/editing in real-time)
- **Collaborative comments** with threads and mentions
- **Notifications** (task assigned, commented, updated, blocked)
- **Activity timeline** (audit trail of who did what, when)
- **@mentions** for developers and agents
- **Task watchers** (subscribe to updates)
### Team & Project Organization
- **Multiple projects** per workspace
- **Team members** (both humans and AI agents)
- **Custom roles** with granular permissions
- **Team dashboards** with metrics and burndown
- **Sprint planning** (if using Agile workflow)
- **Backlog management** with story points estimation
---
## 🧠 AI-Powered Intelligence
### Intelligent Code Context
**Solves**: Knowledge Fragmentado, Task Management Sin Inteligencia
Tasks are more than descriptions—they carry full code context:
- **Automatic code analysis** when tasks reference files or modules
- **Code snippets** displayed inline with syntax highlighting
- **Complexity metrics**:
- Cyclomatic complexity
- Cognitive complexity
- Test coverage by module
- **Pattern detection**:
- Detect anti-patterns and suggest improvements
- Identify code duplication
- Highlight risky changes
- **Dependency visualization**:
- Module dependency graphs
- Impact analysis (what breaks if this changes?)
- Circular dependency detection
- **Architecture insights**:
- Layer violations
- Service coupling analysis
- Component relationships
### Universal Search with RAG
**Solves**: Knowledge Fragmentado
Find any information across your entire knowledge base instantly:
- **Semantic search** powered by RAG (Retrieval-Augmented Generation):
- Search task descriptions, comments, discussions
- Find design decisions and ADRs
- Locate relevant code snippets
- Find previous solutions to similar problems
- Natural language queries: "How do we handle user authentication?"
- **Local embeddings** (fastembed) - privacy-first, no data sent to external services
- **Smart ranking**:
- By relevance (semantic similarity)
- By recency (most recent first)
- By authority (who wrote it, how many references)
- **Context-aware results**:
- Related tasks automatically suggested
- Similar solutions from past projects
- Relevant team members who worked on similar issues
### AI Agent Capabilities
Every team member is empowered by AI assistance:
- **Code-level AI suggestions**:
- Refactoring recommendations
- Performance optimization hints
- Test case suggestions
- Documentation generation
- **Task-level automation**:
- Auto-generate task descriptions
- Suggest related tasks and dependencies
- Estimate effort based on complexity
- Recommend assignees based on expertise
- **Workflow intelligence**:
- Predict blockers before they happen
- Suggest task ordering for efficiency
- Identify bottlenecks in workflow
- Recommend process improvements
---
## 🤖 Multi-Agent Coordination
### Specialized Agents (Customizable & Tunable)
**Solves**: Task Management Sin Inteligencia, Dev-Ops Handoff Manual, Pipeline Orchestration
Vapora comes with specialized agents that can be customized, extended, or selected based on your team's needs. Default roles include:
| Agent | Role | Specialization |
|-------|------|---|
| **Architect** | System design | Architecture decisions, ADRs, design reviews |
| **Developer** | Implementation | Code writing, refactoring, feature building |
| **CodeReviewer** | Quality gate | Code review, quality checks, suggestions |
| **Tester** | Quality assurance | Test writing, test execution, QA automation |
| **Documenter** | Knowledge keeper | Documentation, guides, API docs, root files |
| **Marketer** | Communications | Release notes, announcements, messaging |
| **Presenter** | Visualization | Presentations, demos, slide decks |
| **DevOps** | Deployment | Pipelines, deployment automation, infrastructure |
| **Monitor** | Operations | Health checks, alerting, observability |
| **Security** | Compliance | Security reviews, vulnerability scanning |
| **ProjectManager** | Planning | Roadmapping, tracking, prioritization |
| **DecisionMaker** | Resolution | Conflict resolution, decision arbitration |
### Agent Orchestration & Workflows
**Solves**: Dev-Ops Handoff Manual, Task Management Sin Inteligencia
Agents work together seamlessly without manual coordination:
- **Parallel execution**: Multiple agents work on different aspects simultaneously
- Developer writes code while Tester writes tests
- Documenter updates docs while DevOps prepares deployment
- **Smart task assignment**:
- Based on agent expertise and availability
- Consider agent workload and queue depth
- Respect skill requirements of the task
- **Dependency management**:
- Automatic task ordering based on dependencies
- Deadlock detection and resolution
- Critical path highlighting
- **Approval gates**:
- Security agent approval for sensitive changes
- Lead review approval before deployment
- Multi-stage review workflows
- **Intelligent fallback**:
- If agent fails, escalate or reassign
- Use backup LLM model if primary fails
- Retry with exponential backoff
- **Cost optimization**:
- Track token usage per agent role
- Route tasks to appropriate model (fast/cheap vs slow/accurate)
- Budget alerts and optimization suggestions
### Workflow Definition & Execution
Define complex workflows as YAML, Vapora executes automatically:
```yaml
workflow:
name: "Feature Implementation"
stages:
- architect:
task: "Design feature architecture"
requires: [issue_description]
- parallel:
- develop:
task: "Implement feature"
requires: [architecture]
- test_planning:
task: "Plan test strategy"
requires: [architecture]
- test:
task: "Write and run tests"
requires: [develop, test_planning]
- review:
task: "Code review"
requires: [develop]
approval_required: true
- document:
task: "Update docs"
requires: [develop]
- deploy:
task: "Deploy to staging"
requires: [review, test, document]
```
Vapora handles:
- **State machine execution** (state transitions with validation)
- **Conditional branches** (if/else logic)
- **Parallel stages** (multiple agents work simultaneously)
- **Approval gates** (halt until approval received)
- **Error handling** (catch failures, retry, escalate)
- **Rollback on failure** (revert to previous state if needed)
- **Real-time progress tracking** (live dashboard with WebSocket updates)
### Agent-to-Agent Communication
- **NATS JetStream** pub/sub messaging
- **Request/Reply pattern** for synchronous operations
- **Broadcast events** (task completed, blocker detected, etc.)
- **Shared context** via Model Context Protocol (MCP)
- **Complete audit trail** of all agent interactions
---
## 📚 Knowledge Management
### Session Lifecycle Manager
**Solves**: Knowledge Fragmentado
Every work session is automatically organized and searchable:
- **Automatic organization** of all session artifacts:
- Tasks created/updated
- Decisions made
- Code changes
- Discussions and comments
- Generated documentation
- **Session metadata**:
- Date and time
- Participants (humans + agents)
- Goals and outcomes
- Key decisions
- Issues discovered
- **Decision extraction**:
- Auto-generate Architecture Decision Records (ADRs) from discussions
- Capture "why" behind decisions
- Link to related decisions
- Track decision impact
- **Context preservation**:
- Complete task history
- All comments and discussions
- Code changes and diffs
- Referenced resources
- **Searchable archive**:
- Find past sessions by topic
- Discover who worked on similar problems
- Understand project history and evolution
- Learn from past decisions
### Root Files Keeper
**Solves**: Knowledge Fragmentado, Dev-Ops Handoff Manual
Critical project files stay accurate and up-to-date automatically:
- **README.md** - Always reflects current project state
- Quick start instructions (updated when setup changes)
- Feature list (reflects completed features)
- Architecture overview (updated when architecture changes)
- Latest version and changelog link
- **CHANGELOG.md** - Complete release history
- Auto-populated from releases and completed features
- Organized by version
- Breaking changes highlighted
- **ROADMAP.md** - Future direction and planning
- Planned features and their status
- Timeline and priorities
- Known issues and limitations
- **CONTRIBUTING.md** - Development guidelines
- Setup instructions
- Development workflow
- Code style guidelines
- Testing requirements
- Pull request process
- **Additional files**:
- SECURITY.md (security policies)
- API.md (API documentation)
- ARCHITECTURE.md (system design)
- Custom files per project
- **Smart updates**:
- Backup before any update (never lose old content)
- Diff tracking (see what changed)
- Version control (roll back if needed)
- Human review optional (approve updates before publishing)
### Documentation Lifecycle
**Solves**: Knowledge Fragmentado
All documentation is continuously organized and indexed:
- **Automatic classification**:
- Specifications and design docs
- Architecture Decision Records (ADRs)
- How-to guides and tutorials
- API documentation
- Troubleshooting guides
- Meeting notes and decisions
- **Intelligent organization**:
- By category, project, date
- Automatic tagging
- Relationship linking
- **RAG indexing**:
- All docs become searchable
- Part of semantic search results
- Linked to related code and tasks
- **Auto-archival**:
- Old docs marked as deprecated
- Obsolete docs archived (not deleted)
- Version history preserved
- **Presentation generation**:
- Auto-generate slide decks from docs
- Create summary presentations
- Export to multiple formats
- **Impact tracking**:
- Which code implements which spec?
- Which ADR impacts this feature?
- Doc change history
---
## ☸️ Cloud-Native & Deployment
### Standalone Local Development
**Solves**: Context Switching Infinito, Dev-Ops Handoff Manual
Get started in 5 minutes with Docker Compose:
```bash
git clone https://github.com/vapora-platform/vapora.git
cd vapora
docker compose up -d
# Access:
# Frontend: http://localhost:3000
# Backend API: http://localhost:8080
# Database: http://localhost:8000
```
Includes everything out of the box:
- **Frontend** (Leptos WASM application)
- **Backend API** (Axum REST + WebSocket)
- **Database** (SurrealDB)
- **Message queue** (NATS JetStream)
- **Cache layer** (Redis)
Perfect for:
- Local development
- Team collaboration on local network
- Small team deployments
- Testing before Kubernetes deployment
### Kubernetes Deployment
Deploy to any Kubernetes cluster—no vendor lock-in:
**Supported platforms**:
- Vanilla Kubernetes
- Amazon EKS
- Google GKE
- Azure AKS
- DigitalOcean Kubernetes
- Self-hosted K3s, RKE2
- On-premise Kubernetes
**Deployment approaches**:
1. **Helm Charts** (traditional Kubernetes)
- Standard Helm values
- Customizable for your environment
- GitOps-friendly
2. **Provisioning** (Infrastructure as Code)
- KCL-based configuration
- Declarative infrastructure
- Complete cluster setup automation
- Integrated with existing Provisioning platform
### Scaling & High Availability
- **Auto-scaling agents** (HPA based on queue depth)
- **Load balancing** across service replicas
- **Database replication** (SurrealDB multi-node)
- **Distributed caching** (Redis cluster)
- **Message queue scaling** (NATS cluster)
- **Zero-downtime deployments** (rolling updates)
### Infrastructure as Code
Define infrastructure declaratively:
```toml
[cluster]
name = "vapora-prod"
cloud = "aws"
region = "us-west-2"
availability_zones = 3
[services.backend]
replicas = 3
cpu = "500m"
memory = "1Gi"
[services.agents]
replicas = 5 # scales up to 20 based on load
cpu = "1000m"
memory = "2Gi"
[storage]
database = "50Gi"
cache = "10Gi"
```
---
## 🔐 Security & Multi-Tenancy
### Authentication & Authorization
- **JWT-based authentication** (API tokens, session tokens)
- **Cedar policy engine** for fine-grained access control
- **Flexible roles** (Admin, Lead, Developer, Agent, Viewer)
- **Custom policies** (e.g., "only Architect agents can approve ADRs")
- **Team-based permissions** (fine-grained per team/project)
- **Audit logging** (all actions logged with who, what, when)
### Multi-Tenancy by Design
**Solves**: Shared platform infrastructure for platform teams
- **Namespace isolation** (each tenant in separate namespace)
- **Database scopes** (SurrealDB native scoping for data isolation)
- **Network policies** (prevent cross-tenant traffic)
- **Resource quotas** (enforce limits per tenant)
- **Separate secrets** per tenant (no credential leakage)
- **Isolated storage** (persistent volumes per tenant)
### Data Protection
- **Encryption at rest** (TLS certificates, encrypted volumes)
- **Encryption in transit** (mTLS between services)
- **Secrets management** (RustyVault integration)
- **API key rotation** (automatic and manual)
- **Data backup** (automated, encrypted, off-site)
- **Data deletion** (GDPR-compliant, with audit trail)
### Compliance Ready
- **Audit trails** (immutable logs of all actions)
- **Compliance policies** (SOC 2, HIPAA, GDPR)
- **Access logs** (who accessed what, when)
- **Change tracking** (what changed, who changed it)
- **Data residency** (control where data is stored)
- **Compliance reports** (auto-generate audit reports)
---
## 🛠️ Technology Stack
### Backend
- **Rust 1.75+** - Performance, memory safety, concurrency
- **Axum 0.7** - Fast, ergonomic web framework
- **SurrealDB 1.8** - Multi-model database with built-in scoping for multi-tenancy
- **NATS JetStream** - High-performance message queue for agent coordination
- **Tokio** - Async runtime for concurrent operations
### Frontend
- **Leptos 0.6** - Reactive Rust framework for WASM
- **UnoCSS** - Atomic CSS for instant, on-demand styling
- **thaw** - Component library
- **leptos-use** - Reactive utilities
### Agents & LLM
- **Rig** - LLM agent framework with tool calling
- **NATS JetStream** - Inter-agent coordination and messaging
- **Cedar** - Policy engine for fine-grained RBAC
- **MCP Gateway** - Model Context Protocol for plugin extensibility
- **LLM support**: Claude, OpenAI, Google Gemini, Ollama (local)
- **fastembed** - Local embeddings for RAG (privacy-first)
### Infrastructure
- **Kubernetes** - Orchestration (K3s, RKE2, vanilla, managed)
- **Istio** - Service mesh (mTLS, traffic management, observability)
- **Rook Ceph** - Distributed storage (high availability)
- **Tekton** - CI/CD pipelines (if using Provisioning)
- **RustyVault** - Secrets management
- **Prometheus + Grafana** - Monitoring and alerting
- **Loki** - Log aggregation
- **Tempo** - Distributed tracing
- **Zot** - OCI registry (lightweight artifact storage)
---
## 📊 Metrics & Monitoring
### Built-in Dashboards
- **Project overview**: Tasks, completion rate, team velocity
- **Agent metrics**: Execution time, token usage, error rates
- **Team burndown**: Sprint progress, velocity trends
- **Code metrics**: Complexity, coverage, quality scores
- **Deployment status**: Success rates, lead time, cycle time
### Observability
- **Structured logging** (JSON format, searchable)
- **Distributed tracing** (OpenTelemetry compatible)
- **Metrics** (Prometheus format)
- **Health checks** (liveness and readiness probes)
- **Custom dashboards** (build your own)
- **Alerting** (notifications when thresholds exceeded)
---
## 🚀 Roadmap Features (Future)
- **Mobile app** for on-the-go task management
- **IDE integrations** (VS Code, JetBrains, Vim)
- **Advanced AI** (model fine-tuning per team)
- **Custom agents** (create domain-specific agents)
- **Compliance automation** (SOC 2, HIPAA, GDPR)
- **Cost analytics** (track agent execution costs)
- **Agent marketplace** (publish/share community agents)
- **Managed hosting** (Vapora Cloud option)
- **Time tracking** (automatic time estimation and tracking)
- **Resource planning** (capacity planning, workload balancing)
---
## 🔌 Optional Integrations
Vapora is a complete, standalone platform. These integrations are **optional**—use them only if you want to connect with external systems:
### External Repository Sync
Optionally sync with external repositories:
- **Periodic sync** (pull data from external sources)
- **One-way or two-way** sync (depending on use case)
- **Conflict resolution** (when both systems have changes)
- **Mapping configuration** (field mappings for different schemas)
Examples:
- Sync tasks from external issue tracker
- Sync pull requests to see deployment readiness
- Sync documentation from wiki
**Note**: Vapora's native task management, repository browser, and documentation system eliminate the need for external tools for most teams.
### External LLM Providers
Use Vapora's multi-LLM router with external providers:
- **Claude** (Anthropic)
- **GPT-4 / GPT-4o** (OpenAI)
- **Gemini** (Google)
- **Ollama** (local models)
Vapora intelligently routes tasks to the optimal provider based on:
- Task complexity
- Required latency
- Cost considerations
- Model capabilities
**Note**: All LLM access is configured via API keys in Vapora's secrets management. Your data stays within your deployment.
### MCP Plugin System
Extend Vapora capabilities via Model Context Protocol (MCP):
- **Standard plugin interface** for tools and resources
- **Community plugins** for common integrations
- **Custom plugins** for domain-specific needs
- **Secure execution** (sandboxed)
Examples of possible plugins:
- External repository browser
- Issue tracker sync
- Documentation aggregator
- Custom notification system
### Custom Webhooks & APIs
Integrate with external systems via APIs:
- **Outgoing webhooks** (send events when tasks change)
- **Incoming webhooks** (receive updates from external systems)
- **REST API** (build custom integrations)
- **GraphQL API** (if using advanced queries)
---
## Getting Started
### For Individual Developers
1. [Quick Start Guide](./guides/QUICK_START.md)
2. [Task Management Guide](./docs/TASK_MANAGEMENT.md)
3. [AI Agent Features](./docs/AI_AGENTS.md)
### For Development Teams
1. [Team Setup Guide](./guides/TEAM_SETUP.md)
2. [Collaboration Guide](./docs/COLLABORATION.md)
3. [Workflow Configuration](./docs/WORKFLOWS.md)
### For DevOps/Platform Teams
1. [Deployment Guide](./guides/DEPLOYMENT.md)
2. [Kubernetes Setup](./guides/KUBERNETES.md)
3. [Multi-Tenancy Setup](./guides/MULTI_TENANCY.md)
4. [Monitoring & Operations](./docs/MONITORING.md)
### For Extensibility
1. [MCP Plugin Guide](./docs/MCP_PLUGINS.md)
2. [API Reference](./docs/API.md)
3. [Webhook Documentation](./docs/WEBHOOKS.md)
---
## More Information
- **Website**: https://vapora.dev
- **Documentation**: https://docs.vapora.dev
- **GitHub**: https://github.com/vapora-platform/vapora
- **Community**: https://discord.gg/vapora
- **Issues & Feedback**: https://github.com/vapora-platform/vapora/issues
---
**Made with vaporwave dreams and Rust reality ✨**
Last updated: November 2025 | Version: 0.2.0 (Specification)

197
imgs/vapora_v.svg Normal file
View File

@ -0,0 +1,197 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 200" width="100%" height="100%" preserveAspectRatio="xMidYMid meet">
<defs>
<!-- Google Fonts import -->
<style>
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@800&amp;display=swap');
</style>
<!-- Gradiente principal -->
<linearGradient id="techGradV" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#22d3ee;stop-opacity:1"/>
<stop offset="50%" style="stop-color:#a855f7;stop-opacity:1"/>
<stop offset="100%" style="stop-color:#ec4899;stop-opacity:1"/>
</linearGradient>
<!-- Gradiente vertical -->
<linearGradient id="vertGradV" x1="0%" y1="100%" x2="0%" y2="0%">
<stop offset="0%" style="stop-color:#22d3ee;stop-opacity:1"/>
<stop offset="50%" style="stop-color:#a855f7;stop-opacity:0.8"/>
<stop offset="100%" style="stop-color:#ec4899;stop-opacity:0.4"/>
</linearGradient>
<!-- Filtro glow tech -->
<filter id="techGlowV">
<feGaussianBlur stdDeviation="2" result="coloredBlur"/>
<feMerge>
<feMergeNode in="coloredBlur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<!-- Filtro glow fuerte -->
<filter id="strongGlowV">
<feGaussianBlur stdDeviation="4" result="coloredBlur"/>
<feMerge>
<feMergeNode in="coloredBlur"/>
<feMergeNode in="coloredBlur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<!-- Filtro glass -->
<filter id="glassV">
<feGaussianBlur in="SourceGraphic" stdDeviation="0.5" result="blur"/>
<feColorMatrix in="blur" type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 18 -7" result="goo"/>
<feBlend in="SourceGraphic" in2="goo"/>
</filter>
</defs>
<!-- Fondo -->
<rect width="150" height="200" fill="#000000"/>
<!-- Grid de fondo técnico sutil -->
<g opacity="0.08" stroke="#22d3ee" stroke-width="0.5">
<line x1="0" y1="50" x2="150" y2="50"/>
<line x1="0" y1="100" x2="150" y2="100"/>
<line x1="0" y1="150" x2="150" y2="150"/>
<line x1="37" y1="0" x2="37" y2="200"/>
<line x1="75" y1="0" x2="75" y2="200"/>
<line x1="112" y1="0" x2="112" y2="200"/>
</g>
<!-- Símbolo técnico: flujo de datos ascendente (ARRIBA) -->
<g transform="translate(75, 90) scale(0.33)">
<!-- Base: plataforma -->
<rect x="-25" y="0" width="50" height="6.67" fill="url(#techGradV)" opacity="0.8" rx="3.33"/>
<!-- Stream principal - línea central tipo señal -->
<path d="M 0 0 L 0 -50 L 8.33 -58 L -8.33 -75 L 8.33 -92 L -8.33 -108 L 8.33 -125 L 0 -133 L 0 -200" stroke="url(#vertGradV)" stroke-width="5" fill="none" stroke-linecap="round" stroke-linejoin="round" filter="url(#techGlowV)">
<animate attributeName="stroke-dasharray" values="0,500;500,0;0,500" dur="4s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.8;1;0.8" dur="2s" repeatCount="indefinite"/>
</path>
<!-- Stream izquierdo 1 -->
<path d="M -33 0 L -33 -42 L -30 -58 L -37 -75 L -30 -92 L -37 -108 L -33 -125 L -33 -167" stroke="#22d3ee" stroke-width="3.33" fill="none" stroke-linecap="round" opacity="0.6" filter="url(#techGlowV)">
<animate attributeName="stroke-dasharray" values="0,417;417,0;0,417" dur="4.5s" repeatCount="indefinite"/>
</path>
<!-- Stream izquierdo 2 -->
<path d="M -58 0 L -58 -33 L -53 -50 L -63 -67 L -53 -83 L -63 -100 L -58 -117 L -58 -142" stroke="#a855f7" stroke-width="2.5" fill="none" stroke-linecap="round" opacity="0.5">
<animate attributeName="stroke-dasharray" values="0,333;333,0;0,333" dur="5s" repeatCount="indefinite"/>
</path>
<!-- Stream derecho 1 -->
<path d="M 33 0 L 33 -42 L 30 -58 L 37 -75 L 30 -92 L 37 -108 L 33 -125 L 33 -167" stroke="#ec4899" stroke-width="3.33" fill="none" stroke-linecap="round" opacity="0.6" filter="url(#techGlowV)">
<animate attributeName="stroke-dasharray" values="0,417;417,0;0,417" dur="4.2s" repeatCount="indefinite"/>
</path>
<!-- Stream derecho 2 -->
<path d="M 58 0 L 58 -33 L 53 -50 L 63 -67 L 53 -83 L 63 -100 L 58 -117 L 58 -142" stroke="#22d3ee" stroke-width="2.5" fill="none" stroke-linecap="round" opacity="0.5">
<animate attributeName="stroke-dasharray" values="0,333;333,0;0,333" dur="5.5s" repeatCount="indefinite"/>
</path>
<!-- Nodos de datos en el flujo principal -->
<circle cx="0" cy="-67" r="5" fill="#22d3ee" filter="url(#strongGlowV)">
<animate attributeName="cy" values="-67;-183;-67" dur="3s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;1;0" dur="3s" repeatCount="indefinite"/>
</circle>
<circle cx="0" cy="-100" r="4.17" fill="#a855f7" filter="url(#strongGlowV)">
<animate attributeName="cy" values="-100;-217;-100" dur="3.5s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;1;0" dur="3.5s" repeatCount="indefinite"/>
</circle>
<circle cx="0" cy="-133" r="3.33" fill="#ec4899" filter="url(#strongGlowV)">
<animate attributeName="cy" values="-133;-233;-133" dur="4s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;1;0" dur="4s" repeatCount="indefinite"/>
</circle>
<!-- Partículas laterales -->
<circle cx="-33" cy="-83" r="3.33" fill="#22d3ee" opacity="0.7">
<animate attributeName="cy" values="-83;-175;-83" dur="3.8s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0.7;0" dur="3.8s" repeatCount="indefinite"/>
</circle>
<circle cx="33" cy="-92" r="3.33" fill="#ec4899" opacity="0.7">
<animate attributeName="cy" values="-92;-175;-92" dur="4.2s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0.7;0" dur="4.2s" repeatCount="indefinite"/>
</circle>
<circle cx="-58" cy="-58" r="2.5" fill="#a855f7" opacity="0.5">
<animate attributeName="cy" values="-58;-142;-58" dur="4.5s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0.5;0" dur="4.5s" repeatCount="indefinite"/>
</circle>
<circle cx="58" cy="-67" r="2.5" fill="#22d3ee" opacity="0.5">
<animate attributeName="cy" values="-67;-142;-67" dur="5s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0.5;0" dur="5s" repeatCount="indefinite"/>
</circle>
<!-- Hexágonos técnicos flotantes -->
<polygon points="0,-158 5,-162 5,-167 0,-170 -5,-167 -5,-162" stroke="#22d3ee" fill="none" stroke-width="1.67" opacity="0.6">
<animate attributeName="transform" values="translate(0,0);translate(0,-50);translate(0,0)" dur="4s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0.6;0" dur="4s" repeatCount="indefinite"/>
</polygon>
<polygon points="-42,-117 -37,-120 -37,-125 -42,-128 -47,-125 -47,-120" stroke="#a855f7" fill="none" stroke-width="1.67" opacity="0.5">
<animate attributeName="transform" values="translate(0,0);translate(0,-42);translate(0,0)" dur="4.5s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0.5;0" dur="4.5s" repeatCount="indefinite"/>
</polygon>
<polygon points="42,-125 47,-128 47,-133 42,-137 37,-133 37,-128" stroke="#ec4899" fill="none" stroke-width="1.67" opacity="0.5">
<animate attributeName="transform" values="translate(0,0);translate(0,-33);translate(0,0)" dur="5s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0.5;0" dur="5s" repeatCount="indefinite"/>
</polygon>
<!-- Líneas de conexión horizontales animadas -->
<line x1="-33" y1="-100" x2="-8" y2="-100" stroke="#22d3ee" stroke-width="0.83" opacity="0.4">
<animate attributeName="opacity" values="0;0.4;0" dur="2s" repeatCount="indefinite"/>
</line>
<line x1="8" y1="-117" x2="33" y2="-117" stroke="#ec4899" stroke-width="0.83" opacity="0.4">
<animate attributeName="opacity" values="0;0.4;0" dur="2.5s" repeatCount="indefinite"/>
</line>
<line x1="-58" y1="-83" x2="-37" y2="-83" stroke="#a855f7" stroke-width="0.83" opacity="0.3">
<animate attributeName="opacity" values="0;0.3;0" dur="3s" repeatCount="indefinite"/>
</line>
<line x1="37" y1="-92" x2="58" y2="-92" stroke="#22d3ee" stroke-width="0.83" opacity="0.3">
<animate attributeName="opacity" values="0;0.3;0" dur="3.5s" repeatCount="indefinite"/>
</line>
</g>
<!-- Texto VAPORA (ABAJO) -->
<g filter="url(#glassV)">
<text x="75" y="135" font-family="'JetBrains Mono', 'Fira Code', monospace" font-size="32" font-weight="800" fill="url(#techGradV)" letter-spacing="2" text-anchor="middle">
VAPORA
</text>
<text x="75" y="135" font-family="'JetBrains Mono', 'Fira Code', monospace" font-size="32" font-weight="800" fill="none" stroke="rgba(255,255,255,0.2)" stroke-width="0.3" letter-spacing="2" text-anchor="middle">
VAPORA
</text>
</g>
<!-- Glow en texto -->
<text x="75" y="135" font-family="'JetBrains Mono', 'Fira Code', monospace" font-size="32" font-weight="800" fill="url(#techGradV)" letter-spacing="2" filter="url(#techGlowV)" opacity="0.3" text-anchor="middle">
VAPORA
</text>
<!-- Tagline -->
<text x="75" y="155" font-family="'Inter', sans-serif" font-size="8" fill="#a855f7" opacity="0.8" letter-spacing="0.1em" text-anchor="middle">
Evaporate complexity
</text>
<!-- Indicador técnico decorativo -->
<g transform="translate(75, 170)">
<rect x="0" y="0" width="1.5" height="10" fill="#22d3ee" opacity="0.6">
<animate attributeName="height" values="10;15;10" dur="1.5s" repeatCount="indefinite"/>
</rect>
<rect x="4" y="0" width="1.5" height="12" fill="#a855f7" opacity="0.6">
<animate attributeName="height" values="12;17;12" dur="1.8s" repeatCount="indefinite"/>
</rect>
<rect x="8" y="0" width="1.5" height="8" fill="#ec4899" opacity="0.6">
<animate attributeName="height" values="8;13;8" dur="1.3s" repeatCount="indefinite"/>
</rect>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB