Shipping this devlog: one webhook, zero servers I don't already have
This is entry 001, and it published itself. The pipeline you're looking at works like this:
- an authenticated webhook in n8n receives the article as JSON
- a Code node fills the site's HTML template and prepends an entry to
log.json - both files are committed straight to GitHub via the contents API
- Coolify sees the push and redeploys the static site
- Listmonk fires a campaign to confirmed subscribers through Resend
The interesting constraint
The site has no build step — plain HTML, CSS and a single JS file. So "publishing" can't mean "run the generator". It means: write one more static file and update one JSON index the front-end fetches at load.
POST /webhook/svbk-publish
{
"title": "...",
"tags": ["..."],
"content": "<p>article html</p>"
}Everything runs on a VPS that was already paying rent: Coolify's Traefik does TLS, Listmonk and n8n sit on an internal Docker network with no published ports, and Resend relays the mail so the VPS never has to beg for IP reputation.
If you're reading this in your inbox: the unsubscribe link below actually works. That was half the point of doing this properly.