Skip to content
Alexandru Lungu
All work
May – Aug 2026

AVR BPPS-6

Trilingual memorial and content platform, with an admin panel elderly volunteers actually use

AVR BPPS-6 home page in Romanian with the memorial carousel and latest news
Ledger
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
Figures as of 2026-09-12
Context
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.