The advantage being that you can always stick a random formula in for whatever you want to find out right now and you didnt need before.
It wont generate your invoices But Î find that a minor problem. How many customers do you invoice per month anyway?
I've written a Python script to ease my everyday (and monthly) interactions with it like excel report for my employer https://github.com/nazarewk-iac/nix-configs/blob/main/packag...
The developer was quick to reply to questions about the software and how to take advantage of all the options.
I don't know whether it was still supported but I found it incredibly useful after trying several others (2010). It is installed locally and you control it but the best thing about it (is/was) that you buy it once and use it forever. No subscription. Fuck SaaS.
I just checked and...
Check it out, it seems to be an ongoing business:
Best of all, it is only $29.99. When I bought my version back in the day, the Pro version was $79.99. That was a bargain then considering all the useful features and value delivered to me as I ran my consulting work.
I used the screenshots and activity tracker to bill my clients to the minute. LOL. Near zero uncompensated time. Since I did so much remote work my billing started at the login prompt and ended at the logout prompt.
Props to the developers and maintainers of this excellent software!
If all you need is time tracking, Kimai2 and several others will do the job just fine. But I've found in my line of work that it's useful to be able to produce formal quotes and invoices for tracking purposes. Ninja lets you do all of that, no extensions or modules required, and all of the components are integrated with each other (quotes can be converted to invoices, projects, or both, invoicing can be done by task or by project, expenses can be included in invoices, etc.) and it also features a very nice automated emailing system for client invoice/quote notifications and even a guest frontend for them to log into.
So all in all, I've found InvoiceNinja to be extremely useful and can't recommend it enough.
awesome-selfhosted lists 4 self-hosted systems: https://github.com/awesome-selfhosted/awesome-selfhosted#tim...
(ActivityWatch, Kimai, TimeTagger, Traggo)
Then I moved to GnuCash invoices, where each line item was rough notes on what I was working on that day, updated throughout the day. I modified one of the invoice-printing scripts to hide the notes, showing only hours and dollars for each day. Then GnuCash's normal accounts-receivable functionality. For periodic reports on what I'd done, I looked at the daily notes for a reminder of everything I did, and quickly summarized to higher-level paragraph, which got emailed. (GnuCash for invoicing alone wasn't worthwhile for my very simple needs that could've been handled with the standalone script, but the AR functionality was actually useful for reconciling payments and making sure no invoice was missed by client, and it also put this billable hours together in one place with my other financial transaction data, to give me an up-to-date picture of the whole thing.)
A tip that applies to whatever method you use: since a consulting invoice represents 4-5 figures of revenue for work already completed, this might be some of your most valuable data, and it's changing daily, so have good backups. I wasn't too confident in my data backups, so I always kept a printed invoice-in-progress on my printer. (My custom invoice formatting script detected from GnuCash data whether or not the invoice was in-progress, and marked it appropriately.)
That's my biggest issue. I work in a chaotic way.
It's easy to install and very pleasant to use for tracking time.
Entries have an "exported" flag to mark if you've already billed for a certain hour or not. You could also generate invoices directly from Kimai but I'm not using that feature because I'm creating my invoices in another program.
This makes it great for consultants, i.e. people working for multiple clients every day. You can focus on making your clients happy, and at the end of the day (or week, or month), still accurately assign time spent on each project.
ManicTime:
- Takes a screenshot every X seconds,
- Records window titles, document paths, urls,
- Records phone call metadata, phone location, foreground phone app (Android only).
ManicTime has a very intuitive zoomable timeline interface to assign screenshots and other recorded activity to projects. Everything is stored offline. If you want, a free to use self-hosted server ManicTime server helps with backup and multi-device synchronisation.ManicTime works best on Windows and with Android, although an OS X client exists.
Pricing: 67 USD for a one year license (so: no subscription that holds your data hostage). ManicTime is not free, but knowing what you did and when (down to the minute) gives it a quick ROI.
https://play.google.com/store/apps/details?id=com.dynamicg.t...
There's a feature limited free version. Lots of options to track times, jobs, breaks, options for how to deal with day roll over, etc. Unfortunatly Google forced them to break/disable the location tracking feature (despite that it was only doing using the information on-device) - which was super handy to 'clock in/clock out' when arriving at a site.. There's no server, but several backup options to some services or on-device storage.
Not associated, but a big fan. Console based, so easily scriptable. Use it not for consulting but time tracking between projects.
What is great about is that it just polls you every n minutes (based on your preferences), and then you just: Press the 'V' button (if you are working on the same as before – our Shift+Ctrl+S) OR Write in the new task that you are working on OR Select an earlier task from a dropdown menu. Time is then automatically added to the task chosen. Then you can just see the total of time spent on each task or export the data to CSV, JSON etc.
Not affiliated in any way, but has been working great for me.
In this thread, I'm seeing a lot of cheaper/discount alternatives, but an imperative piece of timesheets is trust. When you send the timesheet to the client, they should trust the results, and IMO the bigger brands are just better at providing that level of trust.
In comparison to quickbooks and the other huge names, Bonsai is super cheap, lightweight, and pretty much easier to use. Could not recommend it enough.
I paste the data from the email into a new copy of the invoice template and it mostly does everything I need. Then I download it as a PDF and send it.
I invoice two to four companies per month. Takes me less than 1/2 hour usually.
But I came here to find out if there was a nice self-hosted alternative.
https://github.com/pstaender/punched
To let it sync with other computers I let it store the files in nextcoloud (they are only plain text files). There is just basic functionality, but you can also set different hour rates per project and let it show the total sum of hours for a project.
At the end of the day I have a candybar of time with titles of open window titles. Over the years I have added a lot of auto-tag rules and I just need to fill in a few gaps. It can do screenshots but I have that turned off since the window titles are sufficient for me.
The time I spent writing this will be tagged as "admin - not productive"
https://old.reddit.com/r/selfhosted/search?q=time+tracking&r...
CLI TUI, just a list of tasks, track time across them or manually add the time. Backing is a yaml file, so you can adjust if needed.
Runs anywhere you can use Go to compile to.
Track time on different tasks, invoice later on.
Edit: Mobile App online available with paid subscription.
* spreadsheet
if you are able to add (small) numbers all by yourself
* pen & paper
* a text-file
and some ideas - i never used this, but i think it has to be simple
* CSV
* JSON
with a small script to calculate the SUMs/generate the result - eg. awk, perl, python, javascript, php ... whatever floats your boat scriptlanguage-wise ;))
or - lets start some rants ;)
* XML
with an XSLT-transformation ;))
just my 0.02€
Otherwise Emacs and org-mode is handy as well, if you are an Emacs user.