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!
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:
Screen.Recording.2024-04-20.at.12.08.35.mov
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.