Casting,
kept simple.

Keep every actor, every project and every role in one calm place that you host yourself.

Get started See how it works

An actor database that stays tidy

Every actor is a profile you can search, edit and come back to. Keep the details you need when a role comes up, in one record.

  • Image
  • Gender
  • Race / ethnicity
  • Date of birth and age
  • Height
  • Weight
  • Languages spoken
  • Phone
  • Email
  • Availability notes

Age is calculated from the date of birth, so it is never out of date.

Projects, roles and who plays them

  • Projects

    Create a project for each production, with a title and a description.

  • Roles

    Add the roles a project needs, each with its own description.

  • Assignments

    Put actors from your database on roles, and take them off again when plans change.

Let actors apply themselves

CastBook has a public sign-up page titled “Create your actor profile”. Copy the application link from the user menu and send it to anyone you want to hear from. They fill in their own details and add a photo, and the profile is ready for your team to review.

The form asks for

Name, gender, race or ethnicity, date of birth, height, weight, email, phone, languages spoken and availability notes. Admins can switch on optional extras such as pronouns, union status, travel availability, a reel link and a CV.

Share a project with your team

Every project has a Share button that copies a public link. The page it opens shows the project, its roles and the actors assigned to them, with photo, age and height, so directors and producers can look without needing an account.

Individual actors have a public page too.

Self-hosted and private

  • Your server

    CastBook runs where you put it. A single Docker container serves both the app and its API, and the repository includes a Dockerfile.

  • One SQLite file

    Actors, projects, roles, assignments and user accounts live in a local SQLite database at data/castbook.db. Back it up like any file.

  • Admins and users

    Admins have full access, including user management in Settings. Users get the app without those controls.

In English, French and German

The interface comes in three languages, with a language switcher, including on the public sign-up page, so actors can apply in the language they are most comfortable with.

Get started

Run it locally

You need Node.js and npm. The last command starts the app and its auth API together.

npm i
cp .env.example .env
npm run dev

Set JWT_SECRET in .env to a long random value before you use it for real. The auth API listens on port 3001.

Your first account

There is no seeded login. The first time you open CastBook, the sign-in screen asks you to create the first admin account. From Settings, that admin can add more users.