I’ve been a happy user of sql-ledger for many years (I think close to 14). I like that it is browser based so my wife and I can easily use it at any time. Additionally, anyone doing work on my projects can simply enter their time directly. It has been very stable. Perhaps my only gripe is it is a bit fussy to set up (antiquated Perl technology, and requires PostgreSQL – overkill in my opinion for a small business.
This morning I looked at bit at: https://plaintextaccounting.org/
Seems to be a significant movement. The two most popular implementations (ledger and hledger (https://github.com/simonmichael/hledger/graphs/contributors) both seem to be healthy projects.
One thing I need is a place to enter time on projects, and then generate invoices from the time log. Sql-ledger does this fairly well. The hledger timedot format looks interesting – essentially you can enter time in 15m increments as a ‘.’ or as a number of hours:
# on this day, 6h was spent on client work, 1.5h on
# haskell FOSS work, etc.
2016/2/1
inc:client1 .... .... .... .... .... ....
fos:haskell .... ..
biz:research .
2016/2/2
inc:client1 .... ....
biz:research .
2016/2/3
inc:client1 4
fos:hledger 3
biz:research 1
This is very similar to what I already do with the emergent task timer.
So, to translate what I do now to timedot, it might look something like:
The idea is you have a dot filled in for every 15m of the workday. I really like this format as it allows you to make sure all the time for the day was accounted for, and it also shows you where your time is going and where you are wasting time.
With multiple developers on a project, it seems like it might be simple to have a git repo for each project with a single timelog file in it, and developers simply modified the time log and pushed it.
How to generate invoices, track invoice payments, etc – is this all possible in hledger – not sure yet …