A multi-user book club app built around shared voting and reading histories
Built through Replit using HTML, CSS, JavaScript, and shared-state logic, the best book club is a members-only app for an 8-person book club. Members create accounts, log in, nominate books, vote on upcoming reads, choose meeting dates, rate finished books, and keep track of the club’s reading history over time.
The most complex parts of the app are the moments when everyone needs to see and act on the same thing at the same time: voting on the next book and voting on the next meeting date. During those periods, the whole app enters a shared state where members can submit votes, see the group’s choices, and where the admin can finalize or override the outcome if plans change.
The app starts with a landing page and account creation/login modal so each member has their own profile, ratings, recommendations, and voting actions tied to their account.
The “make your picks” page changes depending on whose turn it is. If it’s your turn, you can nominate books for the next meeting. If it’s someone else’s turn, the same page becomes a voting surface where members choose from the nominated options.
Book selection and meeting-date selection both require the whole group to see the same active state at the same time. Members can cast votes, view group input, and see the final selection once it has been confirmed.
Admin controls make it possible to finalize the winning book or meeting date, edit details if plans change, override the outcome when needed, or start a new vote for the same meeting.
“In the books” acts as the club’s archive, tracking every completed read since the club started alongside author, page count, book type, nominator, Goodreads link, and average rating.
Members can rate books the club has read and update those ratings anytime. The ratings page also generates a lightweight reader summary based on each person’s rating patterns.
The “who!” page gives each member a profile card with an average score based on how the group rated books they nominated. Members can also click into someone’s profile to see how they rated individual books.
Books that were nominated but not chosen automatically move into “maybe later,” creating a backlog of future ideas. The “you’d like this” page adds a separate space for members to recommend books they’ve already read and co-sign each other’s suggestions.
The “when we meeting?” page lets members suggest dates, locations, and notes, then vote on the best option. Members who can’t attend can also leave notes to be read aloud at the meeting.
The “finish on time” page helps members calculate how many pages they need to read per day based on the meeting date, total page count, and their current page.