top | item 42990540

Show HN: My first side project, streamlined book clubs on Slack

104 points| Papamanolis | 1 year ago |booktalk.club

51 comments

order

Papamanolis|1 year ago

Hey people!

After years and years of wanting to start something and build a product, I’m taking a jab at it!

So basically, me and a few of my coworkers wanted to create a virtual book club since we are all working remotely and decided why not automate it.

I’ve been working on booktalk, a Slack app that makes book clubs easier to run. For now it will allow the team to get details and suggestions about books, vote on books that they want to read, set a timeframe for their reading cycle, and when the cycle ends, it reaches out with a few relevant questions about the book!

Has any of you organized or participated in a virtual book club before? What was your experience, any challenges that you faced or features that were missing?

Fire away!

PS: Let me know if you have any feedback about the website too, it was my first time creating a landing page!

digdugdirk|1 year ago

The biggest feature that I'd love to see with a virtual book club would be a way to "unlock" discussions based on how far the into the book you are. The goal would be to make things asynchronous (so you could read at your own pace) without getting hit with spoilers.

gostsamo|1 year ago

Funnily enough, recently we started a bookclub in our office and we are using slack. Not sure if we need the app, but we might try it.

The biggest challenge for me is to accept when the team chooses an obviously bad book, but they will learn with experience. A feature about book details sounds good but depends on the source and if it is marketing or a good critical one. Finding the book in print would be a nice feature which is easy for english and big countries, but might be hard otherwise.

Edit: maybe consider a feature for setups where people rotate to choose the book if there is not one yet.

em-bee|1 year ago

i am in an active bookclub that uses a chat group. we collect nominations, vote on the selection, and after about a month we have an online meeting to discuss the book. for that we first vote on which day we want to meet, and then on the time for the meeting on the selected day. so three votes for each book, two of which are the same kind of vote every time. occasionally we also use a vote to find out if people need more time or if everyone is done.

we use wechat for that because most of us are in china, and no other chat platform works for everyone. wechat has mini apps that we can use for voting, but collecting the nominations and setting up the votes each time is a manual and sometimes tedious process. once we used an external voting app, but there the problem was the lack of integration with the wechat users. we could not tell who already voted, and more importantly people could not tell for themselves if their vote was counted or not.

better integration would be nice. getting everyone off wechat into slack is probably going to be the biggest challenge though. i don't even know if slack works for everyone in china.

vcool07|1 year ago

My feedback would be to not restrict to books. You would get more traction with movies / web/tv series or even video games.

WorldMaker|1 year ago

> Has any of you organized or participated in a virtual book club before? What was your experience, any challenges that you faced or features that were missing?

It's funny, but my "winter hobby project", between myself and my junior developers GitHub Copilot and whiskey, has been trying in the nerdiest way possible to convince my Book Club to switch from a Ranked Choice voting that was still a bit too much first-past-the-post (but easy to model in a Google Sheet) to trying the Schulze method [1], which is fascinatingly more robust and which provides some niceties like "vote on everything as 1-5 [stars/hearts/dolphins/what have you]" (encouraging lots of ties to get the most interesting "beatpath winners") with the ability to save those ranks between voting rounds because the ranks are personal and not "points". As a voting method, it also gives us a bit more flexibility to "predict"/plan for more than one winner at a time (many of our members use public libraries with long lead times to borrow books, so we like to plan two or three books ahead). But also as a voting method that encourages ties, it still allows for surprises/serendipity and changing minds/shifting winds.

Ever since ModernBallots [2] shut down (RIP) it's been increasingly harder to convince people to try the Schulze method for voting. For one thing the Wikipedia rabbit hole is full of way too much complexity of the intricacies of voting methods in general and the math looks way harder than it is. While I wouldn't want to do the math by hand, it's a really simple algorithm from a computer science standpoint: convert one user's ballot's ranks into an adjacency matrix representing which item (book) beats with other item (book) [1 for edge, 0 for no edge], add adjacency matrixes together (you get an adjacency matrix where the edge weights are number of ballots), then run a simply modified Floyd-Warshall on the matrix to find the widest paths (ranking the items by most widest paths to fewest). Floyd-Warshall is a classic, simple "textbook" digraph algorithm. So much so that GitHub Copilot knows it quite well. (I recall it came up three or four times in my own college experiences.)

