SFTP Deploy Without Vercel — Boring on Purpose
Vercel and Netlify are great until you want the same deploy path as your self-hosted products. My portfolio lands on IONOS over SFTP after Woodpecker passes. It is boring. Boring is the feature.
Push to main on Forgejo triggers install, lint, build, QA, then SFTP upload. Permissions on the server are set so directories are 755 and assets are 644. No platform-specific adapters, no vendor lock-in for a static React site.
Local npm run deploy and deploy.bat exist as hotfix fallbacks. Agents and humans follow the same rule day to day: commit and push (or merge a PR). Editing files locally is not a ship.