← home page

Daytracer.app

Visit Daytracer.app to learn more, see demo video and download the app.

This idea started after my dissatisfaction from trying multiple paid time tracking software; I always felt like the competition had magical aggregations which resulted in inaccurte total times compared to when I tracked it manually. And as a freelancer, time tracking and invoicing were the most time consuming parts of the job, but was essential to getting paid.

So I built Daytracer since I can trust its time tracking without any odd aggregations, and to streamline my task logging process. In the future it will be able to generate PDF invoices to send to clients.

I've been working on this desktop app for about a year (April 2022 to March 2023). I built the first prototype over a weekend which was a simple electron app that stored app usage as timestamps into a json file. Over time it grew into a calendar weekly view with projects for time assignment.

Tech stack

Electron App node process (part 1)
  • Node.jsfor creating log txt files for debugging
  • Electron with Electron-Builderfor packaging into an installer and handling updates
  • LowDBfor storing local data like auth tokens, settings in a JSON file
  • Pocketbase DB in Electronfor storing data in a relational way (SQLite) like time_spent records, project_time records by device and user
Electron App view (part 2)
  • React.jsfor creating an interactive UI
  • Styled Componentsfor creating CSS styles in the same file as the react components for better developer experience
  • React Contextfor shared global state such as AuthUser, Projects, TimeSpent
Cloud Infrastructure (part 3)
  • AWS S3 bucketsfor storing each version release used for downloading and updating desktop application
  • Pocketbase DB in EC2for storing user data in the cloud to allow for syncing across multiple devices
  • AWS EC2 Instance + EBSfor hosting cloud Pocketbase server and its saved in the Elastic Block Storage
  • Pocketbase hosted on EC2 can only scale vertically, but I went with this solution for now because its simple and makes for a great dev experience as I can run the same cloud env locally on my computer. This simple architecture makes for quick feature iterations which is the project's current priority.

Some old screenshots

Screenshot from April 20 2022
First prototype (April 20 2022)
Screenshot from July 9 2022
Weekly Calendar view showing time spent (July 9 2022)
Screenshot from March 16 2023
Weekly Calendar view with project time and time spent from multiple devices (March 16 2023)
← home page