Hi Beancount users,
As a contractor working on software projects for my clients, I need to log the hours in the beancount book I spent on the contract job by the end of every day. Usually, my transaction for the hours spent looks like this.
2023-07-03 * "Hours spent on the software development project for client XYZ"
Assets:AccountsReceivable:Contracting:XYZ 4 XYZ.HOUR @ 123 USD
Income:Contracting:XYZ
It's fairly simple, but I must copy and paste it and modify the value every time. Make a git, commit, and push. I always wanted to have a form where I could input the value, click submit, and then generate the entry based on a predefined template. That's why I decided to build the custom-form feature for BeanHub. Later on, I realized people might want to test it locally, and it's really useful for all Beancount users, so I decided to open-source it. It was done for a while. I thought about sharing it with the community here but forgot 😅
The beanhub form CLI tool is open-sourced and available at this repo.
https://github.com/LaunchPlatform/beanhub-cli
The library for generating, validating, and processing the form definition file can be found here
https://github.com/LaunchPlatform/beanhub-forms
They are both under MIT license. You can follow the instructions described in the blog post to run the custom form locally.
https://beanhub.io/blog/2023/10/12/new-open-sourced-beanhub-cli-tools/
I have been using this feature for more than a year, and it saves me a lot of time. Hope you can also find this open-sourced tool useful. Feedback is welcome! 🙌
Best,
Fang-Pen Lin
Hi Fin,
Yes, that's a valid point. We, as software engineers, have so many different ways to achieve the same thing. However, my goal is to bridge the gap between non-technical and less technical users. One of the biggest challenges people face when they try to use plaintext accounting, requiring programming to help automate routines, is one of the biggest obstacles to overcome for many.
With beanhub-forms, one can easily define a form without programming skills. They only need to learn YAML file syntax, Jinja2 template syntax, and the beanhub-forms document schema itself. Well, that's still something to know. However, in the future, I may also provide a graphical user interface for the user to design the form without the need to write any single line of code. If the form is already made, a non-technical user can also create Beancount entries without knowing how to open a terminal and type any command. That's very helpful in some situations, such as if I share the same accounting book with my wife, I can create a form for her to input some common household spending without my help. That's the value of having a nice user interface.
Personally, I really love the way plaintext accounting works, and I think more people should use it. That's why I built those tools to make it easier. Hope that makes sense 😄
Best,
Fang-Pen Lin.