Skip to content

CMS editor guide

Everything an editor does in the CS Lewis CMS: where each thing lives, what the fields mean, which rules the CMS enforces, and what each choice changes in the app.

Read Before you start once. After that, go straight to the chapter for the thing you are editing.

Before you start

Sign in

The CMS is at /studio/ on the app's domain, for example https://app.cslewis.com/studio/. An administrator creates your account and decides whether you can publish. If a Publish button is missing where this guide says it should be, you have the add-and-edit permission but not the publish one.

Check which environment you are in before you edit. A coloured tab at the top of every CMS page, the sign-in screen included, names the environment, for example DEV ENVIRONMENT. The production CMS, the one readers see, shows no tab at all. No tab means your edits reach readers.

What the CMS holds

You edit Which means
Pieces The three things a reader reads: a Passage, a Writing, an Article.
Books The works the passages and writings are drawn from. Readers never read a Book in the app.
Journeys A guided course built from published pieces, one piece per chapter.
Taxonomy The Themes the app skins itself to, plus Tags for finer grouping.
Screens Three settings screens you edit in place: Home, Legal and Support, and Paywall.

"Piece" means a Passage, a Writing, or an Article. This guide uses that word throughout, because most rules apply to all three.

The sidebar

The sidebar runs in this order. The bold words are the section headers between the groups.

Item What it is for
Home The one screen that sets what the app shows on its landing page.
Journeys Build, order, and publish journeys.
Content
Writings Letters, essays, and book chapters, read whole.
Passages Short standalone Lewis quotes.
Books The source works and their covers.
Editorial
Articles Contemporary writing about Lewis, by a named contributor.
Taxonomy
Themes The 14 worlds the app is organised by.
Tag Categories Containers for tags.
Tags The values inside a category.
Import a Journey Load a journey from a Journey Builder export file. Shown only if you can create journeys and pieces.
Import Passages Load passages from a Passage Builder export file. Shown only if you can create passages.
Media
Images Every uploaded image.
Documents Every uploaded file that is not an image.
Settings Holds Legal and Support (the four web pages the app links out to) and Paywall (the Journey Premium offer wording).

Draft and live

Nothing reaches readers until you publish it.

  • Save draft stores your work and keeps it out of the app. Publish puts it in front of readers.
  • There is no preview. To see how something reads, publish it on a test environment, or check the app after you publish.
  • Importers never publish. Everything the book pipeline, the Substack importer, and the journey import create arrives as a draft for you to review.
  • You can publish many drafts at once. The Passages, Writings, Articles, and Books lists have a Publish bulk action: tick the rows, choose the action, confirm. Journeys have no bulk publish, because each one is checked against its chapters as it goes live.
  • The settings screens have no draft. Saving Home, Legal and Support, or Paywall changes the app straight away.
  • A published piece keeps a separate draft while you edit it. Your edits reach readers when you publish again.

Slugs

