API
Public reads. NSFW wallpapers stay out unless the request carries a session that opted in.
GET /api/v1/wallpapers?q=&color=&tab=&sort=&page=
GET /api/v1/wallpapers/:slug
The envelope is { ok, data, error, meta }. tab is all, desktop, phone, ultrawide, live, or pairs. color is a family: black, mono, red, orange, amber, green, teal, blue, violet, pink. sort is trending, new, or downloads.
GET /healthz answers { ok: true } when Postgres answers.