Engineering notes, architectural deep-dives, and practical playbooks from the Devforth team.
Latest
DevOps & Reliability
Unlimited CI build minutes without SaaS lock-In: A practical look at Woodpecker CI
GitHub Actions pricing and policy changes have pushed teams to rethink CI ownership. This article explores Woodpecker CI as a self-hosted, open-source alternative that enables unlimited build minutes, predictable costs, and full infrastructure control.
DevOps & Reliability
URL monitoring made easy: self-hosted open-source tool for checking your website availability
You don’t need a complex stack to monitor availability. A lightweight, self-hosted approach to website uptime monitoring that scales with your needs
DevOps & Reliability
How to provision an OpenVPN server on Ubuntu for development and testing
A step-by-step guide to deploying a self-hosted VPN for development, testing, and internal infrastructure access.
DevOps & Reliability
Running Cypress end-to-end tests on Woodpecker CI with Slack notifications
End-to-end tests are only useful if their results are visible and actionable.
In this guide, we show how to run Cypress tests on a self-hosted Woodpecker CI server and report clear, readable results directly to Slack — including failures, logs, and pipeline status.
The setup works for small teams and production-grade environments alike.
DevOps & Reliability
Deploy React/Vue/Svelte in Docker simply and efficiently using Spa-to-http and Traefik
Learn about fast and professional way to serve SPA and be able to proxy any requests in a minutes with a minimal code. Based on open-source spa-to-http tooling and Traefik.
DevOps & Reliability
How to safely run memory-unstable Node.js dependencies in production
Third-party libraries don’t always behave well in long-running Node.js processes.
In this article, we show a universal, production-tested strategy to isolate and mitigate RAM leaks in tools like Puppeteer — without modifying their source code.
You’ll get a reusable pattern and ready-to-use Node.js code that works across different libraries and workloads.