Use files when possible - I use a combination of:
- filesystem hierarchy (max 3-4 levels deep, I can share the general structure if needed)
- markdown notes for wiki-like content or notes (either versioned in git - so also accessible from my Gitea instance, or under the Nextcloud
Notes/
directory, so also accessible from the Nextcloud Notes app) - software mirrors either through a mirroring script or using Gitea's mirroring feature
- Shaarli for bookmarks and wiki-like content, which get processed every day by a script that archives content to local files (mostly audio/video for now, I'm still writing the page archiving part, archivebox is too bloated for my needs and is missing critical features such as ad blocking)
All these components are linked in some way or another (e.g. all media automatically goes to the media directory of a jellyfin instance)