Theo Ferguson

Portfolio Site

The site you are reading this on, built as its own project rather than from a template. A Django REST Framework backend exposes a paginated, public read-only API — writes require an admin session — and a Qwik and Tailwind frontend server-renders each page and fetches that API at request time. The practical consequence is that projects and blog posts are written through the Django admin and appear on the live site immediately, with no rebuild or redeploy in between. The contact form is hardened against the usual drive-by spam with Google reCAPTCHA verification, a honeypot field, and per-IP rate limiting, and every submission is stored with its referrer for later triage. The backend runs on Fly.io against Postgres and serves uploaded media; the frontend deploys separately to Cloudflare Pages behind theojohnferguson.com. Docker Compose brings the whole stack up locally in one command.

Visit project