How to track a Discord book club reading list, movie picks and ratings
To track a book club reading list, movie night picks and member ratings in Discord, create one table in CordBase with title, member, rating, kind and status columns. The bot turns it into a slash command for adding picks, rating them, pulling up anyone's list and ranking titles by rating. The free plan fits a small club.
Most clubs start with a pinned message, a shared Google Sheet or a thread nobody scrolls back through. Those work until the list gets long or people stop opening the sheet. A table that lives behind a slash command keeps the list where the conversation already happens. This guide uses CordBase, which we build.
What you'll end up with
- A
/pickscommand withadd,query,view,updateandleaderboard. - One table for books and movies, with each member's rating, status and a link.
- Lookups by member, by type (book or movie) and by status.
- A ranking of rated titles, highest first.
Step 1: Add CordBase and create the table
First, sign in at cordbase.gg with Discord, pick your server and add the bot when the dashboard asks. CordBase has 40 built-in templates, but none is for books or movies, so create a custom table instead. Name it "Picks" and the command becomes /picks. Add these columns in this order:
title: text, required. The book or movie title.member: user, required. Whose entry this is.rating: number. Pick a scale, such as 1 to 5.kind: select with Book, Movie, Show, required. Lets you filter books from movies.author: text. Author or director.status: select with Suggested, In progress, Finished.finished: date, entered as YYYY-MM-DD.link: text. Any URL, stored as plain text.notes: text.
The order matters. title is the first text column, so it is what the row picker searches and what the leaderboard prints next to each score. The first four columns (title, member, rating, kind) are the ones query shows in its results list. Keys and types are locked once you save, though you can add columns later. See column types.
CordBase accepts any number in a number column. It will not reject a 9 on a 1 to 5 scale, so the scale is a convention, not a rule. To show it in Discord, create the column as Rating, save, then rename its label to "Rating (1-5)" on the edit page. The option name members type stays rating.
Step 2: Decide who can change what
Out of the box every member can do everything, including delete. In the table's permissions:
- Give the role all members have (for example
@Member) write, so they can add and update. - Give the organizer role admin, which adds
delete.
Once any role is set, members without a listed role cannot use the table at all. Write access covers every row, not only a member's own, so one person can edit another's rating. In a nine-person club that is usually fine. Administrators always have full access.
Step 3: Log picks and ratings
/picks add title:Piranesi (Ari) member:@Ari kind:Book rating:5 author:Susanna Clarke status:Finished finished:2026-10-04
/picks add title:Past Lives (Mika) member:@Mika kind:Movie status:Suggested link:https://example.com/trailer
If several members rate the same title, add a short tag to the title, like "Piranesi (Ari)". The row picker and the leaderboard only show the title, so two rows both named "Piranesi" look identical.
To rate something later, update the row. Start typing in row, pick it, and pass only what changes:
/picks update row:Past Lives (Mika) rating:4.5 status:Finished
Decimals work. The _mode option appears on this table because it has a number column; leave it on its default, Set, for ratings.
Step 4: Find things and rank by rating
/picks query member:@Arilists Ari's entries, newest first./picks query kind:Movie status:Suggestedshows the movie night queue./picks query title:piranesifinds every row whose title contains that text, in any case./picks query rating:5shows rows rated exactly 5./picks view row:Piranesi (Ari)shows every column plus who created the row./picks leaderboard column:Rating limit:10ranks rows by rating, highest first.
query returns up to 25 rows with no next-page button, so add a second filter once a list grows. Filters on number and select columns match exactly, so there is no "rating of 4 or more".
The leaderboard ranks individual rows. It does not average ratings across members, and rows with no rating sort to the bottom, shown as "none".
When something else fits better
- Polls and voting. CordBase has no voting. For picking the next book or movie, use Discord's native polls, then log the winner as a
Suggestedrow. - Reminders and meeting scheduling. CordBase has no event, RSVP or per-row reminder feature. On Pro, a scheduled post can put a fixed message in a channel weekly or monthly, but it is not tied to a meeting row. Use an event bot or Discord's native events for real reminders.
- Personal shelves and reviews. Goodreads and StoryGraph track reading, and Letterboxd tracks films, with covers, progress and public profiles. CordBase has no Goodreads sync, cover images or progress bars.
- Dedicated club bots. If you want built-in club features, search for a book club or movie night bot. CordBase is a general table.
CordBase fits when you want a small, shared list the server controls, with structured fields and lookups.
Limits worth knowing
- Free: 2 tables, 100 rows each. That is room for 100 picks if you keep one row per pick. If every member's rating is its own row, a busy club will fill it faster, so consider Pro.
- Pro ($8/month): unlimited tables, 10,000 rows per table, CSV and JSON export.
- Up to 25 columns per table. Tables are built on the web; members cannot create them from Discord.
- No CSV import, no public API.
- Every action is listed in the commands reference, and plans are on the pricing page.
Questions people ask
Can it show a club average rating for each book?
No. Each rating is a row, and the leaderboard ranks rows rather than averaging them. To get one score per title, log a single agreed club rating in one row, or on a paid plan export the table to CSV and average it in a spreadsheet.
Can members only edit their own entries?
Not as a permission. Write access applies to every row in the table, so anyone with write can update anyone's rating. The view command shows who created each row, which helps if something changes unexpectedly.
Is this free for a small book club?
Yes, within the limits. Free covers 2 tables with 100 rows each. That fits a one-row-per-title catalogue for a long time, but a per-member rating table for nine people fills up after about eleven titles, at which point Pro is $8 a month.