For my desktop setup I started maintaining metapackages which constitute the packaged dependencies of the setup.
After a while the list of metapackages started to contain other stuff which had no direct relation to the desktop setup anymore and most desktop setup commits affected unrelated metapackages rather than the desktop setup itself. So I decided to split the git repository up into two repositories.
The repository contains source code for the following packages:
Commandline tools which are needed to handle exotic archive file formats.
Commandline tools I usually want on all my boxes. Its hard dependencies are also suitable for servers.
Packages I usually install on all those machines where I log into locally, i.e. real hardware where I have physical access.
Commandline tools I usually want for playing audio or video files.
Packages I usually want to have installed on boxes where I have local console access like laptops, desktops, etc. In other words, it's not needed on most virtual machines or rented root servers.
Packages which I usually want on all my desktops but which are not needed by my desktop setup.
Emacs modes and other Emacs add-ons I usually want on all boxes where I install GNU Emacs anyway.
Packages which I just install for fun (joke packages, fortune cookies, etc.).
Recommends or suggests games in Debian I like.
GUI tools and applications I usually install if some GNOME dependencies are ok.
Depends on, recommends and suggests packages which help to make joysticks working.
Packages I commonly need on laptops and netbooks. ACPI stuff, resource saving and monitoring stuff, …
Satisfies some of ubuntu-minimal’s annoying hard dependencies to be able to e.g. install a different syslog daemon without removing the ubuntu-minimal metapackage.
Pulls in everything I need on machines I want to have monitored (using Xymon formerly known as Hobbit).
Depends on the LibreOffice and Gnome Office applications I prefer.
Packages I usually need to work on packaging.
Depends on tools I prefer to partition USB sticks or disks, stuff for disaster recovery of disks or for forensic analysis of disks. Usually not needed inside virtual machines.
Packages I usually need to work on Perl modules and scripts.
Taking care that all packages I want to have installed on my servers are installed and those I don't want to be installed, aren't.
This package especially takes care that there's no dbus, policykit, consolekit, networkmanager or systemd installed.
Conflicts with packages I consider a waste of disk space, at least if disk space is sacre. It also pulls in some small packages which help to find local waste of disk-space.
Depends on packages necessary to get a Wacom graphics tablet or a touchscreen working.
Depends on packages I prefer on computers where I want to use TeX or LaTeX.
Text-mode web browsers, I commonly have installed.
Depends on a bunch of (mostly exotic) window managers and desktop environments, I want to have on those computers where occassionally other people log in, too.
Graphical web browsers for X, I commonly have installed.
Everything needed on the Dom0 and all DomUs of the LUGS server "kiva".
Everything needed on all DomUs of the LUGS server "kiva" where normal users can login via SSH.
All those metapackages are usually also available from my APT repository.