While I've been working on this, so far I've been intentionally specializing it for this particular book club. I'm trying to keep it fun for myself and worrying about generalizing it into a product (such as a potential replacement for ModernBallots) has intentionally been something I've tried to avoid to keep from burning out on it. (Kudos to you on doing it and shipping a first version of it.)

I have been building it in the open, for a variety of reasons: https://github.com/WorldMaker/jocobookclub/

I think it's a cool codebase. The main site is SSG (to GitHub Pages), progressively enhanced with web components and some HTML templates for those web components. The API site is sent to Deno Deploy, using Deno KV as the database, and using Deno Queues for the vote calculation work which is probably overkill for the club's current scale but the engineering effort behind it felt like a good idea and makes me happy. The slowest loading things right now on the site are the Font Awesome icons in use to keep it fun/visually interesting, and as the number of icons in use stabilizes I expect to more cleanly subset it and drop that into the SSG build as well.

You can even browse the public (static) parts of the site: https://worldmaker.net/jocobookclub/

You won't see the actual voting tools light up, though without logging in, and for hopefully obvious reasons (small, private club) the registration links are restricted to invite-only. Maybe I should take a screenshot of them at least, to include in the README, but so far I haven't thought much about the public facing aspects of the codebase like that as it is still mostly for the benefit of myself and the club members.

In general, we probably don't talk about voting methods enough and first-past-the-post is too easy a default and too accidental a fallback even when you think you are doing something smarter like a Ranked Choice ballot. Sometimes the more complicated you try to make those rules, the less effective they are in reality. It's been one of my nerdier obsessions for a long time. I used to use ModernBallots a lot to try to convince people to stop using SurveyMonkey or Google Sheets and simple counts for something a little smarter and a lot wilder that finds answers that everyone collectively don't always realize they all mostly agree on/with.

[1] https://en.wikipedia.org/wiki/Schulze_method

[1] https://modernballots.com

angoragoats|1 year ago

Why would you build this on a platform that 1) is mostly used for business communication and 2) requires a monthly per-user payment if you want to see content older than 90 days? Why not make it a standalone tool? Then you could always offer an optional Slack integration for those who wish to use it at work.

Papamanolis|1 year ago

Good point! I know there are a lot of book club communities on Discord and other platforms, but we were already using Slack and didn’t want to migrate to another platform just for the book club. It just felt like the easiest way to get started.

layer8|1 year ago

Regarding #2, this book club service will presumably become a paid service anyway, so it’s only a matter of how much you need to pay.

ericholscher|1 year ago

Love this idea! We wrote up a post about the book club we were running at our small company, and it was great for expanding people’s interest and understanding of different topics: https://www.ethicalads.io/blog/2022/05/running-a-company-boo...

Picking a book was often the hardest part though, so this tool having recommendations and voting seems like a really nice solution.

Papamanolis|1 year ago

Hi, and thanks for the feedback! One of my top priorities right now is learning as much as possible about online book club experiences from others, so I really appreciate you sharing the blog post!

Interesting to hear. Personally, finding a book was usually the easiest part (probably because we have dozens waiting on our 'to-read' lists). I’ll do my best to make the book recommendation experience as smooth as possible.

dewey|1 year ago

Some landing page feedback: As Slack is mostly used in a corporate context the first thing people will look at when they add an app to their workspace would be the privacy policy and to see if it's trustworthy. Would maybe be worth it to expand on that a bit?

Papamanolis|1 year ago

That's a great point! Privacy is really important to me as well, and I'm strongly against collecting anything beyond what's necessary for the app to function. I'll work on adding a dedicated section to clarify this as soon as possible. Really appreciate you taking the time to share your feedback!

