pennydrop.net - the public site. Deployed by Coolify onto vps-da3417bd.
Find a file
2026-09-09 17:30:00 +00:00
public Add the under-construction page 2026-09-09 16:08:07 +00:00
docker-compose.yml Declare Traefik routing in the compose (Coolify UI domain add does not persist for compose apps) 2026-09-09 17:15:56 +00:00
README.md Describe the actual deploy: symlink into a checkout on the VPS, pull to publish 2026-09-09 17:30:00 +00:00

pennydrop.net

The public site for PennyDrop, LLC — a consultancy for behavior change at scale.

Currently a single under-construction page. This repo is the only source of truth for its content: the file this repo serves is literally the file in public/, not a copy of it.

How it is served

vps-da3417bd holds a clone of this repo at /srv/www/site-repo, and /srv/www/pennydrop is a symlink to /srv/www/site-repo/public. A Coolify service (pennydrop-site, project website) runs nginx:1.27-alpine with that path bind-mounted read-only, and Coolify's Traefik terminates TLS with Let's Encrypt and redirects http to https.

DNS is Route 53: pennydrop.net and www.pennydrop.net are A records to 15.204.230.52. The apex is a real record, not the *.pennydrop.net wildcard — that points at the Pangolin edge instead, and this site deliberately does not go through Pangolin.

To publish a change

# 1. commit and push here, then on the VPS:
git -C /srv/www/site-repo pull

That is the whole deploy. No container restart is needed — nginx reads from disk per request, and the symlink means the served file is the working-tree file. There is no build step and no second copy to fall out of date.

Two standing rules

  • This repo is public, deliberately, and the Forgejo org is public for the same reason. Nothing secret belongs here — no env files, no keys. Secrets go in OpenBao.
  • The site must never be SSO-gated. ZeptoMail's account review fetches it anonymously with a non-browser client; a Pangolin challenge page reads as "no active and functional website".

About docker-compose.yml

It carries Traefik labels and is not currently what runs. It exists for the Coolify application pennydrop-site (a second, parked resource) which pulls this repo directly — that path is blocked because Coolify 4.3.18 will not persist a domain on a compose application, and its UI stopped dispatching deployments. If that is ever fixed, the labels here are what routes it.

Accessibility

The page is held to WCAG 2.2 AA: semantic structure, one h1, visible focus ring, real text rather than images of text, and every text/background pair above 8:1 contrast in both light and dark. Keep it that way — an inaccessible site from a firm that designs learning is a credibility problem before it is a compliance one.