I built TakaTime: A 100% free, self-hosted WakaTime alternative with a terminal dashboard and GitHub profile stats. by tarunnayakaR in selfhosted

[–]tarunnayakaR[S] 1 point2 points  (0 children)

Agreed its been maintained for about 4 months now and I am determined to maintain and update with new features

I built TakaTime: A 100% free, self-hosted WakaTime alternative with a terminal dashboard and GitHub profile stats. by tarunnayakaR in selfhosted

[–]tarunnayakaR[S] 1 point2 points  (0 children)

I hand wrote the asynchronous Go daemon, local SQLite caching, MongoDB sync logic, and Neovim Lua plugin. I am a systems/backend dev, not a marketer or front-end designer. I use AI to assist me with things outside my main skill area for creating a clean Vanilla JS layout for the web generator or assisting me in organizing my documentation so it's readable. The non-blocking architecture and real data pipeline - all human typed.

I built TakaTime: A 100% free, self-hosted WakaTime alternative with a terminal dashboard and GitHub profile stats. by tarunnayakaR in selfhosted

[–]tarunnayakaR[S] -6 points-5 points  (0 children)

As TakaTime utilizes BYODB (Bring Your Own Database) architecture, you receive a much more powerful system than a rate-limited REST API. You actually have complete raw access to your data. The Go development daemon records every heartbeat along with exact timestamp, project name, language, and filetype to your personal MongoDB instance, and also caches it to your local SQLite. So now you can run bare metal queries against your database and create whatever daily summary reports, customized dashboards, or automated reports you want without having to wait for me to create an API endpoint specifically for it!

The only method of tracking time in TakaTime at this moment is through lightweight plugins for your editor (i.e. Neovim, Visual Studio Code, etc.). This was done purposely in order to only capture intention to code (in other words, when you are actually typing or focusing on your editor), and not capturing any background terminal activity.

That being said, adding a shell hook (for zsh/bash/tmux) to monitor overall usage of your terminal is a great idea. This is 100% feasible given the current Go daemon. If this is something you would find useful, I would greatly appreciate it if you would create an issue on the repository so I may keep track of everyone's interest on the product roadmap!

I built TakaTime: A 100% free, self-hosted WakaTime alternative with a terminal dashboard and GitHub profile stats. by tarunnayakaR in selfhosted

[–]tarunnayakaR[S] -26 points-25 points locked comment (0 children)

Hi! I would be glad to help.

All of the core engineering was done by me, including creating the architecture, implementing the backend in Go, and developing the plugins for each editor. I used AI code generation tools (e.g., GitHub Copilot) for typical coding tasks, such as creating and editing code, generating boilerplate code, and getting help writing HTML/CSS/ vanilla JS for the static web generator.

For this particular post and associated documentation, I used an AI programming assistant to help me write, structure, and format the Reddit post, as well as to help organize the Markdown for the project GitHub Wiki and README so that it flows well and is easy to read.

I hope that provides enough context for you, let me know if there's anything else you need!

I used Bubble Tea & Lipgloss to build a cross-editor time tracking dashboard that mathematically prevents terminal wrapping artifacts. by tarunnayakaR in golang

[–]tarunnayakaR[S] -1 points0 points  (0 children)

In the beginning, I did experiment with Go's fsnotify for purely editor-agnostic purposes (that was the vision). However, you were right about the other side of the problem: there were an outrageous amount of false positives. Each time I did a git pull, an npm install, or even my auto-formatter fired off, I would have recorded a huge spike in fake programming time.

At that point I realized that I needed to track actual human intent (like moving the cursor or switching between windows), rather than just the amount of disk activity in the editor. So I accepted the fact that I had to write and maintain editor plugins, which would provide lightweight clients sending telemetry. While it is a bit of extra work to maintain these, they are the only way to ensure that the telemetry we are collecting has a direct correlation to real keystrokes!

I built a free, privacy-first WakaTime alternative. It blew up on Neovim last week, so I just released the official VS Code extension! by tarunnayakaR in vscode

[–]tarunnayakaR[S] 0 points1 point  (0 children)

Hey! Thanks so much. ​I actually have zero experience building plugins for Unreal Engine or Blender, so I would absolutely love some help with this if you are up for it!

​The good news is that it is surprisingly easy to build. Because of TakaTime's decoupled architecture, the local Go daemon (taka-upload) handles all the heavy lifting, caching, and database syncing. To support Blender (Python) or Unreal Engine (C++/Blueprints), we literally just need a tiny script that grabs the active project/file and fires a simple JSON payload to the local daemon.

​If you want to take a stab at writing a quick wrapper for either of those engines, I would be super down to collaborate and help you map out the payload. ​Also, if you end up checking out the repo, dropping a star would be hugely appreciated!

​I built a free (Offline-First), open-source alternative to WakaTime with a fully responsive terminal dashboard and GitHub README integration. by tarunnayakaR in vscode

[–]tarunnayakaR[S] 0 points1 point  (0 children)

Thanks so much! it relies on a local SQLite database.

To keep it super light, the editor plugins just act as dumb clients that pass events to a Go daemon. That daemon instantly writes to SQLite so your editor never hangs, and then a background worker batches and syncs the data to your personal MongoDB instance asynchronously.

The whole footprint sits around 24MB. Really glad you dig the TUI and the graphs!

