Kite theme documentation

On this page

Kite Theme Documentation

Welcome to the Kite Ghost theme by Iris Themes. Kite is a link-in-bio Ghost theme with sections for quick links, guest appearances, a shop, life updates, and work inquiries, plus a full blog with memberships and newsletter signup built in.

The homepage uses an alternating rhythm — open sections on the cream, boxed white cards, and full-width dark / accent bands — so it reads as a designed page rather than a stack of identical boxes.

If you run into any issue or have an idea for a feature you'd like to see, contact us at [email protected] — all future updates are included with your purchase.

The Kite homepage — bio hero with avatar, name, location and email pills, social icons, and the quick-links card
The Kite homepage — the bio hero and quick-links card (shown here in the default neobrutalist style).

Theme info

  • Current version: 1.1.0
  • Compatible with: Ghost 5.0 and newer (tested on Ghost 6)
  • Editor support: all Koenig cards styled — callout, bookmark, toggle, gallery, file, product, header, button, audio, video, and embeds

Installation

  1. In Ghost Admin, go to Settings → Design & branding → Change theme.
  2. Click Upload theme and select kite.zip.
  3. Activate the theme.

Kite ships with its own routes.yaml, which current Ghost versions apply automatically when the theme is activated. If your homepage doesn't show the bio landing after activation, apply the routes manually: unzip the theme, then go to Settings → Labs → Routes and upload the routes.yaml file from the theme folder.

Once the routes are applied, your site structure is:

  • / — Bio landing page (hero + homepage sections)
  • /latest/ — The full paginated post list
  • /your-post-slug/ — Individual posts
  • /tag/…/ and /author/…/ — Tag and author archives

Home page setup

The homepage is assembled from your site branding plus a set of optional sections. Most sections pull their content from a regular Ghost page, matched by slug — create the page, add content, and the section appears automatically. No page, no section: everything is optional.

The sections, in order down the page:

  • Heroborderless — Publication branding + hero settings
  • Quick links + signupboxed white card — Page slug links (+ Portal signup)
  • Guest appearancesfull-width dark band — Posts tagged #appearance
  • Closet / shopboxed white card — Page slug closet
  • Life latelyopen ruled list — Page slug life-lately
  • From the blogboxed white card — Your latest posts (automatic)
  • Work with meopen cards — Page slug work-with-me
  • Newsletter closerfull-width accent band — Portal signup

For page-based sections, the page title becomes the section heading and the custom excerpt (page settings sidebar → Excerpt) becomes the subtitle. The appearances, closet, life-lately, and work sections each also have a show/hide toggle in the theme settings.

Hero

The hero at the top of the homepage is borderless — it breathes on the background rather than sitting in a box. It's built from your publication settings:

  • Avatar — your publication logo (Settings → Design & branding → Publication logo); hidden when no logo is set
  • Name — the site title
  • Bio text — the Hero bio theme setting; if you leave it empty, your site description is used
  • Location and contact pills — the Location and Contact email theme settings (each is hidden when empty)
  • Social icons — see Social accounts below

Create a page with the slug links. Use product cards, bookmark cards, or header cards — each becomes a link row. Images are optional on link rows.

When members are enabled, a slim inline subscribe row appears at the bottom of this same box, below a dashed divider — so the links and the newsletter signup share one card instead of two stacked boxes.

Guest appearances

The appearances band pulls from your posts, not a page. Tag any post with the internal tag #appearance (post settings sidebar → Tags) and Kite lists the three most recent in a full-width dark band:

  • Show name — the post's primary public tag (add a tag like "Kite & Coffee")
  • Title — the post title
  • Meta — the post date and reading time
  • Artwork — the post's feature image

The section hides itself when no #appearance posts exist. Two theme settings control it: Show appearances turns it on/off, and Appearances dark band switches between the dark band and a plain boxed card. You can also override the heading and intro line with the Appearances heading / Appearances blurb settings.

Closet / shop

Create a page with the slug closet and add product cards:

  • Title — the product name
  • Description — brand and price (an extra line becomes a badge)
  • Button — the shop link

Life lately

Create a page with the slug life-lately and add product cards:

  • Image — the photo
  • Title — the headline
  • Description — a short blurb
  • Button — an optional link

