user-penAuthors

Crimson includes a dedicated Authors page that lists all authors who have published at least one post/page on your Ghost site.

In Crimson, this page is available at /authors/ slug.

On the Crimson demo, you’ll notice authors are displayed with their post counts, and the list is ordered so the most active authors appear first.

Authors page in Crimson

What the Authors page does

Authors page lists all authors.

Who appears on this page?

Only authors who have published at least one post will appear (Ghost only returns authors that have posts associated with them).

How are authors sorted?

Crimson sorts authors by number of posts published (highest first). This is done by requesting the authors’ post counts and ordering by it (Ghost supports include=count.posts and ordering by count.posts).


How Crimson enables the Authors page

Crimson uses a custom route in routes.yaml so /authors/ loads a custom template file (in this case, authors.hbs).

Ghost’s routing system supports mapping a URL to a specific theme template.

The routes.yaml entry looks like this:

What this means

  • /authors/ is the page URL visitors will open.

  • template: authors tells Ghost to render the page using authors.hbs from the theme.


Prerequisites

1) Upload Crimson’s routes.yaml (required)

Crimson relies on routes.yaml for custom pages like Authors.

If you haven’t uploaded it yet:

  1. Go to Ghost Admin → Settings → Labs

  2. Upload the routes.yaml that comes with Crimson


2) Content API key (required for “Load more authors”)

Ghost 6 removed limit=all and added a max page size of 100 items per API request, so pages that list “everything” (like Tags/Authors) need pagination.

To support loading more authors, you must set the Content API variables in Code Injection (as explained in the Code Injection docs).


How the “Load more authors” feature works

Ghost’s APIs now return a maximum of 100 items per request, and limit=all no longer returns everything.

So Crimson uses this approach:

  1. The Authors page loads an initial set of authors (fast first load)

  2. A Load more action fetches the next set using the Ghost Content API endpoint for authors (/authors/ browse endpoint)

  3. Crimson appends the next batch of authors to the page using JavaScript

This means your Authors page can scale even if you have more than 100 authors.


How many authors load initially or per page?

By default, Crimson loads the number of authors based on Ghost’s global posts_per_page setting defined in your theme’s package.json.

Change the initial authors loaded (advanced)

If you want the Authors page to show more (or fewer) authors before clicking “Load more”:

  1. Unzip your Crimson theme ZIP locally

  2. Open package.json

  3. Find config.posts_per_page

  4. Change the value

  5. Re-zip the theme and upload it again in Settings → Design & Branding → Change theme → Upload theme

circle-exclamation

How to add the Authors page to your navigation

Once /authors/ is active, add it like any normal Ghost navigation item:

  1. Go to Ghost Admin → Settings → Navigation

  2. Add a new item:

    • Label: Authors

    • URL: /authors/

  3. Save

You can place it in:

  • Primary navigation (main header)

  • Secondary navigation (category strip / header below primary)

  • Footer navigation (often under “Archive Pages” or “Company”)


Troubleshooting

chevron-right/authors/ shows 404hashtag
  • Confirm you uploaded Crimson’s routes.yaml correctly.

  • Confirm your active theme is Crimson.

  • Confirm authors.hbs exists in your theme (template route must match a template file name).

chevron-rightAuthors page is emptyhashtag
  • Ensure at least one post is published.

  • Ensure posts have authors assigned (Ghost only returns authors that have posts associated).

chevron-right“Load More Authors” doesn’t workhashtag

Most common causes:

  • Content API variables were not added in Code Injection (Crimson expects them).

  • The API URL is incorrect (Ghost notes the admin domain/protocol matter for consistent behavior).

  • You’re using a caching/CDN layer that blocks the API request (rare, but possible).

Last updated