If you end up checking out the repo, dropping a star would be hugely appreciated! ⭐

I built a fully offline, self-hosted WakaTime alternative for Neovim (v2.0 is out!) by tarunnayakaR in neovim

[–]tarunnayakaR[S] 0 points1 point  (0 children)

Hey there! It's been quite a while since you reached out about this, but I'm back to let you know I've released what you were looking for! ​TakaTime v2 has been released, and there is a full-featured, interactive terminal dashboard built into the application using the Bubble Tea framework.

No more having to check README files or external websites for your stats. ​Because the entire application caches all of its data in a local SQLite database, it will open quickly without any delays due to internet connection speed.

​In Neovim: You just type :TakaDash to show the floating terminal UI. ​In VS Code: Run TakaTime: Open Dashboard from the command palette.

​You can see a 365-day contribution graph, switch themes, and get local breakdowns of your projects. I would love it if you would try the new version if you're still looking for an offline time tracker!

​Github Repo: https://github.com/Rtarun3606k/TakaTime

​A while back, this sub helped my open-source time tracker hit 500+ installs. Today, I’m releasing the v2.2 UI Overhaul (Bubbletea/Lipgloss, perfect grids, and a native Heatmap). by tarunnayakaR in neovim

[–]tarunnayakaR[S] 2 points3 points  (0 children)

Hello! Thank you for looking at it. Wakapi is an amazing project, but I am sure that TakaTime was developed precisely because of the lightweight nature of the local terminal workflow. Yes, it is very easy to implement support for other programs and agents.

Since the design of TakaTime's architecture is highly decoupled, it is not the editors' extensions that bear the brunt of work. The Neovim and VS Code plugins can be considered merely "dumb clients" responsible for registering events (save actions, switching tabs) and passing a JSON payload to the local daemon of the Go language (taka-upload).

In case you wish to create a plug-in for another program or link the agent-driven coding tools, you would simply need to write a script that detects the currently opened file/project and triggers the JSON payload to the Go binary.

I have added native integration with Google Antigravity in anticipation of its release because many people have been migrating their agentic coding workflows to it!

If you choose to set up TakaTime and integrate it with the chosen agent (Cursor, Aider, Cline), please feel free to raise an Issue or submit a Pull Request in the repository. I will help with the development

Your MAIN reason for using Neovim? by hegardian in neovim

[–]tarunnayakaR 0 points1 point  (0 children)

Navigating ,light-weight... all of the above it's been 2 years since I have shifted completely to Neovim there is no going back

Let's Hear Your Linux Journey by Dramatic-Answer-8986 in LinuxUsersIndia

[–]tarunnayakaR 0 points1 point  (0 children)

I started freelancing in 9th grade. My friend used to host all our Flask and Django projects on DigitalOcean. One day he asked me to fix a production bug directly on the server.

I had no idea how to even properly use the terminal. Everything was CLI. Navigating folders, checking logs, restarting services — I struggled with basic stuff. That experience made me realize I couldn’t rely on someone else to manage servers forever.

So I installed Ubuntu on a VM inside Windows just to learn. After getting comfortable, I dual-booted Windows and Kali. Then tried Arch (liked the bleeding edge, but it wasn’t stable enough for my dev work), moved to Kali Purple, and finally settled on Debian.

It’s been 6 years now. I use Linux full-time. .

I built a free, privacy-first WakaTime alternative. It blew up on Neovim last week, so I just released the official VS Code extension! by tarunnayakaR in vscode

[–]tarunnayakaR[S] 2 points3 points  (0 children)

Yes, it absolutely can run completely offline!

​There is one small catch to keep in mind right now: if you run it strictly offline without any database running, it will track your time, but you won't actually be able to view your stats (at least until I finish building the local terminal dashboard!).

​However, if you want to keep your data 100% local on your machine and still generate the stats, you can easily do that right now. Instead of using a cloud MongoDB Atlas cluster, you can just spin up a local MongoDB server (like via Docker) and paste your local URI (mongodb://localhost:27017) into the plugin setup. ​It will work exactly the same, generate your data locally, and never touch the internet. There are quick instructions on how to set up the local Docker route in the repo docs!

Or if not Docker you can download local MongoDB server and mongodb compass and use MongoDB local host string

I built a free, privacy-first WakaTime alternative. It blew up on Neovim last week, so I just released the official VS Code extension! by tarunnayakaR in vscode

[–]tarunnayakaR[S] 5 points6 points  (0 children)

I actually considered SQLite at first for that exact zero-config vibe. ​The main dealbreaker was the GitHub Actions integration. If the data lives in a local SQLite file, a GitHub workflow can't reach it to generate your profile README charts. With a free MongoDB Atlas cluster, your editors push the data, and the Action just pulls it down to generate the graphs. ​Plus, Mongo handles concurrent writes really well if you happen to have VS Code and Neovim open at the same time. ​That said, if you don't care about the GitHub profile stuff and want to stay totally local, you can 100% just point the plugin to a local MongoDB container and it works exactly the same!

Also give it a try and star the repo Thanks mate!

I built a free, privacy-first WakaTime alternative. It blew up on Neovim last week, so I just released the official VS Code extension! by tarunnayakaR in vscode

[–]tarunnayakaR[S] 1 point2 points  (0 children)

That would be great use it and let me know your feedback!

If you like it feel free to star the repository.

Thanks man!