pulse
pulse copied to clipboard
like a fitness tracker for your coding sessions
pulse
: like a fitness tracker for code
My vision with this project was to create a personal portfolio website that would update automatically with data from my coding sessions:
It has served as a playground for trying out new technologies, and so far it has been a really fun project!
How it works
This repository includes the foundation of the project:
-
rpc server
-
rpc client
-
nvim plugin
-
cli
I run the server as a daemon. It receives remote procedure calls from neovim
pertaining to events such as the opening of buffers, windows gaining focus, the
initiation of new nvim
processes, etc:
https://github.com/creativecreature/pulse/assets/12787673/c1cc1dcb-47c3-48c4-a694-056e79f186fe
As you can see in the video above, each instance of neovim establishes a new coding session. This leads to the creation of several sessions per day. Every session is stored temporarily on the file system. This is primarily to avoid surpassing any limits set by free database tiers.
I use the CLI to aggregate these temporary sessions by day, week, month, and year. The results are written to permanent storage, enabling me to retrieve and display them on my website.