Hello HN, developer here. I started this Friday night because I wanted something much simpler than all the options I was given and something that I could host myself. There is a lot to do on this project still and I wanted to see what the reception was for the start.
Timestrap currently does fully support time tracking and CSV exports for multiple projects and tasks. It has a full REST API and admin panel. Invoicing will come after I get the dashboard more fleshed out, more export options and better security.
I don't know if I speak for other users, but rather than focusing on invoicing, why not tie into Quickbooks? Or similar services. i.e. There's already invoicing software. If the integration between the timesheets is the only differentiator, why rewrite the invoicing part?
This app fits a use case I had a few years ago. I was travelling and doing odd jobs (WordPress tweaks and the like) and needed something I could use to track time and generate an invoice.
QuickBooks & Xero et al were waaay more than I needed or wanted to pay for.
I ended up using the free tier of Toggl, doing a CSV export and generating a butt-ugly invoice from Excel.
If you're interested, I built www.minute7.com which is a time (and expense) tracker that does integrate directly with Intuit's QuickBooks (we're even near the top of their app store listing on apps.intuit.com as the only major player without major funding and a huge sales team :)
I do plan on supporting things like Quickbooks via the export system and creating an actual workflow around that past just an "export" button and then "import".
For my own use case I would like to have one location to enter time then select a range, hit "invoice" and be able to send that to a client with a very simple credit card payment system.
I'm a Front End Web Developer at a startup offering a time tracking app with QuickBooks integration. QuickBooks is a premium feature, but we have a 30 day free trial so you can give it a spin.
Our focus is on construction companies, who love our offline support, but it works great for time keeping for anyone and everyone here dogfoods the app every day.
Hey, I've just deployed it to my little self-hosted stack, I look forward to taking it for a spin this week.
Initial thoughts are that it's easy to deploy, but you need to be more explicit in the doc about what people need to do to create the admin account. People who aren't at least passingly familiar with django will get lost at this step.
The minimalism is great, and the UX seems pretty smooth. I intuitively expected a timesheet selection dropdown on the home and entries pages, but once I made a timesheet and added some tasks to it, I could see why those dropdowns weren't actually needed.
It'd be nice to package all the js files and have the option to serve them from my server, rather than hotload them from the internet every time. It's both more private and kinder on the hosters.
I'm adding additional documentation for creating an initial user now!
I agree with the packaging all JS files comment, for a truly self-hosted solution one should have this option and I plan on doing this for 1.0. Since we use django-compressor it will compress everything down to a single JS file too. Right now for the alpha phase I'm rapidly adding and removing JS libraries so I didn't want to bother with this.
I work with a lot of time tracking data in my job (calculating the R&D tax credit). I like this tool a lot. It's simple, responsive, fast, and covers nearly all the relevant data points without any obfuscating clutter.
There are a couple items we look for that might be worth including in the CSV exports, depending on what kind of scale you want to plan for. Specifically:
1. Project name,
2. Project ID or number,
3. Employee name,
4. Employee ID or number,
5. Employee email,
6. Supervisor name,
7. Supervisor employee ID or number,
8. Supervisor email,
9. Task or activity code, and
10. Task or activity description.
It's important for us to be able to line up time tracking data to W2 data from a payroll system, which is frequently hosted separately with different data standards. So employee numbers (not SSNs obviously) really help when dealing with larger companies where a significant number of employee names may change (e.g. due to marriage) or may be formatted with slight variations (e.g. nicknames instead of full legal), or where the odds of a name collision are high. We also like to see departments, cost centers, legal entities, locations, lines of business, etc. where applicable, but we can usually layer those on from other data sources if we can join on a unique identifier, whether it's at the project, task, or employee level.
If I can get that data in a single CSV export for all employees at a company, I'm like 70% done with the calculation.
And while this sounds like an odd use case, pretty much any profitable company doing software development in the US should be claiming the credit (and actually in pretty much any developed country, because most have a credit that was modeled on the US's). Even smaller shops with only a handful of employees usually see substantial benefit. Having the data formatted like this up front reduces the costs of doing an R&D credit study and dramatically reduces the odds of an adverse adjustment in exam or audit. Especially when the employees have been diligent about recording their time and the associated activity/project/task data. It's also worth noting that this is one area of the tax code that does not seem likely to be affected by tax reform as both the Ryan and Trump plans propose to leave the credit as it is.
Edit: oh and I forgot because this doesn't relate to my work, but having an option for charge codes is nice. So something like [client ID].[project ID]. It will improve interoperability with third-party invoicing tools.
I'll definitely keep this in mind while improving the export part of Timestrap. All of this would be easy to add via a couple extra fields on the admin panel.
This is super nice and much simpler than all of the other software I've been using to cobble together work logging + time tracking + invoicing this past year. After trying Toggl, Harvest, and everything else I totally understand why you built it.
The only changes I'd like to see are: allowing one to log the time work is started (not just the date), a confirmation before deleting data that can't be recovered, and a way to filter the hours charts by day / week / date range.
The time work is started is something I'm debating with myself on. I think I will add start + end date + time since it would help with making a timer persistent across pages/connection issues.
Confirmation is a must, mistakes happen!
Filters/reporting is coming over the next week, also a must, what's the point of time tracking if you can't compile reports of your time.
+1 for start/stop times because that's how I keep my data now. I have been looking for a simple solution like this for quite some time. Also: thank you OP
Not sure if you intend to turn it into a business but with a little polish and the features you described it's simpler / better than several competing paid products on the market today (as you probably noticed).
Are there people interested in following the development of this app? What's the best way to "watch" a project like this come together?
I see some great suggestions in the comments, I thought the idea of automating the screenshots that go into the documentation was kind of interesting. The idea that it's cost effective to automate something like that, and further the idea that if the UI changed the documentation would, in a way, automatically update...
I always think when I first see these types of Shows, I'd really live to see an animated gif walkthrough. Ideally, buttons beneath the walkthrough that are labeled '30 seconds', '3 minutes', '15 minutes'. Or some variation on this theme. Does anyone do product demos this way?
I agree the dashboard is pretty worthless, I made it because I wanted to fiddle around with some Charts. The best thing would be what you're saying is tracking tasks.
Yup, that's what I've been running. Really like it, especially after I made a very simple little "on off" widget to display on my tmux status line. No more forgetting I have a timer running :)
Ah, what I really miss about time tracking software isn't necessarily something where I manually type in what I've been working on, as much as it's something like a self-hosted RescueTime[0].
Instead of manually adding things to it, it allows you to mark certain applications and websites as you doing something productive (for example, if you're running Atom and visiting StackOverflow and GitHub, you're probably doing something productive) and then tracks that via its clients and shows you a nice overview of how much of your time is actually spent on doing something productive.
Now, of course, the fact that RescueTime is centralized and hasn't released the source code of its clients makes me instantly dismiss it as a software I would use, but I would love to find a certain self-hosted solution that does pretty much exactly what RescueTime does.
If you're on the Mac, Timing might be similar to what you're looking for (one of their selling points is that your data is stored locally and never leaves your Mac):
Ah, I'm on Ubuntu, and ManicTime would be an awesome choice, but their Ubuntu version is for tracking only, and requires a server to actually view the reports[0].
Seems like the same thing applies for macOS, so I would call it Windows-only solution in the serverless mode. Alternatively, you could run the server[1] on some always-on Windows machine, pay for the license(s) and use the server under your control to store the data.
Hi, Daniel, developer of Timing here. Thanks for the mention!
FYI, we will be releasing a new version soon, with a completely revamped interface, productivity tracking, easier task creation, better reports, and more.
You can check it out at https://2.timingapp.com
Would it really hurt to include a screenshot of what it's like to use? Sorry for the grouchy comment but we're all busy people, there has to be a modicum of convincing on a programmers part to encourage us to divert us attention to their project.
Some screenshots would be useful but I'm still rapidly developing Timestrap and the interface is getting stuff added to it every few hours so I feel like it'd be a wasted effort on my part right now.
EDIT: Added some screenshots to the bottom of the readme
Automate it! Set up a browser test that screencaps the important pages for the documentation (and checks them for basic errors like 500 status or no text).
In the long run you can diff the images and assert that they haven't changed more than N% from the reference, but for now, it makes evergreen documentation.
I mean, did you expect better from a user named 'drcross'? Also, if you took the time to click through the link you quote yourself, you would see the following, mostly useless message: "If you don't have a user yet create one via the CLI. If you need more users add them via the admin panel."
Moving between days seems to be broken; I moved from April 23rd to 22nd and then tried to go back to the 23rd and didn't work. I couldn't advance beyond that either.
Despite this; great idea and looks beautiful. Seems to fill a bit of a void among task trackers I've used.
I have a DevOps consulting company (shameless plug https://elasticbyte.net) and been on the lookout for a time tracking solution. I've been using AirTable and just adding in hours manually into a table, but it has really been limiting.
How is the reporting in Timestrap? Can a run a query like give me the sum of hours for client Acme Inc from March 23rd to April 23rd?
It has the ability to do this at the API level but not on the interface yet. All the reporting functionality is coming over the course of the next week since that's pretty critical to time tracking.
I don't really have any interest in making money on this project and I feel like a hosted solution defeats the purpose. The best support you could give is writing some issues on GitHub, testing things, helping with documentation, or submitting some features.
Paid feature requests. If the user (like the GP) wants a certain feature and don't want to implement it himself, accepting his offer to pay would benefit both parties.
Thanks for sharing! I've used Kimai [https://github.com/kimai/kimai] for a while, which offers similar functionality. Timestrap is MUCH nicer to look at, though the feature I use the most on Kimai isn't as well-implemented: the big stopwatch that adds entries quickly.
Kimai does handle the stop watch functionality much better than I do right now. This is a huge feature for me personally so I do plan on making it much better.
Kinda off-topic, but the screenshots were (probably) made on Windows 10 while you write that Ubuntu is your primary OS. Do you use Windows for work/coding and Ubuntu for other stuff? Because I do it more or less the other way around.
I'm using a variety of operating systems at the moment. My primary OS is Ubuntu, I happen to be on my home desktop which is used for gaming at the time of these screenshots. (Ubuntu gaming is still mediocre.) I use OS X at my office quite a bit but my primary laptop that I use at home and work is 100% Ubuntu.
I'm fairly OS agnostic and sync all my systems very well and use whatever I'm sitting at.
Huge thanks from me, I been looking to develop something to keep track of my own development hours for invoicing purposes. From early look it seems like you nailed it. Thanks!
It is so slow that I first thought the app was broken, but after 8 seconds TimeToFirstByte after clicking "Add" in the "Tasks" window, my entry finally appeared.
Timestrap currently does fully support time tracking and CSV exports for multiple projects and tasks. It has a full REST API and admin panel. Invoicing will come after I get the dashboard more fleshed out, more export options and better security.