`accounting` is a server based software to keep track of my budget on all the different accounts I do have. It ensures my money is where I need it and is available when I need it.
It is stronly inspired by [YNAB](https://www.ynab.com/) and uses some of the same principles but in some parts deviates from them.
## Why write an own software?
There is plenty of accounting software out there (including YNAB) which doesn't really fit my use-case. Also after being a happy customer of YNAB for nearly 9 years I've seen many changes implemented into YNAB which didn't really fit my use-case anymore and some of them even broke the ways I was using the software.
This piece of software if my way to ensure I can continue to work the way I want while ditching all the features I don't need. So this is not a clone and probably not a replacement for YNAB to you but for me it is.
## Should I use it?
Well, depends on whether it fits your needs. This software carries a strong API-first approach so my automation can do stuff for me. The interface is in a "first usable version" state and I wouldn't call it ready. Feature-wise this is not ready yet:
- [x] Manage accounts and categories
- [x] Manage a (monthly) budget based on the categories
- [x] Differentiate between budget and tracking accounts
- [x] Have an API to automatically enter transactions, transfer money between accounts & categories
- [x] Can properly calculate based on your transactions how many money you have in which category
- [ ] Have a fancy UI with keyboard-shortcuts and all the cool stuff
So back to your question: Get yourself a copy, start it (the default database is an in-memory SQLite database) and take it for a test-drive. You like it? Put a proper database under it, install it on a server and happy budgeting… You don't like it? No offence taken, just put it into the trash and use something else.
## Will you accept contributions?
In short: Maybe. Longer version: This software started as a system to do **my** budget and furthermost needs to fit my needs. I don't want feature-creep in it, I don't want features I'll never use. If you plan to hack on it: Just create a fork, hack on it, build something cool for yourself. If you think I'd like the changes you made: Lets talk about it but keep in mind this explanation and don't be angry with me when the response is "Nah, I don't think this will fit my version…"!
To really host it, `make build` it, put it on your server and let it run. (It's a binary so probably use systemd to run it and an nginx as proxy in front of it doing auth-stuff…)