Anyone who’s played in a band knows the admin is the real enemy. Who’s got the latest lyrics? What key are we doing that in? Which Friday can everyone do? Where did that setlist go? It ends up scattered across WhatsApp threads, scribbled sheets and one drummer’s memory. BandBook is my answer: a single songbook that lives on every member’s phone, tablet or computer, and stays in step.
What it is
BandBook is a WordPress plugin (version 1.12.0 at the time of writing). It needs WordPress 6.0 or newer and PHP 7.4 or newer, and nothing else: no other plugins, and no app to install. Members use the band page, and leaders and the site admin also get an admin page. My band uses it on rkendall.com, but it’s a single zip you can upload to any WordPress site, and it’s free (more on that at the end).
Why I made it
Now I’m retired, I’m finally making all the projects I’ve wanted to make all my life. A tool to keep a band organised was one of the ones that kept coming back, because I’d lived the problem. Music is a big part of my life (the Music section here will tell you that, with all the bass and amp talk), and every band has the same admin mess.
The idea was a one-stop shop for band members, a single place to track everything about the band: the songs you play now, the old ones you’ve dropped, the new ones you’re learning, the gigs, the rehearsals, the lot. If it’s about the band, it should be in BandBook.
I wanted something that worked the way a band actually works: on a phone propped on an amp, in a dim room, with patchy signal at the venue.
Why a WordPress plugin?
Simply because it’s much easier to have it permanently online. A WordPress site is already on the internet, already has logins, and is already backed up and looked after. Making BandBook a plugin meant I didn’t have to build any of that, and the band’s songbook is always there, on every device, without anyone running a server.
What a member sees
Every member gets their own view of each song, so their parts and notes never get mixed up with anyone else’s.
- Song list. Pick a setlist or “All songs (A–Z)”, then a song. “Hide list” gives the song the full screen on a tablet.
- Lyrics. Words with chords, plus title, key and tempo. Any member can edit them.
- Live notes. Your own short reminders, shown large so you can read them on stage.
- Tab. Your own text tab, or a Guitar Pro file (.gp, .gpx, .gp5, .gp4 or .gp3, up to 10 MB) shown as a score with a track picker, a Play button and a marker that follows the music.
- My structure. Build the song from coloured blocks (Verse 8, Chorus 8 and so on) with chords. It can fill itself in from the Guitar Pro file’s sections and chord names.
- Lead sheet. Your structure drawn as a Real Book-style chord chart on a music staff, with a Print button, four bars to a line.
- Backing track. Your own YouTube link for practising.
- Swipe. Swipe left or right to move to the next or previous song in the set.
- Display. Bigger or smaller text, light or dark theme, and pop-up tips you can switch off per device.
Setlists and playing live
Leaders build the running order once and every device follows it. Setlists can be created in any number, and songs are reordered by dragging a handle or using up and down buttons, on a computer or a touch screen.
The feature I enjoy most is Live song. During a gig a leader taps a song on the Live tab and every member’s screen jumps straight to it. Each member can switch Follow on or off on their own device, so nobody is dragged along if they’d rather not be. Changes reach every device within a few seconds.
Dates, venues and unavailable days
- Dates. Rehearsals and gigs with time, place, notes and the setlist for the night. Gigs show in red and rehearsals in blue, sorted by date and time.
- Gig details. Price, deposit, and Deposit taken and Confirmed tickboxes, in whatever currency is set in Settings.
- Venues. The venue box suggests places you’ve used before.
- Unavailable. Every member can add the days they can’t play and remove their own. Everyone sees everyone’s.
- Clash warning. Any gig or rehearsal on a day someone has marked as unavailable tells you who is away.
Future Tracks and Live chat
Future Tracks is the “songs we’re thinking of learning” pile, with status, a link, notes and each member’s own backing track. When the band is ready, a leader presses “Move to songs” and it joins the repertoire.
Live chat is a message stream for the whole band, showing who sent each message and when (“Rick 08:21 Do we have time for a gig this Friday?”). Members can delete their own messages; leaders can delete any.
Members, logins and who can do what
Each member has their own WordPress login, and the website itself enforces what each level can do, not just the buttons on screen.
| Level | Can do |
|---|---|
| Band member | Everything on the band page. Edit their own live notes, tab, structure, backing track and Guitar Pro file. Edit any song’s lyrics, title, key and tempo. Add or remove their own unavailable dates. Post in Live chat. Kept out of the rest of the website. |
| Band leader | Everything a member can, plus setlists, songs, dates, Future Tracks and the live song, and their own name, instrument and colour. “View as…” shows any member’s screen. Also kept out of the rest of the website. |
| Site admin | Everything, plus adding, changing and removing members, logins, who’s logged in, Backup, Settings and undoing song edits. |
To add someone, the site admin types their email and presses “Create login”. The member gets an email to set a password, and the link is also shown so it can be sent by WhatsApp or text instead. No band leader can remove, demote or take over the site admin’s login.
Admin tools
- Undo song edits. Each song keeps its last three edits, with Undo 1, 2 or 3 steps. (Useful when a bandmate “fixes” your chords.)
- Who’s logged in. Each member’s devices, browser, login time and last activity, with the IP address.
- Backup. Download everything as one file, and upload a backup to restore it.
- Settings. Currency for gig prices, pop-up tips, and whether to delete all band data if the plugin is ever deleted (off by default).
- Login protection. Optional Cloudflare Turnstile “are you human?” check on the WordPress login and lost-password pages. Wrong keys are refused, so you can’t lock yourself out, logins still work if Cloudflare can’t be reached, and it steps aside if another Turnstile plugin is already active.
Built for the venue
It works in the browser on iPhone, iPad, Android and computers. “Add to Home Screen” opens it full screen like an app. Each device keeps the page and the last songs it received, so it opens even with no signal at the venue. The tip is to open it at home before the gig to pick up the latest changes.
There’s a Help button on every page with a short guide to every screen, which opens by itself the first time someone visits on a new device.
For the tinkerers
The zip includes a README and a developer guide (docs/DEVELOPER.md), and every file is commented, because I like being able to come back to something in a year and understand it.
The server side is PHP in a single plugin file, with the screens in plain HTML, JavaScript and CSS talking to the WordPress REST API. Guitar Pro files are displayed and played with the open-source alphaTab library, which is bundled in the zip along with its licences, so nothing is loaded from external servers.
Download it, it’s free
BandBook is totally free. It’s released under the GPL (version 2 or later), the same licence as WordPress itself, so you can use it, change it and share it.
Download bandbook.zip (version 1.12.0, about 2.3 MB)
To install it, go to your WordPress admin, then Plugins › Add New › Upload Plugin, choose the zip and activate it. Members then log in at /band/ on your site, and leaders and the admin use /band/admin. To update later, upload a newer zip and your band’s data is kept.
If you try it with your band, I’d love to hear how it goes.
