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

104 pointsposted 11 days ago
by Papamanolis

51 Comments

Papamanolis

11 days 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

11 days 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.

Ntrails

11 days ago

> The goal would be to make things asynchronous (so you could read at your own pace) without getting hit with spoilers.

I don't, personally, think that works super well?

I don't want to join in at the tail of a thorough discussion and add my 2 cents to people who have moved on.

I also wouldn't want to keep getting dragged back to prior threads on bits I won't remember as well (most specifically where the spoilers start).

So, I could well be wrong, but it sounds awkward to me

em-bee

11 days ago

we have this problem in our book club and in tv series discussions all the time, and it really isn't a problem. everyone shares their thoughts to the things they are reading/watching and people give their feedback. some people avoid spoilers until they are caught up and add their thoughts then. some people are behind and talk about things we already discussed days ago. i even once discussed a tv series season one while everyone else was already watching season two. we didn't get intodeep discussions but people were answering my questions without spoiling things for me. certain movies are being discussed over and over again every few months or years. if you have a group that communicates well with each other, none of this matters. the worst thing that can happen is that latecomers get less engagement. but it really depends on the detail or the mood.

a system that allows marking of spoilers with the chapter/episode/part etc, and hide the ones that are further along than me would be nice. practically speaking though it would be enough if everyone could tag their messages with the chapter/part they are talking about and then the reader can choose to unhide based on that information.

the hard part with any such system is to get the participants to develop the discipline to actually recall the chapter and mark the comment. "somewhere in the book the gardener removed a sticky substance from his shears, but i forgot which chapter that was."

fm2606

11 days ago

That is a good idea.

gostsamo

11 days 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.

agscala

11 days ago

Maybe it would be valuable to have an anonymous "onboarding" experience where people choose the genres they like or dislike, and then the people choosing the book can be informed a summary of the groups preferences.

Also an anonymous thumbs up/down after the book is read could help the group choose a better next book

Papamanolis

11 days ago

Such a cool idea! I'm definitely going to explore this feature for the upcoming release.

gostsamo

11 days ago

This is a book club. People know each other and their preferences. Also, it would be rather clear if people liked the book or not. Those are functions better left to the conversation or at least, no sense in making them anonymous.

For online discussions, it might be convenient to have a shared board with questions about the book, maybe scoreboard to rate by aspects and do a final grate, but those are fancies, not essential for facilitating the discussion.

em-bee

11 days ago

if the team chose a bad book, i can't have been obviously bad unless you pick books at random or without even reading anything about them before selecting. it also depends on how much people read. in our group most members are well read and a good part of the nominations are books that at least one person has read already. people nominate books they read before and liked or have heard good things about. other sources are awards or nominations for awards the authors received, or articles like the best 10 books in this genre, etc...

gostsamo

11 days ago

Regarding the bad book choice, people must've read only the marketing and the amateur reviews in goodreads. The author is relatively famous but the book is a disappointment.

em-bee

11 days 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

10 days 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

10 days 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

11 days 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

11 days 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

11 days 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.

angoragoats

11 days ago

It doesn’t make a lot of sense to me to compare paying an indie hacker for a service that you actually find valuable to paying Salesforce for a text communication tool.

ericholscher

11 days 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

11 days 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.

ericholscher

11 days ago

Yea we all have a lot of books to read, but trying to figure out how the group wants to learn something and discuss is hard. Especially when the goal is having some business benefit, not just reading for fun.

There’s a lot of “paper reading” clubs which might also be interesting to look in to.

Papamanolis

11 days ago

That's a really interesting angle, I've never thought about paper reading clubs before. They seem much more fast-paced and could probably benefit from a shared notes side feature! Thank you for the food for thought!

dewey

11 days 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

11 days 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

11 days ago

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

scovile

10 days 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

11 days 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

11 days 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

11 days 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

11 days 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.

WorldMaker

10 days ago

There's also some effective ways to use Threads for this if you are confined to one channel, especially on Discord where Threads hang tied to their channel and get useful names where the names can be things like books.

On Discord you can also experiment with making your "one channel" a Discussion Forum channel instead and then everything is discoverable threads. Some of the busier Discords that will only give you "one channel" for your group will often be amenable to letting that one channel be a Forum channel.

maroonblazer

11 days 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

11 days 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

11 days 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

11 days ago

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

Papamanolis

11 days ago

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

bmelton

11 days ago

MUCH improved!

Tempest1981

10 days ago

Agreed. Although this line (only) is still white for me:

"Get the discussion going with a few curated questions"

the__alchemist

11 days ago

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

aboardRat4

11 days ago

Depending on Slack is, well...

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

werrett

11 days 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.

aboardRat4

9 days ago

Well, I would like to keep my thoughts even after I leave the company, without having to save my opinions in a text file.

And with respect to email, the "instant messengers" have this property of being, you know, "instant", which sometimes is a blessing, but in the field of reviewing books, a thoughtful and demanding process, is more of a bane, and the communication model of a "topic" and "a long and thoughtful message citing multiple contributions of other participants" is quite fitting.

_virtu

11 days 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

11 days ago

Why slack.. cuz it has huddles integrated?

Just build on Zed at that point.

leetrout

11 days 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

11 days ago

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

Papamanolis

11 days ago

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

ignaciodiaz

11 days ago

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

Papamanolis

11 days 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

11 days ago

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