dyeje|1 year ago

Congrats on shipping. Curious, why Slack? Is this intended for book clubs at companies specifically?

scovile|1 year ago

My biggest pain point with bookclubs has been keeping everyone motivated to continue reading. It's fun for the first few months but every time it drops off rather quickly. Don't really have an answer to this, apart from finding a new group to read with.

treylayton|1 year ago

landing page is super aesthetically pleasing. for my last project, i built v1 as a discord bot, and my conversion rate from "yes i'll try it" to sign ups was abysmal. kept asking and finally realized it was because people didn't want to use discord or slack or some third-party service to access the tool. others have touched on it, but if you want to expand beyond corporate book clubs, would probably recommend building it out as a standalone service, or maybe into imessage or whatsapp?

gmargaritis|1 year ago

I’ve been a part of various book clubs in the past, mostly in person and few on Discord. One thing that really turned me off in virtual ones was how people would post while reading, sometimes creating small spoilers for others. I always wished for a way to mark spoilers to avoid ruining surprises. Is this something you’d consider adding?

Papamanolis|1 year ago

Thanks a bunch for the suggestion! I’ve run into the same issue in online book clubs, so it's something that I'll definitely add in the upcoming version!

em-bee|1 year ago

we solved that problem by having two groups or rooms. the main group where we nominate books and manage the whole process as well as general chat, and one group for spoilers.

especially on discord grouping rooms into categories is easy. if you don't have a whole server for the bookclub because it is part of something larger you could still have a category and in there multiple groups. even a spoiler group per book if needed.

maroonblazer|1 year ago

Looking at the first few questions from the survey, this seems geared specifically to work-oriented book clubs. I.e., book clubs in a professional context. FWIW, I was hoping for/expecting one that was free of those associations. It might be worth spelling that out more explicitly on the landing page.

Papamanolis|1 year ago

Thank you for the feedback! The app isn’t specifically centered around work-related book clubs, and it can be used in any Slack workspace. It's just that Slack is often thought of as a work tool, so that association tends to stick. I'll make sure to clarify this on the landing page!

bmelton|1 year ago

Not surprising that Lighthouse didn't catch it, but the white text on the peachish background lacks contrast for accessibility and would be quite hard to read for the visually impaired / older audiences.

(If that's something you're concerned with)

Tempest1981|1 year ago

Agreed, the white text is very low contrast against the plasma background. Did you intend dark text?

Papamanolis|1 year ago

Great point! I've just updated it. Thanks for the feedback.

the__alchemist|1 year ago

Jira integration next! This sounds great for leadership and team-building literature.

aboardRat4|1 year ago

Depending on Slack is, well...

What about based on Jabber/XMPP, or even better, pure email?

werrett|1 year ago

Jabber/Xmpp? Is that a joke? Not to be rude, but surely the ‘club’ bit is the key part of a ‘book club.’

Most companies with more than a handful of people have, or would be interested in having, a book clubs. In tech forward shops they are more than likely using Slack.

I could imagine targeting some chat apps for a non-work audience, but the age of people having listservs and using email for multi-person back and forth is long gone.

_virtu|1 year ago

I’m currently building something like this. It comes at the problem from a different angle though. The app uses the book to aid discussions for the current reading sections.

Fun to see this idea is getting a little traction.

4b11b4|1 year ago

Why slack.. cuz it has huddles integrated?

Just build on Zed at that point.

leetrout|1 year ago

I built the bones of the same thing! :)

Curious what stacks and tools you are using. I went with Bolt on AWS Lambda.

catinblack|1 year ago

I can't submit the form. I have "something went wrong" error

Papamanolis|1 year ago

Sorry about that! The site was hugged to death, you can retry now!

ignaciodiaz|1 year ago

The landing page looks great. What did you use for the animations?

Papamanolis|1 year ago

Thank you so much! I built the website using Framer. For the animations I used https://particles.page/ but as i see now the component is no longer available.

kojeovo|1 year ago

is discussion history retained? or is it wiped cuz of free slack tier?