Vapora/assets/web/README.md
Jesús Pérez 8f6a884f6e docs: Update README and CHANGELOG with web assets optimization
- Document web assets restructuring with minification pipeline
  * 32% compression (26KB → 18KB)
  * Bilingual support (EN/ES) preserved
  * Automated minify.sh script for version sync
  * Complete README.md guide with examples

- Add web assets structure to project directory layout in README
  - New assets/web/ section with source and production versions
  - Reference to minification script and documentation

- Include Just recipes documentation for local development
  - Show `just help` commands for discovering available recipes
  - Document 50+ recipes for build, test, and CI operations

- Update CHANGELOG with infrastructure improvements
  - Web assets optimization (32% compression)
  - Just recipes CI/CD system (50+ commands)
  - Code quality improvements and bug fixes
  - Markdown linting compliance achieved
  - All tests passing (55/55 in vapora-backend)

- Add build and test results to unreleased changes section
  - Clean compilation with 0 warnings in vapora-backend
  - 55 tests passing
  - Clippy compliance achieved
2026-01-11 20:12:56 +00:00

219 lines
4.4 KiB
Markdown

# Vapora Web Assets
Web-based landing page and static content for Vapora.
## Directory Structure
```text
assets/web/
├── src/
│ └── index.html # Source HTML (readable, 26KB)
├── index.html # Minified/Production HTML (18KB)
└── README.md # This file
```
## Files
### `src/index.html` - Source Version
- **Purpose**: Development and maintenance
- **Size**: 26KB (uncompressed)
- **Content**:
- Full formatting and indentation
- Inline CSS and JavaScript
- Bilingual (English/Spanish) content
- Language-aware dynamic switching
- Interactive agent showcase
- Technology stack display
**Use for:**
- Editing content
- Understanding structure
- Version control
- Making translations updates
### `index.html` - Production Version
- **Purpose**: Served to browsers (fast loading)
- **Size**: 18KB (32% compression)
- **Optimizations**:
- Removed all comments
- Compressed CSS (removed spaces, combined rules)
- Minified JavaScript (single line)
- Removed whitespace between tags
- Preserved all functionality
**Use for:**
- Production web server
- CDN distribution
- Browser caching
- Fast load times
## How to Use
### Development
Edit `src/index.html`:
```bash
# Edit source file
nano assets/web/src/index.html
# Regenerate minified version (script below)
```
### Update Minified Version
When you update `src/index.html`, regenerate `index.html`:
```bash
# Using the minification script (Perl)
perl -e '
use strict;
use warnings;
open(my $fh, "<", "assets/web/src/index.html") or die $!;
my $content = do { local $/; <$fh> };
close($fh);
# Remove comments
$content =~ s/<!--.*?-->//gs;
# Compress whitespace in style tags
$content =~ s/(<style[^>]*>)(.*?)(<\/style>)/
my $before = $1;
my $style = $2;
my $after = $3;
$style =~ s{\/\*.*?\*\/}{}gs;
$style =~ s{\s+}{ }gs;
$style =~ s{\s*([{}:;,>+~])\s*}{$1}gs;
$before . $style . $after;
/gies;
# Compress whitespace in script tags
$content =~ s/(<script[^>]*>)(.*?)(<\/script>)/
my $before = $1;
my $script = $2;
my $after = $3;
$script =~ s{\/\/.*$}{}gm;
$script =~ s{\s+}{ }gs;
$script =~ s{\s*([{}();,])\s*}{$1}gs;
$before . $script . $after;
/gies;
# Remove whitespace between tags
$content =~ s/>\s+</></gs;
$content =~ s/\s+/ /gs;
$content =~ s/^\s+|\s+$//g;
open(my $out, ">", "assets/web/index.html") or die $!;
print $out $content;
close($out);
print "✅ Minified version created\n";
'
```
### Deployment
Serve `index.html` from your web server:
```bash
# Using Rust
cargo install static-web-server
static-web-server -d assets/web/
# Using Python
python3 -m http.server --directory assets/web
# Using Node.js
npx http-server assets/web
# Using nginx
# Point root to assets/web/
# Serve index.html as default
```
## Features
**Responsive Design**
- Mobile-first approach
- Flexbox layouts
- Media queries for mobile
**Performance**
- Inline CSS (no separate requests)
- Inline JavaScript (no blocking external scripts)
- Minimal dependencies (no frameworks)
- 18KB minified size
**Bilingual**
- English and Spanish
- LocalStorage persistence
- Data attributes for translations
- Dynamic language switching
**Modern CSS**
- CSS Gradients
- Animations (fadeInUp)
- Hover effects
- Grid layouts
**Styling**
- Vapora color scheme
- Gradient backgrounds
- Monospace font (JetBrains Mono)
- Smooth transitions
## Content Sections
1. **Hero** - Title, tagline, logo
2. **Problems** - 4 problems Vapora solves
3. **How It Works** - Feature overview
4. **Technology Stack** - Tech badges
5. **Available Agents** - Agent showcase (12 agents)
6. **CTA** - Call-to-action button
7. **Footer** - Credits and links
## Translations
All text content is bilingual. Edit data attributes in `src/index.html`:
```html
<!-- English/Spanish example -->
<span data-en="Hello" data-es="Hola">Hello</span>
```
The JavaScript automatically updates based on selected language.
## Maintenance
- Source edits go in `src/index.html`
- Regenerate `index.html` when source changes
- Both files are versioned in git
- Keep them in sync
## Git Workflow
```bash
# Edit source
git add assets/web/src/index.html
git add assets/web/index.html
git commit -m "Update landing page content"
git push
```
## Compression Statistics
|File|Size|Type|
|---|---|---|
|`src/index.html`|26KB|Source (readable)|
|`index.html`|18KB|Production (minified)|
|**Compression**|**32%**|**Saved 8.8KB**|
---
**Last Updated**: 2026-01-11
**Version**: 1.2.0 (matches Vapora release)