Noureddine RAMDI / Timefall: a Vue and Electron desktop time tracker using Bun and local JSON storage

Created Sat, 23 May 2026 20:41:14 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

antonreshetov/timefall

Timefall is a desktop time tracking application that takes a local-first approach to managing your work hours without relying on cloud services. Built with Vue.js and Electron, it aims to provide freelancers, developers, consultants, and students a straightforward way to track tasks, calculate hourly rates, and review productivity — all while keeping data private by storing it locally in JSON format.

What Timefall does and its technology stack

Timefall delivers an Electron-based desktop app that runs on Windows and macOS. Electron provides the native desktop container, allowing web technologies to power the UI and core logic. The user interface is built with Vue.js, giving it a reactive and component-driven frontend that’s familiar to many modern web developers.

A notable architectural choice is the use of Bun as the build toolchain instead of the more common Node.js/npm setup. Bun is an emerging JavaScript runtime and bundler designed for speed and efficiency, reducing install times and startup overhead compared to Node.js. This choice impacts the development experience and potentially the app’s performance during bundling.

Under the hood, Timefall organizes time entries around tasks and folders, enabling users to group and manage their tracked hours effectively. It supports tracking time per task, calculating earnings based on hourly rates, and grouping entries for better overview. The app also generates reports spanning weeks, months, or years, helping users analyze productivity trends.

Data storage is handled locally in a JSON-based database. This local-first approach means all your time tracking data remains on your machine, eliminating reliance on cloud storage and reducing privacy concerns. The tradeoff is that syncing across devices or backing up data requires manual handling.

Technical strengths and design tradeoffs

Timefall’s use of Electron and Vue.js is a tried-and-true approach to building cross-platform desktop apps with rich UIs. Electron ensures compatibility with major desktop OSes, and Vue provides a clean, modular frontend architecture. The codebase benefits from Vue’s reactive data binding and component system, which likely simplifies UI state management and responsiveness.

Choosing Bun over Node.js/npm for building and running the app is a deliberate tradeoff. Bun offers faster dependency installation and bundling, which can speed up development iterations and startup times. However, Bun is less mature and has a smaller ecosystem compared to Node.js, which may lead to challenges with certain packages or integrations. For users maintaining or extending the app, this means accounting for Bun-specific behaviors and potential compatibility quirks.

The JSON-based local storage is straightforward and transparent, aiding debugging and manual data inspection. However, JSON files can grow large and may become less efficient for very large datasets compared to databases like SQLite. Also, local storage means no built-in sync or cloud backup — users must implement their own backup strategy to avoid data loss.

The app targets freelancers and individuals who want task-based tracking with hourly rate calculations but do not want their data in third-party servers. The architecture matches this goal well but is less suited for teams or collaborative tracking scenarios.

Installation and getting started

Timefall is distributed as ready-to-use applications for Windows and macOS, downloadable from the GitHub Releases page. This eliminates the need for manual builds or complex setup for end users.

For macOS users, a common security restriction may cause an error when opening the app, stating: “Timefall is damaged and can’t be opened. You should move it to the Trash.” To resolve this, run the following command in the Terminal to remove the quarantine attribute:

sudo xattr -r -d com.apple.quarantine /Applications/Timefall.app

For those interested in building or contributing to the project, Bun is required. The repository uses Bun for dependency management and running the build scripts. After installing Bun, install dependencies with:

bun install

This minimal setup reflects the focus on simplicity and local-first use.

Verdict

Timefall offers a solid, privacy-focused desktop time tracking solution built on a modern stack that mixes Electron and Vue with Bun tooling. Its local JSON storage fits individuals who want full control over their data without cloud dependencies. The hourly rate calculations and reporting features cover the typical needs of freelancers and solo professionals.

The Bun-based build system is interesting and may appeal to developers curious about its speed advantages, but it also means the project may encounter ecosystem limitations compared to traditional Node.js stacks.

Overall, Timefall is relevant for anyone looking for a straightforward, open-source, and private time tracker with task-based organization. It’s not designed for team collaboration or cloud sync but shines as a lightweight, local-first tool for personal productivity management.


→ GitHub Repo: antonreshetov/timefall ⭐ 266 · Vue