Work with me

Create a page with the slug work-with-me and add product cards — each becomes a contact card with a heading (title), blurb (description), and a call-to-action button.

Hiding section pages from search engines

The homepage embeds these pages' content, so the standalone pages (/links/, /closet/, and so on) don't need to be discovered separately. Add the internal tag #no-index to each section page (page settings sidebar → Tags) and Kite will add a noindex meta tag to that page. Internal tags are never visible to your visitors, and the tag works on any page or post — including the posts you tag #appearance.

Newsletter sections

When members are enabled, the homepage has exactly two signup points: the inline subscribe row inside the quick-links box, and a full-width accent newsletter closer band at the very bottom. The closer's subtitle comes from the Newsletter blurb theme setting, with a sensible default when empty. See Members & newsletter.

From the blog

The homepage automatically shows your latest posts in a boxed card: one large featured post (image, tag pill, title, reading time) beside up to three compact rows, with a view all posts link to /latest/. This section is always on — it needs no setup.


Theme settings

All Kite options live in Settings → Design & branding → Customize → Theme:

  • Theme style — the whole look of the site from one dropdown (see Theme styles)
  • Secondary color — accent for pills, contact cards, and highlights
  • Location — pill in the homepage hero; empty to hide
  • Hero bio — intro under your name; falls back to the site description
  • Contact email — mailto pill in the hero; empty to hide
  • Handle — your @handle, shown in the footer; empty to hide
  • Newsletter blurb — subtitle for the newsletter signup sections
  • Show appearances — show/hide the guest appearances band (needs #appearance posts)
  • Appearances dark band — dark band (on) vs. plain boxed card (off)
  • Appearances heading / blurb — override the appearances section copy
  • Show closet / Show life / Show work — show/hide those homepage sections
  • Show search — adds a search button to the navigation
  • Tier buttons open Portal — on: membership tier buttons open Ghost Portal checkout; off: they link to your /membership/ page instead
  • Default billing period — whether the membership page shows monthly or yearly prices first
  • Spotify / Tumblr / Pinterest URL — extra social icons beyond Ghost's built-in accounts

Theme styles

Kite ships 11 complete visual styles. Switching styles changes colors, typography, shadows, and corner rounding across the entire site:

  • neobrutalist (default) — Raw borders, hard offset shadows, loud colors
  • swiss — Strict grids, grayscale, Helvetica
  • midnight — A deep, calm dark mode
  • bubblegum — Pink, round, and playful
  • editorial — Serif headlines on warm cream
  • retro-os — Beveled system chrome on a teal desktop
  • bitmap — 1-bit dither patterns and pixel-hard shadows
  • glass — Frosted, translucent panels over a colored glow
  • minimal — Flat white cards, hairlines, one loud accent
  • arcade — 8-bit platformers — coin blocks and pixel type
  • aqua — Pinstripes, traffic lights, glossy gel buttons
Kite homepage rendered in the Neobrutalist style
Neobrutalist  neobrutalist
Default — raw borders, hard offset shadows, loud colors
Kite homepage rendered in the Swiss style
Swiss  swiss
Strict grids, grayscale, Helvetica
Kite homepage rendered in the Midnight style
Midnight  midnight
A deep, calm dark mode
Kite homepage rendered in the Bubblegum style
Bubblegum  bubblegum
Pink, round, and playful
Kite homepage rendered in the Editorial style
Editorial  editorial
Serif headlines on warm cream
Kite homepage rendered in the Retro OS style
Retro OS  retro-os
Beveled system chrome on a teal desktop
Kite homepage rendered in the Bitmap style
Bitmap  bitmap
1-bit dither patterns and pixel-hard shadows
Kite homepage rendered in the Glass style
Glass  glass
Frosted, translucent panels over a colored glow
Kite homepage rendered in the Minimal style
Minimal  minimal
Flat white cards, hairlines, one loud accent
Kite homepage rendered in the Arcade style
Arcade  arcade
8-bit platformers — coin blocks and pixel type
Kite homepage rendered in the Aqua style
Aqua  aqua
Pinstripes, traffic lights, glossy gel buttons

Every style follows your brand colors: the primary color comes from Settings → Design & branding → Brand color, and the secondary from the Secondary color theme setting. Styles remix these into their own palettes, and text on accent surfaces automatically switches between dark and light for contrast — so even a pale brand color stays readable.

Custom fonts

Kite supports Ghost's native font picker (Settings → Design & branding → Typography). A font chosen there overrides the active style's typeface. Leave it on the default to use each style's own fonts.


Social accounts

Icons in the hero and footer appear automatically for any account you fill in under Settings → General → Social accounts — Instagram, Facebook, X, TikTok, YouTube, Threads, Bluesky, Mastodon, and LinkedIn are supported.

Spotify, Tumblr, and Pinterest aren't in Ghost's built-in list, so Kite provides them as theme settings — paste the full profile URL into the matching URL setting.


Members & newsletter

Kite is built around Ghost memberships. Enable them under Settings → Membership:

  • Signup forms — the homepage newsletter sections and the signup card under each post submit straight to your members list, with loading, success, and error states.
  • Portal — the Log in / Subscribe buttons in the navigation open Ghost Portal, and signed-in members get an account menu with their avatar.
  • Paywall — posts and pages with restricted visibility show a public preview followed by a styled upgrade prompt (different messaging for free-member, paid, and specific-tier content). Post cards mark restricted content with a Members or Paid badge.
  • Comments — enable native comments under Settings → Membership → Commenting and they appear under posts automatically.

To sell subscriptions, connect Stripe under Settings → Membership → Payments and set up your tiers.

Membership, sign-in & sign-up pages

Kite includes three optional custom page templates. To use one, create a page, then in the page settings sidebar open Template and choose the matching template. Give each page the suggested slug so the built-in links line up.

  • Membership (suggested slug membership) — a pricing page that lists your active Ghost tiers (free + paid) as cards, with a monthly ⇄ yearly switch. The page title, excerpt, and body come from the page itself; the tier cards, prices, and benefits come from Ghost. Two theme settings tune it: Default billing period sets whether monthly or yearly shows first, and Tier buttons open Portal decides whether the buttons open Portal checkout or link back to this page. Any content you add to the page body renders below the tiers — handy for an FAQ.
  • Sign in (suggested slug signin) — a themed sign-in page using Ghost's native magic-link login (no Portal popup). The title and excerpt come from the page; leave them blank for sensible defaults.
  • Sign up (suggested slug signup) — a themed sign-up page for free accounts, also using magic-link. For paid tiers, point people at the Membership page instead.

Blog & posts

The full post list lives at /latest/, with a tag filter row at the top and pagination below. The first page highlights your most recent featured post in a large card — feature a post via its settings sidebar → Feature this post.

Single posts include the primary tag, author byline, share buttons (X, Facebook, and copy-link), an author card, previous/next navigation, and the newsletter signup card.

Tag colors

Tag pills are color-coded. Three slugs have preset palette colors — style (secondary), life (yellow), and wellness (blue) — and every other tag uses the primary color. To remap these, edit partials/tag-color.hbs.

Posts per page

Set in package.json via the posts_per_page property (default: 10).


Turn on the Show search theme setting to add a search button to the navigation. It opens Ghost's native search — no extra setup needed. You can also link to search from any menu item by using #/search as the URL.


Translation

Kite is fully translatable. To add your language:

  1. Unzip the theme and open the locales folder.
  2. Duplicate en.json, name it with your language code (for example de.json), and translate the values.
  3. Re-zip and upload the theme, then set your language under Settings → General → Publication language.

Theme development

CSS and JS are bundled with Vite from assets/src/ to assets/built/. Kite uses vanilla JS — no jQuery or other runtime dependencies.

npm install
npm run dev    # watch mode
npm run build  # production build
npm run test   # gscan theme validation
npm run zip    # build + package to dist/kite.zip

Main templates: default.hbs (HTML shell), home.hbs (bio landing), index.hbs (post list), post.hbs, page.hbs, tag.hbs, author.hbs, error.hbs, the three custom-template-*.hbs pages (membership, sign-in, sign-up), and the homepage sections in partials/section-*.hbs.

Kite also works with the Deploy Ghost Theme GitHub Action for automatic deploys on push.


Changelog

1.0.0 — July 14, 2026

  • Initial release