Every piece, Book, Journey, and chapter has a slug: a short identifier used by links into the app and by the import tools. It is not shown to readers.

  • Every piece, Book, Journey and chapter fills its slug in automatically as you type its title — a Journey calls this field Name instead, but it works the same way. The slug keeps following what you type until you edit the slug field yourself, which turns the automatic filling off for that piece from then on.
  • A piece, Passage, Journey, Writing or Article also stops following its title (or a Journey's Name) once it is published, even if you never touched the slug by hand. A chapter has no publish state of its own, so for a chapter, editing the slug yourself is the only thing that stops it.
  • A Book is the one exception. Its slug is also the key the book-import tool looks it up by, so it stops following the title the moment you first save the Book — even as a draft, before you touch the slug or publish anything. Set the title exactly how you want it before that first save if you want the slug to match.
  • Do not change a slug after you publish. Deep links and analytics use it, so changing one breaks links that are already out there.
  • A slug is used once per type. If the CMS says the slug already exists, another piece of that type has taken it.

Themes

There are 14 themes: Temptation, Love, Imagination, Humility, Reason, Morality, Wonder, Grief, Myth, Growth, Joy, Faith, Friendship, and Courage.

The design team owns this set. The themes come from the design library, and a sync command keeps the CMS in step. If a theme is dropped from the design library, the sync flags it rather than deletes it.

Themes are read-only for editors. The editor role can open a theme and pick it on a piece, so the add, edit and delete buttons are absent. Ask an administrator for any change to the two fields below.

What an administrator can edit

  • Name, up to 30 characters.
  • Framing line, up to 70 characters. This is the one-line framing shown on portals and cards.

What comes from design

The colours, the arch icon (the portal icon), the background wash, the portal animation, and the metadata box all come from the design library. You can see these fields on the theme screen. Do not edit them, because the next sync overwrites any change.

Portal animations are not final. Every theme shares one sample animation until design delivers the per-theme files.

One theme at a time can be the featured theme, which the app shows as Theme of the Week. You set it on the Home screen, not here. See Theme of the Week. The Themes list has a Featured column, so you can see which one is set.

How themes are used

  • A piece's Primary theme colours the reading screen and decides which theme's feed the piece appears in.
  • A journey's Primary theme sets the journey's colour and artwork. A journey has no colour of its own.
  • The Themes multi-select on a piece says which worlds it belongs to. It does not colour anything on its own.
  • On a Passage, Journey, Article or Writing, the Themes checklist has a Select all box above it — tick it to check every theme at once instead of one at a time, untick to clear them all. It stays in sync if you tick or untick themes individually afterward.

Tags and tag categories

Tags are the finer-grained labels under the themes. They feed the related-content rail at the foot of a reading screen, which matches other pieces by shared tags. A piece with no tags falls back to matching on its theme.

A tag always sits inside a tag category. The category is the question, the tag is the answer: "Emotional Register" is a category, and "Grief" is a tag inside it.

Add a tag

  1. Choose Tag Categories, then Add Tag Category, if the category does not exist yet. A category has one field, its Name.
  2. Choose Tags, then Add Tag.
  3. Pick the Category, then type the Name.

A tag cannot exist without a category. Two categories can each hold a tag of the same name, but one category cannot hold the same name twice.

The Tags list shows the name and its category, and filters by category.

Deleting a category deletes its tags

Deleting a tag category also deletes every tag inside it, and those tags come off every piece that carried them. There is no undo. Rename a category rather than replacing it.

Books

A Book is a source work. Readers never read a Book in the app. A Book reaches them two ways: as a card in the Featured Books shelf on Home, and as the "about the book" card under a piece drawn from it.

Create the Book before its content. The book-import pipeline refuses to run unless a Book with a matching slug already exists, and a passage cannot name a source that is not there.

What you fill in

Field What it is
Title The edition's title. It fills the slug in as you type, but only until you first save — get it right before then, since the import tool looks the Book up by this slug afterward.
Slug The stable identifier the import tool uses to find this Book. Leave it alone after the first save.
Cover The cover image. See the rules below.
Publication year A four-digit year. Optional.
Synopsis A short description, with the same limited formatting as a passage body. Optional.
Buy cta A web address to buy this edition, for example an Amazon page. Optional.
Themes, Tags Not used by the app today. Leave them empty unless you are told otherwise.

The cover

Make the cover a clean portrait in a 2:3 shape, at least 340 by 510 pixels, as JPEG or PNG, ideally under about 200 KB. A larger file is fine at the same shape. Leave no white or see-through padding around the book.

Only the minimum size is enforced. If the cover is smaller than 340 by 510 pixels, the CMS refuses the save and tells you the size of the image you picked. A small image cannot be enlarged into a sharp card. The rest of the advice is guidance, not a rule.

Fill in Buy cta and the Featured Books card shows a Buy button that leaves the app. Leave it blank and the card shows no button.

The cover, the publication details, and the buy link must all describe the same edition.

Publishing a Book

A Book has a draft and a live state like a piece. The Featured Books shelf skips a Book that is still a draft, so publish it before you add it to Home.

The Books list is ordered by title and shows a Passages column, the number of passages drawn from that Book.

Deleting a Book does not delete its passages. Each one keeps its text and loses its source, so the reading screen shows no attribution until you set a new one. Deleting a Book also drops it from the Featured Books list on Home.

Passages

A Passage is a short standalone quote in Lewis's words, drawn from one published work.

Passages in the sidebar. The list opens in reading order, which for imported passages is the order they appear in their book.

A passage you make inside a journey chapter is different. It belongs to that chapter, and it is not in this list. See A chapter's own passage.

What you fill in

  • Title. Not Lewis's words, yours: a short handle for this passage. The reading screen shows it above the "What this means" text.
  • Body. Lewis's words, exactly as published. This is the passage. It cannot be left empty, and a body that only looks filled in, such as a stray blank paragraph or a line break on its own, is refused with the same message, because the app would otherwise show a blank screen.

    The body stays editable on the edit screen while the passage is still a draft, so a saved draft with no body yet — or a typo — can still be fixed. Once the passage goes live for the first time, the field locks so the canon can't drift from what a reader has already seen. Ask an engineer if an already-published body is genuinely wrong.

  • Interpretation. The "What this means" layer, in your words. It can be left empty and filled in later, and a passage publishes without one, because these are written after the fact with AI help. The app puts it under a fixed subtitle, "Seeing this through Lewis's lens", which you do not set.

  • Reflection prompt. One question for the reader. Set it once here and the passage asks the same thing everywhere it is read, including inside a journey. This field is what makes a passage reflectable. Leave it empty and readers get no reflect box at all, because a saved reflection keeps the question it answered and there would be none to keep. Editing it later does not change answers readers have already written. Each one keeps the wording it was given.

Formatting is limited to bold, italics, links, and bulleted or numbered lists. The app renders Markdown, and those are the marks that survive the trip intact. No headings, and no images in a passage body.

The edit form also carries an old Audio document field. Leave it alone. Narration is produced in the Audio Studio.

Where it came from

A passage is drawn from one origin. Set either:

  • Source, the Book it comes from, or
  • Source writing, the letter, essay, or chapter it comes from.

Never both. The save is refused if you fill in both, because the app shows a single attribution line and would not know which to use.

Themes and tags

  • Themes is the multi-select: every world this passage belongs to.
  • Primary theme is your single pick out of those, and it is the one that does the work. It colours the reading screen, and it decides which theme's feed the passage appears in. A passage with no primary theme still reads fine. It falls back to whatever theme the reader arrived from, and it appears in no theme's passage pool.
  • Tags are the finer-grained labels. See Tags and tag categories.

Pick up to four other passages and drag them into order. They appear as a rail on the reading screen in exactly the order you set. Nothing is ranked or computed. Passages made inside a journey are not offered.

  • Only published picks appear. A draft in the list is skipped, so a lower pick moves up. Leave the list empty and the app hides the rail.
  • Deleting either passage removes the link cleanly, so there is nothing to tidy up afterwards.

The duplicate warning

The library holds thousands of passages drawn from the same handful of books, so the same paragraphs are easy to add twice. When you save a new passage, the CMS compares its text against every passage in the Passages list. If more than half of the shorter of the two is the same text, it refuses the save and names up to five matches, with a link to each and how much text they share. It ignores formatting, capitals, punctuation, and spacing, and it catches a partly overlapping excerpt as well as an exact copy.

Either use the passage that already exists, or tick Save it anyway and save again. The tick box appears only once the warning has fired, so it cannot be pre-ticked, and it applies only to the text you were warned about. Change the words and you are warned afresh. Nothing is ever relinked or rewritten for you.

The check runs when you create a passage, not when you edit one, and only the body is compared, never the title, interpretation, or reflection prompt. Writings and Articles have no equivalent check, because a letter or an essay is a whole work rather than an excerpt of one. A passage made inside a journey chapter skips the check, and other passages are not compared with it.

Publish a passage

Save draft keeps it out of the app. Publish puts it in front of readers. Only published passages appear anywhere: the Home quote, the theme feeds, the passage list, and any journey chapter built on one. A passage made inside a journey chapter appears in that chapter only.

One rule will stop you. A passage a published journey is built on cannot be unpublished. The CMS refuses it and names the journey. Unpublish the journey first, or point that chapter at another passage. This exists because a reader's saved progress points at particular chapters, and pulling one out from under them would strand it.

Import passages

Import Passages in the sidebar loads passages from a Passage Builder export (.jsonl) or a .json list in the same format. The upload screen lists the fields and shows a sample. One file can hold passages from several books.

The import works in three steps. You upload the file, read what it would create and skip, then confirm. Nothing is written before you confirm, and if anything fails, nothing is written at all.

  • Every passage arrives as a draft. Publish them the usual way, or with bulk publish on the Passages list.
  • The book must exist first. Each passage is matched to a Book by its work title. Capitals and curly or straight apostrophes don't matter. If a book is missing, the file is refused and the screen names the book, so create it under Books and upload again.
  • Existing passages are skipped, never changed. A passage counts as existing when it has the same slug, or the same quote in the same book. A passage inside a journey chapter doesn't count, because a journey keeps its own copy. A quote that appears twice in the file is imported once. Passages whose status is not approved are skipped too. The last screen lists every skipped passage and why.
  • The interpretation is optional. Leave it out and add it on the passage later.
  • Themes are matched by name. A theme the CMS doesn't have is named on the review screen and left off; add it on the passage after importing.

The slug comes from the book and the passage's id, or from its title when there is no id. The import doesn't run the duplicate warning, so a passage that only partly overlaps one already in the library is still created.

Review the imported backlog

Most passages arrive from the book pipeline as drafts, with an AI-written interpretation and suggested themes already filled in. Nothing an importer creates is published automatically. Two columns on the list help you triage them:

  • Themes shows the themes the importer suggested.
  • Confidence is the AI's own rating of its interpretation: direct, interpretive, or open. Treat open as needing the closest read.

Both are read from the import record, for review only, so you cannot sort or filter on them. Use the Source and Live filters to work through one book, or the whole draft backlog, at a time.

Neither column means a passage has been checked. Publishing it is what says that.

Writings

A Writing is a whole piece of Lewis read top to bottom: a letter, an essay, or a book chapter. The Kind field says which. A passage is an excerpt; a writing is the whole thing.

Writings in the sidebar, in the Content section.

What you fill in

Field What it is
Title The piece's title. It fills the slug in as you type, until you edit the slug yourself or the piece is published.
Slug The stable identifier. Leave it alone once you've published, or once you've set it by hand.
Kind Letter, Essay, or Chapter. Required, and it decides which fields below apply.
Body The text, with the same limited formatting as a passage body.
Recipient Who Lewis wrote to. Letters only.
Origin Where the letter was written from, the attribution subline, for example "Great Bookham, Surrey". Letters only, optional.
Original date When Lewis wrote it. Letters and essays only.
Order Position within the source Book. Chapters only.
Source The one Book to send readers to. Optional, and it drives the "about the book" card and the Buy button under the piece.
Reflection prompt The question the reader is asked. Leave it empty and the app hides the reflect box.
Audio The old document field. The Audio Studio replaces it, so leave it alone. See Narration.
Image Optional illustration: the reading-screen hero, and the card image in the Home carousels.
Themes, Primary theme, Tags As for a passage. Leaving Primary theme empty keeps the piece out of every theme feed.
Is new eligible Ticks this piece into the What's New pool. See What's New.

The four kind-specific fields are always on the form, whatever kind you pick. The CMS checks them when you save, and the message tells you which one does not belong:

  • Letters require a recipient.
  • Recipient only applies to letters.
  • Chapters require an order within their source Work.
  • Order only applies to chapters.
  • Original date does not apply to chapters.

What the kind changes for readers

  • Letters and essays feed the Home Further Reading shelf on their own, as soon as they are published. Chapters never do. See Further Reading.
  • A letter shows its recipient and origin as the attribution line.
  • A chapter belongs to its Book and uses Order to sit in the right place within it.

Publish a writing

Save draft while you work, Publish when it is ready. Two rules can stop you:

  • Stale narration blocks publishing. If you changed the words of a field after its audio was approved, publishing is refused and the message names the section. Re-record and approve it in the Audio Studio, then publish. Saving a draft is never blocked.
  • You cannot unpublish a writing a published journey is built on. The CMS refuses and names the journey. Unpublish the journey first, or point that chapter at another piece.

The Writings list

Columns: Title, Kind, Source, Original date, What's New, Audio, Status, Published, Updated. Filters: Kind, Source, Live, and Is new eligible. The bulk actions are Publish and Clear What's New eligibility.

There is no duplicate-text check on writings.

Articles

An Article is contemporary writing about Lewis, by a named contributor. It is not Lewis's words and it has no source Book.

Articles in the sidebar, in the Editorial section.

What you fill in

Field What it is
Title The article's title. It fills the slug in as you type, until you edit the slug yourself or the article is published. Exception: an older imported article that hasn't yet been re-synced with its original source doesn't auto-fill at all — its slug is how the importer still recognizes it, so leave the title as imported until it has synced once.
Slug The stable identifier. Leave it alone once you've published, or once you've set it by hand.
Subtitle An optional standfirst under the title.
Body The text. An article body is the one body that can hold images. See below.
Reflection prompt The question the reader is asked. Leave it empty and the app hides the reflect box.
Author The contributor. Pick from the account list; the chooser searches on name or email.
Featured image The reading-screen hero and the card image in the Home carousels.
Publication date The date shown to readers.
Audio The old document field. Leave it alone. See Narration.
Themes, Primary theme, Tags As for a passage.
Is new eligible Ticks this article into the What's New pool.
Is auto generated, Source url Provenance. The importer fills these in. See below.

Images in the body

An article body takes images as well as bold, italics, links, and lists. Add one with the image button, then pick the Body image (WebP) format. That is the only format the app renders, so another choice can leave the image missing on the reading screen.

The author

Author points at a CMS account, not a free-text name. If the contributor has no account, ask an administrator to create one before you set the byline. An article publishes without an author, and the app then shows no byline.

Imported articles

The Substack importer creates one draft article per licensed post and never publishes. It fills in the title, subtitle, body, publication date, and cover image, sets Is auto generated, and records the post's address in Source url.

  • Leave the provenance fields alone on a hand-written article. Do not tick Is auto generated yourself, and leave Source url blank.
  • A source address is used once. Two articles cannot carry the same Source url.
  • The importer matches an existing article by source address, then by slug, and skips it unless it is told to update. It refuses to overwrite a hand-written article that owns the slug.
  • In-body images are kept only for the few posts where the picture carries meaning. Elsewhere the importer drops decorative images.
  • The importer flattens the post's footnotes into the body as [1]-style markers with the notes at the end. There is no footnote field.

Use the Is auto generated filter to work through the imported backlog, and the Live filter to split drafts from what is published. As with passages, publishing is what says a piece has been checked.

Publish an article

The same two rules apply as for a writing: stale narration blocks publishing, and you cannot unpublish an article a published journey is built on.

Columns on the list: Title, Author, Publication date, Is auto generated, What's New, Audio, Status, Published, Updated. Filters: Is auto generated, Live, and Is new eligible. The bulk actions are Publish and Clear What's New eligibility.

There is no duplicate-text check on articles.

Journeys

A Journey is a guided course. Each chapter is built on one published piece, and readers work through the chapters in your order and collect the journey's emblem at the end.

Journeys is a top-level item in the sidebar, next to Home. You edit a journey on one screen. The journey's own details are at the top. Its chapters are below.

Readers can walk your journeys in the app, and their progress is stored against particular chapters. Publishing one is not a dry run. Read What the app does with your journeys before you restructure a journey people have already started.

Build a journey

  1. Choose Journeys, then Add Journey.
  2. Fill in the journey details:

    Field What it is
    Name What the journey is called, for example "Becoming Your True Self".
    Slug A short identifier for links. It fills in from the Name until you edit it yourself or publish the journey — leave it as is unless you have a reason to change it.
    Description The pitch on the journey card. The app shows the first lines and a "see more".
    Foreword pages The journey's opening words, one page at a time. The reader moves through these before chapter 1. Readers without a subscription see them too, so write them as an invitation. Add a page, write it, then add another. Drag to reorder. Three or four pages is typical. There is no limit. Optional.
    Afterword pages The journey's closing words, one page at a time. The reader sees these after the final chapter's emblem reveal, before collecting the emblem. By then the journey already counts as finished. Only readers who can open the journey see them. Optional.
    Practice The small practice the reader is asked to carry out of the journey. One for the whole course.
    Emblem The journey's picture. It is the artwork on the journey card and the picture the reader collects at the end. Upload one image, not two. The app shows it blurred, then clears it as the reader gets further. So that the app can tint it with the theme colour, export it as a transparent PNG, transparent only where there is no artwork, in greyscale only: black for linework that stays black, white for paper that stays white, and mid-grey (about 50%) for anything that should take the theme colour. The further a grey sits from 50%, the weaker the tint. The CMS checks the emblem when you first add or replace it, and again when you publish. It refuses a file that is not a PNG, has no transparent background, or has colour in it.
    Emblem title, Emblem description The words shown with the emblem once it is fully revealed, for example "Journey walked" and a line about why this picture suits this journey.
    Themes, Primary theme Which worlds this journey belongs to. The primary theme sets the journey's colour and artwork in the app. A journey has no colour of its own.
  3. Add the chapters under Chapters. Add one chapter per piece the reader moves through. Drag the chapters into order. The order you set is the order the reader gets.

  4. Fill in each chapter:

    Field What it is
    The piece The Passage, Writing, or Article the chapter is built on. Choose exactly one.
    Title The chapter's own title. It does not have to match the piece's title.
    Slug A short identifier. It fills in from the Title until you edit it yourself — a chapter has no publish state of its own, so unlike everything else that's the only thing that stops it. Leave it as is.
    Opening question The question shown before the reader sees the piece.
    Intro pages Your lead-in to the piece, one page at a time. The reader moves through these before Lewis's words. Add a page, write it, then add another. Drag to reorder. About four pages is typical. There is no limit. Optional.
    Description This chapter's own framing, in your words: why this piece, in this position. Optional.
    Pause line A short line that lets the passage settle. Optional.
    Reveal line The line shown as the emblem comes a little more into focus. Optional.

    You will not find a reflection question or themes on the chapter. Both come from the piece itself, so the same piece asks the same thing and sits in the same worlds everywhere it is read. To change either, edit the piece. The practice is on the journey, not the chapter: one for the whole course.

  5. Choose Save draft while you work. Read Publish a journey before you publish.

Choose the piece

Each chapter has three choosers: Passage, Writing, and Article. Use one. Leave the other two empty. If you fill in two, the save is refused.

For a writing or an article, open the chooser to get a search box over everything of that type. Type a few words of the title to find what you want. The same writing or article can sit in several chapters.

A passage works differently. See A chapter's own passage.

A chapter's own passage

You write a new passage for each chapter. You do not search for one or reuse one. Create a passage opens a form for a new passage. Write the interpretation for this journey: it is the only one this passage has.

  • It belongs to this chapter. No other chapter or journey can use it.
  • Readers meet it only inside the journey. It never appears on Home, theme pages, related quotes, or the app's passage list, and it is not in the CMS Passages list or any other passage chooser.
  • Make a fresh one even if the excerpt already exists. There is no duplicate warning here, and a passage in the Passages list with the same text is left as it is.
  • Edit it from the chapter. Choose Edit this passage under the chooser. The body locks once the passage goes live, like any other passage.
  • Replace it with a new one by choosing Replace with a new passage. The old passage stays in the CMS, unused and out of sight. Nothing is deleted, so bookmarks and reflections on it survive.

Narrate it in the Audio Studio as usual. Open the passage, then choose the Audio Studio button.

Add a piece while building a journey

If the writing or article does not exist yet, switch to the Create new tab. For a passage, the form is the whole window. Fill it in, then choose Save draft. The piece is created and linked to the chapter in one step, and you stay on the journey. This form has the same fields as the piece's own screen, themes and tags included, so you make a real piece, not a stub.

Four things are not in this window and stay on the piece's own screen: the audio, the featured image, the related-quotes list for passages, and publishing.

A piece made this way is always a draft. Open it to finish and publish it: a writing or an article from its list, a passage with Edit this passage on its chapter. You will do this anyway, because a journey cannot go live until every piece in it is published.

You never type a slug for a piece made this way. The CMS works it out from the title.

Import a journey

Import a Journey in the sidebar loads a journey from a Journey Builder export file. It creates the journey and the file's new pieces as drafts, which you then review and publish the usual way. The screen shows you what it plans to do before it writes anything. The item is hidden unless you can create journeys, passages, writings, and articles.

Every passage in the file becomes a new passage for its chapter, even if the library already has the same text. The import never asks you about duplicates. A file can reuse an existing writing or article, but never an existing passage.

Make a journey free for everyone

One tick on the journey, Always free. While it is on, anyone can read the journey without a subscription. Turn it off and the journey needs one again.

Two things are worth knowing before you use it:

  • Turning it off does not take the journey away from everyone. Readers whose first journey this was keep it for good. Everyone else loses access the moment you untick it, including readers who are part-way through, so untick a journey people are reading only on purpose.
  • A reader's first journey is free anyway. Whichever journey someone reads first becomes theirs permanently, ticked or not. So a short journey you mark always-free as a welcome mat will be the free one most new readers spend their single free journey on. That is expected. Just know that is what the tick does for a brand-new reader, rather than giving them a spare.

It changes nothing else. It does not reorder Home, does not affect which journeys appear in Featured Journeys, and does not mark the journey in any list. You still arrange Featured Journeys by dragging.

The app can show readers a list of every always-free journey, so the tick is how a journey gets into it.

Publish a journey

A journey publishes as a whole. Its chapters go live with it and never publish on their own. The pieces those chapters point at are separate. Each piece has its own draft and live state, and you must publish it first.

  • A journey stays a draft until you publish it, however many times you save.
  • If any piece is still a draft, the CMS refuses to publish the journey. The error names the chapters that hold it up. Publish those pieces, then come back.
  • A journey needs at least one published chapter.
  • A journey needs a primary theme. Pick one under Taxonomy before publishing — it colours the journey card. Without one, the app falls back to showing whatever theme the reader is currently in, which looks wrong on a journey about something else.
  • Related journeys must be empty, or two to four. One on its own looks like a mistake on the finished screen, so publishing is refused. Add another, or remove it. Empty is always fine, which is how the first journeys get published. You cannot list the same journey twice or link a journey to itself.
  • Publishing needs the publish permission. You publish the journey from the journey's own screen. A draft piece is published from its own screen, or from its list with the Publish bulk action. If you can only add content, you can still build the journey and create pieces from it, and someone with the permission publishes them.

The reason for this order: a published journey that points at unpublished pieces would show the reader chapters that cannot open.

After you publish

  • Edit a chapter, or reorder chapters, and the live journey changes once you publish again.
  • You cannot unpublish a piece that a live journey is built on. The CMS refuses and names the journey. Otherwise the journey would keep a chapter the reader cannot open. First unpublish the journey. Or point that chapter at a different piece, then publish the journey again. Until you publish, the live journey still uses the old piece, so the unpublish stays blocked.
  • You cannot delete a piece that a journey uses. First remove the chapter from the journey.

What the app does with your journeys

  • Readers can walk them end to end. The Journeys tab lists every published journey, a reader opens one, works through the chapters in your order, and collects its emblem at the end.
  • Progress is saved against particular chapters, per reader, on the server. That is why the CMS refuses to unpublish a piece a published journey is built on. A chapter vanishing under a reader mid-course would strand their progress.
  • Removing a chapter a reader has finished is refused. The CMS stops you and names the chapter and how many readers would lose their progress. Removing one nobody has finished is fine. See below.
  • Related journeys are used, on the screen a reader sees after finishing.

Remove a chapter

Remove a chapter freely while nobody has finished it. Once a reader has, publishing that removal is refused, and the message names the chapter and how many readers it would affect.

The reason is that progress is recorded against a particular chapter. Deleting it deletes their record of having finished it, so they lose the credit while the chapters after it stay, and are sent back through something they have already read.

The way forward is to keep the chapter and point it at a different piece, rather than removing it. Unpublishing the journey does not help: applying a removal needs a publish either way, and the refusal applies whether the journey is live or not.

Saving a draft is never blocked. The removal only takes effect when you publish, so you can keep working and come back to it. But publishing that removal stays refused while anyone has finished the chapter.

Narration: the Audio Studio

Narration is produced in the Audio Studio, one screen per piece or journey. Open it from the Audio column in the list, or from the actions menu (⋯) in the edit form's header.

There is a studio for Passages, Writings, Articles, and Journeys. Books have none.

The studio splits its target into sections. A section is one text field, and each one gets its own recording:

Studio Sections
Passage The quote, the interpretation, the reflection prompt.
Writing The body, the reflection prompt.
Article The body, the reflection prompt.
Journey Per chapter: the opening question, the lead-in pages, the pause line, the reveal line. Then one Journey group: the foreword pages, the practice, the afterword pages.

A blank field is not a section. A chapter with no pause line has nothing to narrate there.

Record a section

  1. The studio drafts the scripts when you open it. Drafting is free, so it runs on its own. An environment with drafting turned off shows a Prepare narration button instead. No audio is recorded yet. Recording spends ElevenLabs credits, so it only happens when you ask for it. A section that already has approved, current audio is left alone.
  2. Read the scripts before you spend anything. The AI adds performance cues in square brackets, such as [softly] and [pause]. It cannot change the words. A script whose words differ from the source text is rejected, so what you approve is always the written text, performed.
  3. Generate the whole unit. Click Generate passage, Generate chapter, or the equivalent on the header row to record every section that still needs audio. That is the unit you approve, so generating it together means Play passage or Play chapter is a clean listen rather than a wait between sections. The button shows how many sections it will record and the estimated credits. When the month's ElevenLabs quota drops under 20%, a note above the cards says how much is left. To check one section first, use Generate & play on that card. Recording keeps going on the server even if you close the tab or reload — reopen the studio and a section still recording shows Generating… until it finishes, with nothing lost and nothing billed twice. (The one exception: a server restart landing in that exact window loses the recording, same as any other failure — the card shows Generation failed with Retry, not a second silent charge.)
  4. Play each section. The narrated text sits under the player and each word lights up as it is spoken, so you can hear and see where a cue lands. If a delivery is off, edit the cues in the script box and Regenerate just that section, which spends again and shows the cost on the card, or Discard the candidate. The voice dropdown beside Regenerate holds a shortlist you can audition: Lewis's own cloned voice for his words, and several narrator options for the editorial ones. Each comparison is a fresh recording and costs credits, so try a voice on one short section before running a whole piece through it.
  5. Approve. Click Approve passage, Approve chapter, or the equivalent once every section sounds right. Approval is all-or-nothing for that unit, because the app plays it as one stream. Only approved audio is ever served to the app.

What approval does and does not do

Approving is not shipping. The bar at the foot of the screen says which state the audio is in: how many approved sections are not live yet, or Audio is live once they all are. When there is nothing left to ship, the button reads Published and is greyed out. Publish on that bar publishes the piece, and it appears only if you may publish.

  • Nothing needs audio to publish. An unnarrated section simply has no player in the app.
  • An approved section shows Re-record in place of the script box. It opens the script so you can adjust cues and record a new take, which replaces the live audio only when you approve again.
  • Editing a field's words after approval makes its audio stale. The app stops serving it and the list's Audio column flags it, until you re-record and re-approve. Publishing the piece is refused while any of its audio is stale, and the message names the section. Saving a draft is never blocked.
  • Punctuation and capitalisation fixes do not stale audio.
  • Audio approved against an unpublished edit shows "not live yet" until that edit is published.

Narrate a journey

The journey studio works the same way, with the cards grouped by chapter in reading order. The journey's own cards come last, in one Journey group: foreword pages, then the practice, then afterword pages. The foreword plays before chapter 1 in the app, even though its cards sit at the end here. Each chapter generates and approves as a unit.

Each chapter's piece appears as a read-only row with its narration state and a link. A passage, letter, or article is narrated in its own studio, so the recording a reader hears inside the journey is the same one they hear on the piece's own reading screen. Generating a chapter does not narrate its piece. Click Open studio on the piece row and narrate the piece there.

Chapters added in an unsaved draft appear in the studio after the journey is published.

The Audio column on the Journeys list counts a chapter only when its own cards and its piece have current audio. A chapter with no framing lines of its own still counts, through its piece. A stale piece marks its chapter stale, and the column shows the amber warning.

Upload a human recording

A section does not have to be AI-narrated. Click Upload recording on a card to attach a narration recorded by a real person. One file per section: the narrator delivers each field as a separate file, and you upload each to its own card.

  • mp3 or m4a only, up to 25MB and under two hours. A wav is refused. Export it as mp3 before uploading.
  • The upload becomes a candidate take like any generated one. Play it, Discard it, or approve it with the rest. Its badge reads Human recording.
  • A human recording has no script, cues, or voice, so the card hides those controls. To change it, click Replace recording and upload a new file.
  • Editing the field's words makes a human recording stale exactly like an AI one. Nothing checks that the narrator read the text as written, so listen before you approve.
  • The app plays a human recording without word-by-word highlighting.

Home

You set up Home from one screen in the CMS. Every section below is a setting on it.

There is only one Home. You edit that one screen. Do not try to add a second.

Home quote queue

The quote at the top of Home. Readers see one a day, in the order you set here.

  • On the Home screen, open the Home quote queue panel. Add passages and drag to reorder.
  • The order is the schedule. The passage at the top shows first, the next one the following day, and so on. There are no dates to fill in.
  • When the list runs out it starts again from the top, so a queue of seven passages repeats weekly until you change it. Add more whenever you like. There is no limit, so you can prepare a month or a season in advance.
  • Inserting a passage shifts everything after it. That is the trade for not having dates: you arrange a running order rather than booking each day.
  • Only published passages show. If you unpublish one that is in the queue, it is skipped and the days close up behind it. Delete a passage and it leaves the queue entirely. Passages made inside a journey are not offered.
  • Leave the queue empty and Home falls back to showing recently published passages, so the top of Home is never blank while you are still building the list.

One thing to know: readers advance through the queue on their own device's calendar, so someone who opens the app for the first time today starts at the top of the list rather than wherever another reader has got to. Plan the order as a sequence, not as "this passage on this date".

  • You build journeys on the Journeys screens, not here. This panel only picks which ones Home shows. See Journeys.
  • Add and order the journeys. On the Home screen, open the Featured Journeys panel. Add a journey, then drag the rows into the order you want. The app shows them in that order, up to 5. This list is fully manual. The app does not fill it for you.
  • A journey added twice shows once. Adding the same journey to two rows is harmless. The app shows it in the higher position and ignores the second row.
  • You can queue a draft. A journey that is not published yet can sit in the list. The app skips it until then, and it starts showing the moment you publish it, with no change needed here.
  • You cannot pull a piece out from under a live journey. If you try to unpublish a piece one of its chapters uses, the CMS refuses and names the journey. Unpublish the journey first, or point that chapter at another piece. So the chapter count readers see is always the whole journey.
  • The emblem is the picture readers see. The card uses the journey's emblem, the same image readers collect when they finish. Set it on the journey, not here. A journey with no emblem still shows, with no picture.
  • Removing a journey from the list does not delete it. It only leaves the Home carousel. Delete a journey on the Journeys screen, and it leaves this list on its own.

Theme of the Week

  • On the Home screen, open the Featured theme panel. Pick one featured theme. You can also set a header label. The label defaults to "Theme of the Week".
  • The featured theme becomes Home's Theme of the Week. It also sets the colour for the Home page.
  • You manage the themes themselves on the Themes screens. See Themes.

What's New

  • Mark a piece for What's New. Each Article and Writing has a What's New checkbox, named Is new eligible on the edit form. Tick it to make the piece eligible. The Articles and Writings lists show a What's New column and a filter, so you can find the ticked pieces. The lists also show a Published column, the date the app orders by.
  • The tick counts only after you publish. If you tick a draft, the tick takes effect when you publish the piece.
  • Pin the pieces you want first. On the Home screen, add an Article or a Writing to the What's New pins. Drag them into order. The pins lead the carousel. The app fills the rest with the newest eligible pieces, up to 10. The pin list stops at 10, because a pin past the cap could never surface.
  • Bulk actions save time. The content lists have a Publish action to make selected drafts live. The Articles and Writings lists also have a Clear What's New eligibility action to untick many pieces at once.
  • Add and order the books. On the Home screen, open the Featured Books panel. Add a book, then drag the rows into the order you want. The app shows them in that order, up to 10. This list is fully manual. The app does not fill it for you.
  • A draft book can sit in the list. The app skips it until you publish the book.
  • Set the cover and the buy link on the Book, not here. See Books.

Further Reading

  • There is nothing to set up. The Home "Further Reading" shelf, also called "Keep Discovering", fills itself from all published essays and letters. There is no list to curate and no pins.
  • Publishing adds a piece, and unpublishing removes it. Publish a Writing that is an essay or a letter, and it joins the shelf on its own. Unpublish it, and it leaves. A chapter never joins.
  • The app picks and rotates for you. The app shows up to 10 pieces from that set. The selection changes day to day, and the app cycles through them. You do not pick or order anything. Keep the essay and letter library published and correct.

About, Privacy Policy, Terms of Service, and Support are the four web pages the app links out to. About and Support ship empty as placeholders so the app has the links. Add copy when the estate supplies it.

Where to edit

  1. In the CMS sidebar, open Settings.
  2. Open Legal and Support.
  3. Edit the About, Privacy Policy, Terms of Service, or Support section, then save.

There is one Legal and Support screen, not a list. You edit the same screen every time. There is no "add new" or "create page" step.

What each page has

  • Title, plain text, shown as the page's heading. Rename it freely. It does not affect the URL.
  • Body, a stack of blocks. Click the + button to add a block and pick its type:
    • Text, rich text. Formatting is limited to bold, italic, links, bullet and numbered lists, and two heading levels (Heading 2, Heading 3) for section breaks.
    • Table, a grid for tabular content, such as the Purpose and Legal Basis table in the Privacy Policy. See Add a table.

There is no Heading 1 in the Text block. The Title field is the page's one top-level heading, so start your sections at Heading 2.

Add a table

  1. In the body, click + and choose Table.
  2. Click a cell and type. Tab moves to the next cell. Enter moves down a row.
  3. To add or remove rows and columns, right-click any cell. The menu has Insert row above, Insert row below, Insert column left, Insert column right, Remove row, and Remove column. Right-click is the only way to change the table size. There is no drag-to-expand.
  4. To turn the top row or first column into headers, use the Table headers dropdown above the grid. The dropdowns above the grid only mark headers. They do not add or remove cells.

What the copy must include for app-store approval

This applies to the Privacy Policy and Terms of Service. Their URLs go on the Apple and Google app-store listings, and a reviewer opens the page to check it. About and Support are not listing URLs, so they carry no app-store requirement. Two things must be in each policy's body copy, or a reviewer can reject the listing:

  • Who it applies to. Name the app and the company or estate the policy covers. A reviewer rejects a policy that could belong to anyone.
  • A last-updated date. State when the copy last changed, for example "Last updated 26 August 2026". Update it whenever you edit the copy.

The page is deliberately plain, with no site header, menu, or footer, so it also sits cleanly inside the app's own screen. Keep the identifying details in the copy rather than expecting a header or footer to carry them.

Publishing

Saving publishes immediately. Settings screens have no draft state and no preview. Check the wording before you save, then confirm it live at the page's URL.

Where it is published

Page URL
About https://app.cslewis.com/about/
Privacy Policy https://app.cslewis.com/privacy-policy/
Terms of Service https://app.cslewis.com/terms-of-service/
Support https://app.cslewis.com/support/

Open a URL after saving to confirm the change. The mobile app loads the same page (with ?format=embed) in its in-app webview. The Privacy Policy and Terms of Service URLs are also what go on the app-store listings. About and Support are opened only from inside the app.

Adding another page

The four pages ship with fixed URLs so a link never changes once it is registered, either on the app-store listing or in the app. A new page needs an engineer to add the field and the route. It is not something this screen can grow on its own.

Paywall

The wording on the Journey Premium offer screen — the headline, the line under it, the short claims under those, and the renewal-reminder window disclosed next to the purchase button.

Where to edit

  1. In the CMS sidebar, open Settings.
  2. Open Paywall.

There is one Paywall screen, not a list. You edit the same screen every time.

What's on the screen

  • Headline and Subtitle — the two lines at the top of the offer screen.
  • Benefit lines — the short claims under them, in order. Add, remove, or reorder as many as you need. The first line is the one about how many guided Journeys are on offer — it reads as a benefit like the others, so write it as a full claim (for example "10+ guided Journeys"), not just a number.
  • Renewal disclosure — when the renewal reminder emails go out, in working days (Monday to Friday) before a renewal charge. The app shows the same numbers to readers before they buy, and the reminder emails follow them, so the two always match. These are legal timings agreed with counsel, not just copy: don't change them without checking with the team first.
  • Monthly reminder working days — before a monthly charge. A monthly subscriber gets a reminder about every six months, not every month.
  • Annual first reminder working days — the earlier reminder before an annual renewal. Leave it blank to send only one. It must be more than the last reminder.
  • Annual second reminder working days — the last reminder before an annual renewal.
  • Annual renewal reminder days — the older calendar-day window. It is still shown to the app until the app moves to the working-day fields; the emails don't use it.

What never appears here: prices, billing periods, and the "save X%" badge. Those come from the App Store and Google Play at the moment someone opens the screen, so they're never something you type in the CMS.

Publishing

Saving publishes immediately, like Legal and Support — no draft state, no preview. Every save is logged with who made it and when, since this screen is an offer made to buyers.

Limits at a glance

Home

Section Most shown Order
Home quote queue 1 a day Your drag order, repeating. No limit on the list.
Theme of the Week 1 One slot only.
Featured Journeys 5 Your drag order. Manual, no auto-fill.
What's New 10 Pins first, in your drag order, then newest eligible.
Featured Books 10 Your drag order. Manual, no auto-fill.
Further Reading 10 Automatic. Random, changes daily, no curation.

Fields and files

Thing Limit
Theme name 30 characters
Theme framing line 70 characters
Book cover At least 340 by 510 pixels, 2:3 portrait, JPEG or PNG
Related quotes on a passage 4
Uploaded narration mp3 or m4a, up to 25MB, under 2 hours
Paywall headline or subtitle 255 characters
Paywall benefit line 100 characters

What blocks a publish

You are publishing It is refused when
Any piece Its approved audio is stale because you changed the words.
A journey A piece in it is still a draft.
A journey It has no published chapter.
A journey It has no primary theme.
A journey It lists exactly one related journey. Use none, or two to four.
A journey You removed a chapter a reader has already finished.

You cannot unpublish a piece that a published journey is built on, and you cannot delete a piece a journey uses.

What readers keep, and what you can see

  • Reflections are private. A reader writes one reflection per piece, and it keeps the question as it was worded when they saved it. Editors never see reflections in the CMS, and editing a reflection prompt does not change an answer already written.
  • Progress is per reader. It points at particular chapters, which is why the CMS guards chapters and the pieces under them.
  • Bookmarks are private too. A reader saves a piece, and the save disappears if the piece is deleted.