AVR BPPS-6
Trilingual memorial and content platform, with an admin panel elderly volunteers actually use

- Languages
- Romanian, Russian, English - full content parity
- Media live
- 161 items - 124 photos, 37 videos
- Image payload
- −93% via a sharp + ffmpeg pipeline into Cloudinary
- Prerendered
- 18 routes as static HTML, sitemap from live Firestore data
- Running cost
- $0 / month
- Still maintained
- content and gallery updates through Sep 2026
- Role
- Sole developer and designer
- Client
- War Veterans Association of Police Battalion No. 6, Chișinău
- Stack
- React 19ViteFirebaseCloudinarysharpffmpegPuppeteer prerender
Designed for the editors, not the developer
Photo and video publishing collapsed into a single upload button with automatic gallery placement. That was the harder implementation, and I chose it deliberately because the cheaper design - pick an album, then upload, then tag - would not have been used by a committee in their seventies. An admin flow that nobody uses is not a feature.
Fitting 1.5 GB of history into free tiers
Source video came in at 1.5 GB. A pipeline of sharp for WebP conversion and ffmpeg for 720p H.264 compression brought image payloads down 93% and the video under Cloudinary's free-tier limits, delivered with automatic format and quality negotiation. Uploads go through an unsigned preset from the browser, so no secret ever ships.
Crawlable without a server
A custom Puppeteer-based prerenderer emits all 18 routes as static HTML with JSON-LD, and the sitemap is generated from live Firestore content at build time. GitHub Actions deploys main and opens a preview channel per pull request.
Two-sided timber marketplace with a sealed-bid auction, card payments and Romanian e-invoicing