
Show HN: A crowd-sourced company library (Slack bot) - PurpleMonkey
https://www.booklyapp.com/
======
PurpleMonkey
Creator here. I built Bookly to solve my own problem. I work as an engineer in
a start-up with some really driven people with a passion for reading and self-
improvement and entrepreneurship. We were constantly recommending and lending
books to each other but there was no easy way to keep track of who owned which
book, which books we loaned to others and which books were available to
borrow. I was originally just going to create a Slack channel but thought it
would get messy and hard to find things, and so Bookly was born.

The app is built in NodeJS and took me 4 months to build, the last month was
mainly getting the website, assets and copy ready. It uses Firestore as a DB
which is now my goto solution for getting backend up and running quickly
(shortcomings just far outweigh everything else because of familiarity and
speed).

I originally used just cloud functions for the Slack API web hook calls but
they absolutely SUCK for Slack bots - Do. Not. Use. Them! Slack has a 3 second
response timeout for web hooks and on a cold start I found it constantly
timing out. Great if you have enough users to keep them always running but
infuriating when traffic is small. They're also painful to debug. Running Node
locally with Slack web hooks calling through Ngrok was such a pleasure to work
with. I probably wasted 3 weeks trying to make cloud functions work.

Most popular books added so far have been programming books. Not really
surprised, I think this bot will appeal to a certain self-improvement
personality type. Who knows though, I may be pleasantly surprised with more
fiction books added in the future.

Happy to answer any questions on building Slack bots. Only my first bot but
they have really good resources and tools on their site, and the API has come
a long way in the past couple of years. Also welcome feedback, this is what I
consider the bare minimum product to make it usable so still a lot to add.

