If it's code that you simply want to organize and document, then an outliner like CherryTree may do the job. You might dedicate one outline node to each query or script. A node can contain embedded code-blocks, with syntax highlighting and editing. Outside of those blocks, you can document the code in ways that you could not effectively do via in-code comments. Nodes can be tagged, by criteria of your choice, for easy searching. The outline would let you organize your material in other ways that make sense to you. Everything is stored in a single SQLite file. To retrieve code, just copy and paste from within the outliner. More likely, it's just the code (and perhaps related files), that you accumulate. If it does not change (much), then a folder tree may be enough. But you will likely want to augment this with some additional tools, as described below. For backup, you may zip up the folder. Windows can even treat a zipfile as if it was a folder, for easy drag and drop. Or use 7zip, to browse, drag, and drop the zipfile. If the files change a bit, over time, then .wim format may be better than .zip format. It archives the folder contents, like zipfiles do, but preserves older snapshots of the folder tree, too. To create/extend the archive, use WimLib. To find and retrieve older versions, I browse the .wim file using 7zip. Storage is extremely compact, because a file's content is stored only once, no matter how many snapshots it's in. If it's code that regularly changes over time, and you need to keep a close eye on the changes within each file, then a Version Control system, such as Git, or the SQLite-based Fossil, may be a better bet. Fossil is vastly simpler, and includes its own note-taking, bug-tracking, and documentation system, if those are of interest to you.