HNHacker News
TopNewBestAskShowJobs

hughjeremy

34 karma · joined July 20, 2018

Creator of https://amatino.io
submissionscomments
hughjeremy··on Show HN: Amatino – A double-entry accounting API
Nice, thank you so much for those examples, fiatjaf! I actually already had a 'getting started' page (https://amatino.io/articles/getting-started) but it is nowhere near as good as those ones you've linked. Plus it obviously is not easy enough to discover! I'll review those examples and try to lift Amatino up to their standards.

PS - Strike's page is so nice! Hnnnggg. Love the little diagram.

hughjeremy··on Show HN: Amatino – A double-entry accounting API
Oh! I see, I apologise, I may have misinterpreted your question. Amatino would be applicable to someone who is building a project that needs double-entry bookkeeping to function. For example, they might be a fintech startup building an early invoice payment trading platform. Rather than building their own double-entry layer, they could leverage Amatino.

If double-entry accounting only exists in your project insofar as you need to account for your own business, then, as you say, Amatino would probably be an excessive solution creating unnecessary work.

Aside, on the topic of exchange rates - Amatino has built in daily exchange rates between each of 36 major currencies (You can also feed it your own, if you want more resolution / different units of account). It also automagically computes unrealised gains and losses.

hughjeremy··on Show HN: Amatino – A double-entry accounting API
I humbly disagree, but very much appreciate you taking the time to critique, whatsstolat! Please allow me to present a counter argument for you to consider...

In my opinion, ledger entries are the hardest part of accounting. Invoices, etc, are all supersets of double-entry accounting, and can be reduced to collections of entries if the underlying double-entry system is sufficiently robust, generic, and and capable.

Such a system should be able to, for example, recursively sum entire account trees, while transparently translating (instantly) across heterogeneous units of account (e.g. stocks, currencies, cryptos, intangibles), and do all that on any device, on any platform, at any time, anywhere on Earth, on demand.

I know this sounds crazy - Sometimes I think I am crazy! Across the world, between companies, and even within Big4 accounting firms, there are infinite ways of constructing an 'invoice' or a 'credit note'. Everyone has their preferred way, none being right or wrong.

Amatino aims to sit below that level - Allowing developers to create their accounting system their way. No compromises.

Again, I really appreciate you looking, even if you think Amatino isn't a worthwhile project. Pondering this reply was in itself a very valuable exercise for me, so thank you for taking the time to comment!

hughjeremy··on Show HN: Amatino – A double-entry accounting API
You put it better than I can, voidmain0001! I've so often been frustrated by being unable to extend an accounting system to suit my needs.
hughjeremy··on Show HN: Amatino – A double-entry accounting API
voidmain0001 probably put it better than I can! To add to some more cents (pardon the pun): Amatino is aimed at a lower-level of the problem than reporting, GUIs, and such. Amatino provides capabilities far in excess of a self-rolled database, and allows developers to implement their wildest GUI / reporting dreams on top.

More time spent developing awesome applications, less time spent (for example) developing logic to recursively sum accounts in multiple currencies.

hughjeremy··on Show HN: Amatino – A double-entry accounting API
deedubaya, I couldn't agree more. Some of the accounting implementations I have come across have made me want to barf. It is my dream that Amatino will make it easy for businesses to develop robust, performant, flexible accounting systems.
hughjeremy··on Show HN: Amatino – A double-entry accounting API
Ahhh! thieving_magpie your comment made me so happy! I'd be thrilled to help you tinker with Amatino, if you ever do proceed to give it a go.

I'm so glad you find the pricing attractive. I've devoted a lot of effort building the system in a cost effective way, so I can keep the price down.

hughjeremy··on Show HN: Amatino – A double-entry accounting API
Thanks for that feedback elcritch! I think you are very right. I've often wondered if I should devote time to developing a licensed solution. I will ponder it more now...
hughjeremy··on Show HN: Amatino – A double-entry accounting API
rcdwealth, it might sound crazy, but on a personal level I agree with you! Amatino was born out of my own frustrations with existing "cloud accounting" and the implications for my data.

I am a die-hard GnuCash fanatic!

In the end, I came to the conclusion that many people want to store their data online. Whether it is their intimate photos, medical history, or bank statement. Yet some services do not meet this trust with discretion. That angers me, upsets me, and gets me fired up to write good code.

I want to give those people a way to store their financial data that is up to my paranoid privacy standards. Privacy has informed a lot of design decisions in Amatino, often to the detriment of performance or features.

I'm starting to blab on - I'd love to continue this thread though! Privacy is issue #1 for me and I would happily chat about it all day.

hughjeremy··on Show HN: Amatino – A double-entry accounting API
Hi kowdermeister! Thanks for taking a peek at Amatino, I'm super excited to answer your question, I'll try to keep it brief...

In my fantasy land, Amatino has replaced your 'sales_history' table completely, from an accounting perspective. As your business grows and your needs grow more complex, you would make calls to Amatino rather than developing new internal solutions.

For example, perhaps your sales_history table is implicitly denominated in Euros, but you expand into the US and now need to store U.S. Dollar amounts. In Amatino, you could instantly create a USD revenue account, and proceed to view a combined balance of all revenue accounts.

The time you would have spent dealing with manipulating double-entry data instead goes into making your product more awesome.

Obviously Amatino has a long way to go to earn that level of trust!

hughjeremy··on Show HN: Amatino – A double-entry accounting API
Thank you for taking the time to look, icebraining! I'll try to answer briefly and not get too excited!

I see Amatino used as the unsexy, unsung, unseen double-entry data layer for other apps. Perhaps those apps are fancy GUI accounting apps like Xero, perhaps they are in-house bookkeeping systems, and so on.

Amatino saves the developers of such apps from having to develop their own double-entry systems, and provides them with a rich feature-set to draw on.

hughjeremy··on Show HN: Amatino – A double-entry accounting API
Thanks for taking a look at Amatino, sciurus, I'm so excited that you got so far as the roadmap!

In "MVP" testing, I found that one of the critical problems with the service was latency. Amatino was used as the data layer for a GUI accounting application. When the service was running ~200ms+ away, the application spent too much time doing 'loading spinners' and the user experience began to suffer.

This experience led me to adopt a distributed design, that allows Amatino to sit as close as possible to end users.

Fortunately, deploying to a new region is as simple as running one script, the process is fully automated. So I don't have to worry about trading time on investing in other areas of the product.

hughjeremy··on Show HN: Amatino – A double-entry accounting API
Hi WorldMaker, thanks so much for taking a look at Amatino. It's very humbling to know that someone with your experience has critiqued my work!
hughjeremy··on Show HN: Amatino – A double-entry accounting API
Wow, RileyJames, thanks so much for taking a look. It's exciting to hear your thoughts as a Xero alumni. Xero is a big inspiration for me, and I love that it has made accounting easier for so many businesses.

'Independent and agnostic from the accounting backend / says' is exactly what I'm going for, and I'm really excited to hear that you see some value in the concept. I'll take your advice to heart!

hughjeremy··on Show HN: Amatino – A double-entry accounting API
Thanks for taking a look planetjones! I'll try to give a worthy answer:

Amatino is trying to sit at a lower-level of the value chain than reporting, GUIs, and other layers. Amatino aims to enable others to create amazing reporting and GUIs, while charging them an extremely low price to do so.

hughjeremy··on Show HN: Amatino – A double-entry accounting API
If you used Amatino as the double-entry layer of your product then yes, Amatino would be storing your customer's financial data. My aim is to make Amatino a very low-level service, akin to an Amazon S3 for double-entry data, wherein people are comfortable building products on top of it. (A very tough goal, I know!)
hughjeremy··on Show HN: Amatino – A double-entry accounting API
Thanks fiatjaf! The documentation definitely needs work. And worse, it only documents HTTP interactions, not the rapidly expanding client libraries! Do you have any examples of documentation you really like? I'm a big fan of Stripe's but I'm not sure if I can replicate that level of quality quickly.
hughjeremy··on Show HN: Amatino – A double-entry accounting API
Exactly :) - Each Transaction can have (arbitrary limit) 100 entries in Amatino.
hughjeremy··on Show HN: Amatino – A double-entry accounting API
Hi everyone - I apologise for linking directly to the Amatino blog, instead of the Amatino site itself (https://amatino.io). I deleted my initial Show HN submission, having thought I posted in the wrong place, and found I could not resubmit the same URL.

The blog is probably a good place to start anyway, as it shows real development rather than my marketing-speak!