Personal / Side · 2026

bilouro-web — this site

Wagtail multi-site (www / tech / books) with bilingual EN/PT content, full SEO, RSS feeds, search, custom domains, deployed on AWS Lightsail. Single Postgres, gunicorn, nginx, Certbot. Previously migrated from App Runner mid-build.

Single Wagtail project serving 3 subdomains via the multi-site feature. Each post has EN + PT versions stored in field + field_pt pairs; templates pick by Django language cookie. Translations are batch-generated via OpenAI Responses API with a curated system prompt that preserves Markdown/HTML and uses European Portuguese.

SEO: per-page seo_title/description, JSON-LD (Person, BlogPosting, Book), OG/Twitter cards, sitemap.xml, robots.txt, RSS feeds (/feed/) per subdomain plus a combined feed on www. Site-wide search via Wagtail's database backend. Apex 301-redirected to www.

Deploy: ./scripts/deploy.sh (one command from laptop) which SSHs into the VM and runs bilouro-deploy: git pull → uv sync → migrate → collectstatic → bootstrap_sites → restart → health-check → rollback if it fails.

Postgres 16 local on the VM with a weekly pg_dump to S3 cron. Snapshots automated via Lightsail.

Stack

Python 3.13, Django 5.2, Wagtail 7, PostgreSQL 16, gunicorn, nginx, Certbot, AWS Lightsail, S3, OpenAI Responses API, ruff, uv