Installation
Install Quiet in five steps: upload quiet.zip in Ghost Admin, activate it, publish the three section pages, and add the routes file that powers the archive, the podcast and the video channel.
Quick start
Five short steps. The first three take a minute and your site is live on the new theme. Steps 4 and 5 belong together, and they unlock the article archive, the podcast page and the video channel.
Check your Ghost version first
Quiet needs Ghost 6.0.0 or later. On Ghost 5 the upload is rejected. You can see your version at the bottom of any Ghost Admin page, and there is more detail in the Compatibility guide.
Upload the zip
Click Upload theme and choose quiet.zip.
Ghost checks the theme as it uploads. You should see no errors and no warnings.

Activate
Click Activate when the upload finishes. Your site is now running Quiet.
Visit your homepage. Until you build any sections it shows a starter layout: your site title, your description and your most recent posts. That is deliberate, and Build your homepage picks up from there.
Publish the three section pages
The routes file in step 5 attaches a page to each of three addresses, so those pages have to exist before you upload it. Create them now as ordinary Ghost pages, each with an exact URL slug.
| Page slug | Address it powers | What the page provides |
|---|---|---|
articles | /articles/, your article archive | The heading and the line under it, above the list of posts |
podcast | /podcast/, your podcast home | Cover art, the show name, the description, and space for a player embed |
videos | /videos/, your video channel | The channel name, a tagline, and space for an intro or trailer |
For each one: Pages → New page, give it a title, open the settings panel, set the Page URL to the slug above, then publish. A title alone is enough to start with; the guides for the archive, the podcast and the video channel cover the rest of the fields.

A missing page means a 404, feed included
An address whose page has not been published answers 404, and so does that section's RSS feed. If you do not want a podcast or a video channel yet, publish the pages anyway (they can be one line long) or leave those addresses unused: nothing else in the theme depends on them.
Upload the routes file
Quiet ships the file, so there is nothing to write. Two ways to get it:
-
From the theme zip.
routes.yamlsits at the top level ofquiet.zip. Unzip and take it from there. -
From here. The same file, no unzipping:
Downloadroutes.yamlroutes.yaml # Quiet — optional routing. # # The articles archive and the homepage are fully correct WITHOUT this file: # Ghost renders home.hbs for page 1 of the root collection and index.hbs from # /page/2/ onward. Uploading it in Ghost Admin → Settings → Labs → Routes adds # two things: # # • a real first page for the archive at /articles/, instead of the archive # starting at /page/2/ with no page 1; # • the podcast at /podcast/ and the video channel at /videos/. This file is # the ONLY way podcast.hbs and videos.hbs are ever reached: both templates # are deliberately absent from the editor's Template dropdown, because they # need the `posts` and `pagination` a plain page render does not have. # # ⚠ CREATE THE PAGES FIRST. Each data binding below reads a published Ghost # page, and a data-bound route whose page does not exist yet responds 404 — # including that section's RSS feed. Before uploading this file, publish # THREE pages with these exact slugs: `articles`, `podcast`, `videos`. # (Their titles are yours to choose; only the slug matters. No page slugged # `home` is needed: `/` below is a plain template route, and the homepage # composes itself from #home-* section pages instead.) # # The collections' data blocks are deliberately long-form, NAMED `page`, and # `redirect: false` — all three parts are load-bearing: # # • The key `page` is what Ghost's meta layer reads: the route inherits the # page's title, description and og/twitter/schema data, so /podcast/ is # titled after the show instead of "Site title (Page 1)". A data block # under any other name renders the same fields but silently loses all of # that metadata. Templates read the page as {{page.title}} etc. # • `redirect: false` because these pages' slugs equal their route paths, # so the redirect buys nothing when the page exists — and when it is # MISSING, a claiming route turns the pages router's fall-through into a # 301 back onto itself: an infinite redirect loop instead of a 404. # (The shortform `data: page.podcast` forces redirect ON, which is why # it is not used here despite being the documented idiom.) # • `/: home` is a TEMPLATE route (a bare string names a template, per # route-settings-parser.ts): no data binding, no page to 404 on, so the # site root can never break. The homepage's content comes from the # #home-* section pages home.hbs fetches itself. routes: /: home collections: # ⚠ /articles/ MUST stay first. With no collection mounted on "/", Ghost # advertises the FIRST collection's feed as the site's RSS feed in <head>, # and on a writer's site that has to be the essays feed, not a section's. # # ⚠ The three filters below are a PARTITION, and that is not decoration. A # post can belong to only ONE collection: Ghost loads a post claimed by # another collection, then discards it again before rendering, which leaves # holes in pagination. So the NOT-IN list here must always be exactly the # union of the positive filters below it, and a fourth section means # extending it again. # # ⚠ Do not tag one post both #podcast and #video. /articles/ excludes it and # /podcast/ claims it, because /podcast/ is registered first. /articles/: permalink: /{slug}/ filter: 'tag:-[hash-podcast,hash-video]' template: index data: page: resource: pages type: read slug: articles redirect: false # The podcast. Episodes are ordinary posts carrying the internal tag # #podcast. The show's own identity — cover art, name, description, the # player embed, and the route's own metadata — comes from the page slugged # "podcast", read in the template as {{page.*}}. # # ⚠ Tagging an already-published post #podcast moves it from /its-slug/ to # /podcast/its-slug/, and Ghost writes no redirect for that. Migrating an # existing show means adding the old paths to redirects.json. # rss: false — Ghost would otherwise mount /podcast/rss/, a feed with no # <enclosure> elements, which is exactly the feed the comment below warns # would mislead podcast apps. The show's real feed lives with its host # (Spotify/Transistor/etc.), linked through the platform-links row. /podcast/: permalink: /podcast/{slug}/ filter: 'tag:hash-podcast' template: podcast rss: false data: page: resource: pages type: read slug: podcast redirect: false # The video channel. Films are ordinary posts carrying the internal tag # #video. The channel's own identity — name, description, any extra body # copy, and the route's own metadata — comes from the page slugged "videos", # read in the template as {{page.*}}. # # RSS stays enabled here, unlike the podcast's (rss: false above): a # blog-style feed of a film's show notes is a legitimate feed, whereas a # podcast feed with no <enclosure> would mislead podcast apps. # # ⚠ Tagging an already-published post #video moves it from /its-slug/ to # /videos/its-slug/, and Ghost writes no redirect for that. Migrating an # existing channel means adding the old paths to redirects.json. /videos/: permalink: /videos/{slug}/ filter: 'tag:hash-video' template: videos data: page: resource: pages type: read slug: videos redirect: false taxonomies: tag: /tag/{slug}/ author: /author/{slug}/
In Ghost Admin, go to Settings → Labs → Beta features → Upload routes file and choose the file you just saved.

Your feed address changes
With the routes file installed, your main RSS feed moves from /rss/ to /articles/rss/. Quiet's own footer icon and page links follow the change automatically, but anything outside your site that points at /rss/ needs updating: newsletter services, a podcast directory, an old link in a bio.
Once per install
You upload the routes file once. Re-upload it only if a release changes the file, which the release notes will say.
What next
Build your homepage →That guide takes you from the starter layout to a composed homepage, one section at a time, and ends with the exact recipe behind the demo site.
Compatibility
Quiet runs on Ghost 6.0.0 and later. What to check before installing, what needs the routes file, which browsers are supported, and how the theme behaves for readers with different needs.
Build your homepage
A guided walkthrough from the starter layout to a composed homepage, one section at a time, ending with the exact page-and-tag recipe behind the Quiet demo site.
