The same distro, two different starting points
Velo's official-image picker offers Ubuntu Server and Ubuntu Desktop side by side, same release, same install source, genuinely different from the moment they boot: Server drops you at a text console with nothing graphical running; Desktop boots into a full windowing session, taskbar and all. Every other distro's Server-shaped install (Debian's netinst, Fedora's minimal path, Rocky's Minimal ISO) follows the same underlying split even where the picker only offers one variant — this post uses Ubuntu specifically because it's the one place you can compare both starting points from the exact same official source.
Headless plus SSH is enough more often than it looks
This surprises people coming from a "desktop first" mental model: a huge share of real development work never actually needs a GUI running inside the guest at all. VS Code Remote-SSH into a headless Linux guest gives you a full graphical editing experience — syntax highlighting, a debugger, extensions — while the guest itself never runs anything beyond an SSH daemon and a shell. The GUI you're looking at is running on the host, in your actual VS Code window; the guest is just where the code and the terminal live. The same is true for most CI/CD work, most server development, and most command-line-driven testing — see the QA/DevOps disposable VM workflow for exactly that pattern in practice.
When you actually need the desktop
The real dividing line is narrower than it feels: you need an actual GUI session inside the guest specifically when the thing you're testing or building is the graphical experience — a desktop application, browser-based visual testing where the rendering itself matters, or anything that needs a real window manager and compositor to behave the way a user's session would. Editing code remotely doesn't need this; verifying how a GUI actually looks and behaves does.
The graphics ceiling is the same either way
Worth knowing before "Desktop" sounds like it buys you more than it does: a Linux guest's graphics are paravirtualized through virtio-gpu regardless of which image you picked — covered in the device inventory post — hardware-accelerated 2D and basic 3D composition, not the real Metal-accelerated pipeline a macOS guest gets. Choosing Desktop gets you a windowing session to work inside; it doesn't change the underlying display device or unlock GPU compute the Server image doesn't have.
The practical default
Start with Server unless you already know you need the GUI — it's the lighter starting point, and remote-editing tools cover the large majority of development work without ever needing a graphical session in the guest at all. Reach for Desktop specifically when the task requires seeing and interacting with a real windowed application inside the VM, not as a general-purpose default.
Related reading: Ubuntu on Apple Silicon, a fully headless GUI editing workflow over SSH, and the graphics device inventory this post builds on. Or download Velo Workspaces and try it yourself.