Old projects pile up.
Half-finished Hugo sites, dead scripts, configs for services you no longer run.
Left unchecked, they clutter your mono-repo or backup until you can’t tell what’s live and what’s archaeological.
Why Archive Instead of Delete
Deletion feels clean but erases context.
Future you might need:
- A config snippet to reuse
- Historical content for reference
- Evidence of why you made a choice
Archiving keeps the history without pretending it’s still active.
Clear the Decks
Start by identifying what’s truly dead:
- Services decommissioned with no intent to revive
- Projects frozen for years with no updates
- Experiments replaced by something else
Don’t let zombie projects sit in main
. Decide what’s live and what’s legacy.
How to Archive Cleanly
Make an archive/
directory or a separate repo:
- Move decommissioned projects there with a README describing what it was and when you stopped using it
- Tag the final working commit in version control before archiving
- Strip secrets or credentials if they linger in the history
The goal: retrievable but clearly marked as inactive.
Version and Freeze
Once archived:
- Lock dependencies and note version numbers
- Add notes on how to revive (if possible)
- Mark the archive read-only in your mental model and tooling
The key is context, so future you doesn’t spend hours figuring out “what was this for?”.
Backup the Archive
Archived doesn’t mean disposable.
Back it up like anything else.
Losing old work feels trivial until you need a piece of it.
Reduce Live Scope
Archiving is house-keeping.
It keeps your active stack lean and your history legible.
The best systems are those you can understand under stress.
An archive done properly makes the past a resource, not a burden.