Skip to content

Insights & Case Studies

Engineering perspectives and project deep-dives from the KeDevO studio

Building YardPro: A Full-Stack Vehicle Parts Platform

How we designed and built a complete vehicle dismantling and parts inventory system using .NET 8, Blazor, Flutter, and Docker.

When a UK vehicle dismantler needed to replace their paper-based parts tracking with a modern digital system, they came to KeDevO with a clear brief: build something fast, reliable, and easy to use in a busy workshop environment.

The result is YardPro — a full-stack platform that handles the entire lifecycle of vehicle dismantling, from intake to parts cataloguing to sales. The system comprises a .NET 8 REST API serving as the backend engine, a Blazor Server web panel for office staff, and a Flutter mobile application for warehouse operatives working on the shop floor.

The API processes over 50,000 parts records with response times consistently under 200 milliseconds. We chose MariaDB for its reliability and performance with structured inventory data, and Docker containers for consistent deployment across development and production environments.

One of the key engineering decisions was building the mobile app in Flutter rather than native iOS and Android. This allowed a single codebase to serve both platforms while maintaining near-native performance — critical for barcode scanning and real-time inventory lookups in a warehouse setting.

The entire platform runs on self-hosted infrastructure with automated CI/CD pipelines through GitHub Actions. Every push to the production branch triggers automated testing, building, and deployment. The system has maintained 99.9% uptime since launch, monitored around the clock through our Uptime Kuma dashboard.

.NET 8BlazorFlutterMariaDBDockerREST API

Self-Hosted Infrastructure: Zero Dependencies, Full Control

Why we moved everything to self-hosted VPS infrastructure with WireGuard VPN mesh, Docker, and 24/7 monitoring — and how it works.

Every service that powers KeDevO and our client projects runs on infrastructure we own and operate. No cloud vendor lock-in, no surprise pricing. Just three VPS nodes connected via an encrypted WireGuard mesh network.

This was not a philosophical choice — it was an engineering one. When you host your own infrastructure, you understand every layer of the stack. Debugging is faster. Performance tuning is precise. And the monthly cost is a fraction of equivalent cloud services.

Our infrastructure stack consists of Ubuntu 24.04 LTS servers running Docker containers managed with Docker Compose. Nginx serves as the reverse proxy, handling SSL termination with automatically renewed Let's Encrypt certificates. CrowdSec provides intrusion detection and prevention, blocking malicious traffic before it reaches our applications.

The WireGuard VPN mesh connects all three nodes with encrypted tunnels, allowing internal services to communicate securely without exposing ports to the public internet. Database replication, monitoring data, and deployment commands all travel through this private network.

For monitoring, we run Uptime Kuma tracking over 60 endpoints across all nodes — APIs, websites, databases, SSL certificates, and system services. Any anomaly triggers instant Discord alerts through our n8n automation platform, ensuring issues are caught and addressed within minutes.

Email infrastructure runs on Stalwart Mail Server with full DKIM, SPF, and DMARC configuration. Password management uses self-hosted Vaultwarden. Object storage runs on Minio S3. Every tool that a cloud provider would charge monthly for, we run ourselves — with full data sovereignty and zero third-party dependencies.

The result: 99.9% uptime, sub-second deployments via CI/CD, and complete visibility into every component of our stack.

DockerWireGuardCrowdSecNginxUptime KumaLinux