Tools: Why I Built My Own Docker Dashboard Instead of Using Portainer (2026)
If you've ever managed more than a handful of Docker containers, you've probably heard of Portainer. It's the go-to answer whenever someone asks "how do I manage my Docker setup with a UI?" — and for good reason. It works, it's free, and it covers a lot of ground.I used it too. For a while, it was good enough.But "good enough" has a way of not staying good enough. What Portainer Does WellLet's be fair. Portainer is genuinely impressive for what it is — a full-featured, enterprise-ready container management platform. You get: A visual interface for containers, images, networks, and volumesStack management with Docker Compose supportMulti-environment supportRole-based access controlAn active community and solid documentation For teams or complex enterprise setups, it's hard to argue against it. But I wasn't running a team. I was running a homelab. Where It Started Feeling WrongThe more I used Portainer, the more I felt like I was using a tool built for someone else's workflow.It's a big application. The UI has a lot going on — menus, submenus, settings buried three levels deep. Every time I just wanted to restart a container or check what image a service was running, I was navigating through more interface than I needed.And the visual design — while functional — never felt like mine. I know that sounds like a minor thing. But when you spend time every day in a tool, the aesthetic matters more than people admit.I also run Docker on Windows with a specific multi-host setup, and getting Portainer to behave exactly the way I wanted in that context required more configuration than felt reasonable for a personal project.I wasn't looking for less power. I was looking for the right power, in the right shape. The Moment I Decided to Build SomethingI remember the exact moment I stopped tweaking Portainer and started thinking about alternatives. I was trying to set up a clean view of just the containers I cared about, with the metrics I actually used, in a layout that made sense to me — and I realized I was fighting the tool instead of using it.So I asked myself: how hard would it actually be to build what I want?I already knew React and Node.js. I had a clear picture of what I needed — a clean, minimal dashboard that showed me exactly what I wanted and nothing else, with a UI I was proud of looking at.That became NEXUS. What NEXUS Does DifferentlyNEXUS isn't trying to replace Portainer for enterprise use cases. It's built around a different philosophy: clarity over completeness.The core features I focused on:Container management — start, stop, restart, remove. Real-time status. No noise around the edges.Image management — pull, inspect, remove. Watcher (part of the ecosystem) handles automated update detection with Socket.io-powered real-time progress and image deduplication.Monitoring — Pulse gives me per-container CPU, memory, and network stats in a clean dark interface without having to navigate anywhere.Multi-host support — a lightweight Agent runs on remote hosts and reports back to the central NEXUS instance. No heavy infrastructure needed.Design system I actually like — dark premium UI inspired by Linear and Vercel aesthetics. CSS custom properties, Inter + JetBrains Mono typography, layered dark backgrounds. It looks exactly how I want it to look.Everything runs in Docker. The whole stack is up with a single docker compose up -d. Is Portainer Bad? No.I want to be clear: this isn't a takedown of Portainer. It's a great tool and the right choice for a lot of people — especially if you need enterprise features, team access control, or you're managing complex multi-environment setups professionally.But there's real value in building something tailored to your exact needs. Not just the functional value — the learning you get from it, the ownership you feel over the tool, and the fact that you can extend it in any direction you want without waiting for a feature request to be picked up.If you're a developer or sysadmin with a homelab and some free weekends, I'd genuinely recommend trying to build your own tooling at least once. You'll learn more than you expect. Where NEXUS Is NowNEXUS is open source (MIT license) and actively developed. Current versions: NEXUS v1.5.6, Watcher v1.3.0, Pulse v1.2.0.The roadmap includes standalone Security and Notify modules, and a Hub integration layer for centralized multi-tool management with SSO.If you're curious, you can find it on GitHub and Docker Hub under Alvarito1983 / afraguas1983.Feedback, issues, and stars are always welcome. 🙂 Templates let you quickly answer FAQs or store snippets for re-use. as well , this person and/or