
Show HN: Timestrap – Self-hosted online time tracking - overshard
https://github.com/overshard/timestrap
======
overshard
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.

~~~
jefflombardjr
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?

~~~
rukuu001
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 this tool were available, I'd have used it.

~~~
overshard
What you're describing is the exact point of this project!

------
tedmiston
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.

~~~
overshard
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.

~~~
sne11ius
+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

------
zaroth
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?

~~~
tedmiston
A 30-second product demo video would definitely be a nice to have.

------
gnud
This looks nice! I fail to see any use for the dashboard, though - especially
as you can't drill down into the timesheets from the pretty graphs.

I think the quickest, most prominent action should be to start tracking a task
- or change which task is currently tracked.

~~~
overshard
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.

------
beilabs
if anyone wants a nice CLI tool then Timetrap is pretty awesome, been using it
for years.

[https://github.com/samg/timetrap](https://github.com/samg/timetrap)

~~~
patrickdavey
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 :)

------
r3bl
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.

[0] [https://www.rescuetime.com/](https://www.rescuetime.com/)

~~~
SyneRyder
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):

[http://timingapp.com/](http://timingapp.com/)

And on Windows, Mac & Linux, it looks like ManicTime will also store data
locally if you don't use the Server component:

[http://www.manictime.com/](http://www.manictime.com/)

~~~
r3bl
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.

[0] [http://www.manictime.com/linux](http://www.manictime.com/linux)

[1]
[http://www.manictime.com/teams/download](http://www.manictime.com/teams/download)

------
drcross
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.

~~~
overshard
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

~~~
jaggederest
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.

~~~
overshard
Good idea, I've already automated most everything else for testing and pushing
to Heroku. I may as well!

~~~
sycora
Nightmare is great for this:
[https://github.com/segmentio/nightmare](https://github.com/segmentio/nightmare)

------
janvandenbroeke
We also tried to create a super simple time tracking app. We will give it for
free (also biz version) very soon.

[https://tokkapp.com/](https://tokkapp.com/)

~~~
cholantesh
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.

------
vbernat
When I was freelancing, I have looked at many services for online time
tracking. As an Emacs user, I finally settled for org-mode:

\- [http://orgmode.org/manual/Clocking-
commands.html](http://orgmode.org/manual/Clocking-commands.html)

\- [http://orgmode.org/manual/The-clock-
table.html](http://orgmode.org/manual/The-clock-table.html)

------
nodesocket
I have a DevOps consulting company (shameless plug
[https://elasticbyte.net](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?

~~~
overshard
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.

~~~
nodesocket
Right on. You going to charge (hosted solution)? I'd like to support you.

~~~
overshard
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.

~~~
dyu-
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.

------
high5ths
Thanks for sharing! I've used Kimai
[[https://github.com/kimai/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.

~~~
overshard
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.

------
blauditore
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.

~~~
overshard
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.

------
vladsanchez
[https://taskwarrior.org/docs/timewarrior/](https://taskwarrior.org/docs/timewarrior/)

------
peter_retief
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!

------
mycloud
Looks really great! Would love to see a cloudron package for it. Not sure how
hard this would be as there doesn't seem to be a dockerfile in the repo.

------
Kluny
This is great, I've been looking for something just like it. Once invoicing is
included I think I'll try using it, I'll donate as well.

------
welder
Awesome! Now all you need is to import from WakaTime to automatically fill the
Tasks/Entries for me.

------
Odenwaelder
Awesome, exactly what I was looking for for a long time. I'll see if I can
contribute something.

------
lapoozza
Thanks for sharing. Loving it.

------
Xoros
Server error 500. Well too bad then.

~~~
overshard
It resets every 10 minutes or so, it's bound to break with HN hitting it and
doing whatever they want to it.

------
nh2
What service is running the test instance?

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.

~~~
overshard
It's Heroku with HN accessing a single "Free Tier" instance. If you install it
locally or on your own server it is very fast.

