Devforth

Insights

Engineering notes, architectural deep-dives, and practical playbooks from the Devforth team.

Latest

Nginx vs Traefik: how slower one can be better?
Architecture & Systems

Nginx vs Traefik: how slower one can be better?

Comprehensive review for popular HTTP routing proxy servers. Learn about weak and strong points of both and understand how to select one based on your project goals.

How to provision an OpenVPN server on Ubuntu for development and testing
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.

Running Cypress end-to-end tests on Woodpecker CI with Slack notifications
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.

Deploy React/Vue/Svelte in Docker simply and efficiently using Spa-to-http and Traefik
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.

Critical server alerts with HotHost: open-source quick-to-setup Disk/RAM notifier
OpenSource Contributions

Critical server alerts with HotHost: open-source quick-to-setup Disk/RAM notifier

Learn about truly simple way to setup server critical monitoring. This is step-by-step guide to add Open-Source dockerized alerts to any linux server

How to safely run memory-unstable Node.js dependencies in production
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.

Why your software should use UUIDs
Architecture & Systems

Why your software should use UUIDs

Why UUIDs-driven software works faster, getting released earlier and is painless to developers