156 karma · joined February 16, 2017
Agree! Back in 2005, I was involved in a project to build a web front end as a replacement for the 'green screen' IBM terminal UI connecting to AS400 (IIRC). All users hated the web frontend with passion, and to this day, I do not see web tech that could compete in terms of data entry speed, responsiveness, and productivity. I still think about this a lot when building stuff these days. I'm hoping one day I'll find an excuse to try textualize.io or something like this for the next project :)
[1] https://stackoverflow.com/questions/75526234/how-can-i-use-n...
Algolia Pros:
* very nice UI/dashboard, stats, lots of options, flexible
* documentation is nice, 'onboarding' was not an issue
* it worked reliably most of the time
Cons:
* lock-in/proprietary. Think twice if you want to base your business on it.
* you have trust them with very sensitive customers data
* it is expensive. We reduced costs from $800/month to 40$/month by moving to self-hosted open source solution with same level/quality of customer experience.
* guys at Algolia like to rewrite client libraries and make them completely backwards incompatible. Good luck rewriting almost everything.
* support is incompetent and honestly it was useless in our case. I don't want to share details here in public as lots of people were involved in the case, but their support is disaster and for us that was major reason to migrate away. We had major issues for 2 weeks and in the end had to debug&fix problem in their client library by our developer. Long story, but that one was disaster.
In short, it wasn't extremely horrible experience overall, product is nice in general, but elasticsearch is very very good and Algolia just couldn't justify price tag, sorry.
>instead of always blindly returning an error, one could wrap them in higher level errors and build a sort of error trace
Isn't that basically just reinventing exceptions, sort-of ?
I'm considering learning go but amount of 'return err' and 'return nil, 0, err' is instant turn-off. Is this best-practice error handling in go ? Thanks !