Overview
The COVID-19 History Project is a curated digital archive of pandemic events and policy decisions. It presents a media timeline you can browse by year, month, and day, with full-text search, user accounts, and a “contribute” page where readers can suggest news links. The archive also posts entries automatically to Twitter and Bluesky, and it saves linked articles through the Wayback Machine so the sources stay reachable.
Frontend
The frontend is a Remix v2 app on the Cloudflare adapter, written in TypeScript and built with Vite 5. Styling combines Tailwind CSS with SCSS, plus a shadcn/ui component layer in the “new-york” style (Radix primitives and Lucide icons). Forms use react-hook-form and Zod, carousels use Embla, and the app talks to the backend through the PocketBase JavaScript SDK.
Backend
The backend is a single Go service built on PocketBase, which provides the embedded SQLite data store, an auto-generated REST API, an admin UI, and the full authentication system. Search is a separate SQLite FTS5 index with BM25 relevance ranking, exposed through one custom Go route. The service also ships Cobra CLI commands, the scheduled social-media posting, email through Mailjet, and S3-compatible backups to Cloudflare R2.
Infrastructure
The two halves deploy independently. The backend is a distroless container self-hosted on a VPS with Podman, sitting behind an nginx reverse proxy; its image is pushed to the GitHub Container Registry through the Makefile. The frontend deploys to Cloudflare Pages with Wrangler. Cloudflare provides the hosting and CDN, and Cloudflare R2 stores the scheduled PocketBase backups.