If you want to keep PDF, JPG, etc. receipts with it, just put them in the same directory and note them in a comment. Additionally, use a VCS that does binaries well. Git does not.
Did you really mean to say "unforgiving"? I.e., "unforgiving" is generally a bad thing. Or did you actually mean that it's quite forgiving?
If you use Ledger the right way, it'll tend to catch stupid typos because the accounts won't balance.
Any tips on that?