60 points | by heresjohnny6 天前
As the world has moved to everything online, I've gotten sick and tired of having to create a new account for every single service I might want to use. At the same time, I hate the idea of logging in with an account of one of the big leechers so that they can profile me even better.
I get that there are some things where it makes sense to have a personal account. But a lot of smaller stuff out there really has no excuse for forcing me to create an account - and I'm so annoyed by it that I mostly just don't even bother trying out something I otherwise would.
I assume once that feature is available, account (thus Sign up) would become necessary.
I wish that feature is opt-in, so "No Sign Up" can remain available for those who do not need that feature.
I built https://reframe.canine.sh as a tool for managing dashboards of little apps then set it as my new tab page to quickly access a notepad and kanban board
This is the one I use: https://reframe.canine.sh/czhu12
This actually seems useful enough that I’d consider replacing my pomodoro timer with it
I created a keyboard-based local storage based time and to-do tracker 3 years ago.
I was starting out in web dev and wrote it for my own use but moved on to other stuff - don't think I even wrote any media queries. I think the codebase since, but just remembered I had it deployed on an internal site for testing - hackily removed a few things from it from the compiled JS and put it on Github.
Try it out here: https://trackey-beige.vercel.app/
https://github.com/sateeshsai/trackey (compiled JS from a Svelte 3 codebase I lost to time)
The main feature missing for me (the one I wanted to build first if I ever started) is a dashboard with all (start/pause) buttons with current tasks ready to be clicked. Let's say I'm working on ticket TICK-123 and also "customer care". Then I would love to have a dashboard with a start/pause button for TICK-123, "customer care" and a "new task" one that behaves like the "Start stopwatch" you have. That way start/pause is one click away and tracking time is less in the way of what I'm currently doing.
I preferably don’t want to include projects/folders/tickets, this is what I found cumbersome to deal with in other trackers.
Some suggestions:
- Have the option to round the times when reporting (for example, at my work we log in 15m increments).
- Have the option to see the combined total grouped by description/tag, e.g. if I'm working on a ticket ABC-123 and I log multiple entries throughout the day, it would be nice to see the total time spent on the ticket without having to manually calculate.
- It could also be useful to add a button to copy the description/tags, for example if you needed to transfer your times to an internal system.
--
Time entries
--
Ticket 123 - 0.5hrs
Stand up - 0.25hrs
Ticket 123 - 1.25hrs
--
Total time
--
Ticket 123 - 1.75hrs
Stand up - 0.25hrs
I guess you could achieve this with tags but you would potentially end up with lots of tags to manage!
The "Personal Time" option subsequently merges the overlapping hours so that on Statistics, I'm looking at time spent in real life (as a person), while still being able to zoom in on specifically tagged items.
Unfortunately for me the website is very slow due to the animations. When I hover a button it takes 1 second before the background color changes.
I love this approach of local-first webapp, with optional sync afterwards. I've been working on a journaling/note-taking app with a similar approach, but finishing pet projects on limited free time is hard.
Could you share a bit more about the stack and your experience building it? What was challenging?
I'm using Angular (yes, really!), and some date-fns utils for the time-related logic. Other than that, it's all custom except for the Catalyst UI library and Frappe charts. The hardest thing to solve was the event-driven foundation (which I'll use for sync support later).
Initially, I started out with Automerge/Yjs but figured that simple event sourcing would be good enough given there's no collaborative/concurrent use case. The benefit of that is that I can actually explain the logic. Not saying those projects lack documentation (they don't), I'm just not comfortable shipping a CRDT that I can't explain e2e. Might change once I have time to dive in properly.
How about the database? You're just using IndexedDB for the persistence? How was the experience of working with it?
[1] https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_A...