PHPackages                             eddiedale/index-theme - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. eddiedale/index-theme

ActiveKirby-plugin[Templating &amp; Views](/categories/templating)

eddiedale/index-theme
=====================

A minimal portfolio and blog theme for Kirby CMS

v1.1.2(1mo ago)48MITPHP

Since Feb 27Pushed 1mo agoCompare

[ Source](https://github.com/eddiedale/index-theme)[ Packagist](https://packagist.org/packages/eddiedale/index-theme)[ RSS](/packages/eddiedale-index-theme/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (2)Versions (4)Used By (0)

Index – A minimal portfolio and blog theme for Kirby CMS
========================================================

[](#index--a-minimal-portfolio-and-blog-theme-for-kirby-cms)

[![Screenshot of the Index Theme for Kirby CMS](kirby-index-theme-screenshot.jpg)](kirby-index-theme-screenshot.jpg)

A minimal portfolio and blog theme for Kirby CMS. Built for Kirby 5 + PHP 8.2+.

Index is built for easy updates, not elaborate structure. No menu, no case studies, no complex navigation – because in my experience, that's where people get stuck and stop updating their portfolios.

List your work. Write when you want. That's it. The templates are simple to extend if you need more later.

Features
--------

[](#features)

### RSS Feed

[](#rss-feed)

Built-in RSS feed for your blog. Let readers subscribe and follow your writing without any extra setup.

### Sitemap

[](#sitemap)

Automatic XML sitemap generation for search engines. Better indexing out of the box.

### Minimal CSS

[](#minimal-css)

Tiny CSS footprint. Fast loading, easy to understand, simple to modify. No preprocessors, no frameworks, no complexity.

### Adjustable colors (two-color palette)

[](#adjustable-colors-two-color-palette)

Pick your primary and accent color. That's it. The constraint keeps your site cohesive and makes customization trivial. Change two variables, done.

### Geist font family

[](#geist-font-family)

Ships with [Geist](https://vercel.com/font) by Vercel — Geist Pixel as the main display font, Geist Sans for body text. Both are licensed under the [SIL Open Font License](assets/fonts/OFL.txt) and load fast. Swap them out by overriding the CSS variables.

### Two blog listing styles

[](#two-blog-listing-styles)

Choose between an index-style listing grouped by year, or a continuous feed that shows full posts in chronological order. Toggle between them from the Panel.

### Breadcrumbs and basic SEO fields

[](#breadcrumbs-and-basic-seo-fields)

Essential SEO handled for you. Page titles, meta descriptions, breadcrumbs for navigation context. The basics done right.

### No build tools

[](#no-build-tools)

No npm, no build process, no compilation step. Edit templates, refresh browser. That's it. Perfect for quick tweaks and easy deployment.

### Extensible via snippet overrides

[](#extensible-via-snippet-overrides)

Drop a `header-extra.php` snippet into `site/snippets/` to inject project-specific `` content — OG images, analytics, custom meta tags — without touching the theme.

Installation
------------

[](#installation)

### Requirements

[](#requirements)

- PHP 8.2 or higher (8.3+ recommended)
- A web server
- Kirby 5 (free for local development; license required for production — see [License](#license))
- Composer (Track A only — [getcomposer.org](https://getcomposer.org) if you don't have it)

### Starting point: Plainkit

[](#starting-point-plainkit)

Both installation tracks start from [Plainkit](https://getkirby.com/try) — Kirby's minimal starter kit. **Do not use Starterkit.** It ships with templates, blueprints, and sample content that conflict with the theme and are tedious to untangle.

Pick one track and follow it end to end — mixing them causes conflicts.

---

#### Track A: Composer

[](#track-a-composer)

1. Create a new project from Plainkit:

```
composer create-project getkirby/plainkit my-site
cd my-site
```

2. Add the theme:

```
composer require eddiedale/index-theme
```

3. Remove the conflicting Plainkit files — see the step below.

---

#### Track B: ZIP download or Git submodule

[](#track-b-zip-download-or-git-submodule)

1. Download [Plainkit](https://getkirby.com/try) and follow the [Kirby quickstart guide](https://getkirby.com/docs/guide/quickstart) to get it running locally. Then come back here.
2. Install the theme:

**Option 1: ZIP download**

- Download the ZIP from the [releases page](https://github.com/eddiedale/index-theme/releases)
- Extract it, rename the folder to `index-theme` if needed, and place it in `site/plugins/`

**Option 2: Git submodule** (recommended if your project is a git repo)

```
git submodule add https://github.com/eddiedale/index-theme.git site/plugins/index-theme
```

To pull in future theme updates:

```
git submodule update --remote site/plugins/index-theme
```

3. Remove the conflicting Plainkit files — see the step below.

---

### Remove conflicting Plainkit files (both tracks)

[](#remove-conflicting-plainkit-files-both-tracks)

Plainkit ships with a few stub files that silently override the theme's versions. Kirby always prefers files in `site/` over plugin files, so these need to go.

From the root of your project, run:

```
rm site/blueprints/site.yml site/blueprints/pages/default.yml site/templates/default.php
```

These files only exist in a fresh Plainkit — skip any that aren't there.

After this, your structure should look like:

```
site/
└── plugins/
    └── index-theme/
        ├── index.php
        ├── blueprints/
        ├── templates/
        └── ...

```

---

### Starter content

[](#starter-content)

The theme ships with a `content/` folder with some example content to show how the theme can be used.

> **Note:** Only do this on a fresh install. If you've already added your own content, skip this step — the commands below will delete it.

```
rm -rf content/                                      # removes files from Plainkit
cp -r site/plugins/index-theme/content/ content/     # copies starter content
```

Replace it with your own content whenever you're ready.

---

### First run

[](#first-run)

Navigate to `/panel` in your browser. You'll be prompted to create an admin account — do that first, then start editing your content from the Panel.

Configuration
-------------

[](#configuration)

The theme registers a few options you can set in `site/config/config.php`:

### `sitemap.ignore`

[](#sitemapignore)

Pages to exclude from the sitemap. Defaults to `['error']`.

```
return [
    'sitemap.ignore' => ['error', 'drafts'],
];
```

Customisation
-------------

[](#customisation)

Kirby always checks `site/templates/`, `site/snippets/`, and `site/blueprints/` before the plugin. To override anything from the theme without modifying it, place a file with the same name in the corresponding `site/` folder.

For example, to customise the header, create `site/snippets/header.php` and Kirby will use that instead of the theme's version.

To inject content into `` — analytics, OG image tags, custom meta — without touching the header template, create `site/snippets/header-extra.php`. The theme will automatically include it.

What's Kirby?
-------------

[](#whats-kirby)

[Kirby](https://getkirby.com) is a file-based CMS for PHP. If you're new to it, the [docs](https://getkirby.com/docs/guide) and [forum](https://forum.getkirby.com) are the best places to start.

License
-------

[](#license)

**The theme** is free and open source under the [MIT License](LICENSE.md). Use it, modify it, ship it — just keep the license and copyright notice.

**Kirby CMS** is a separate commercial product. It's free to use locally for development, but requires a paid license for production. Purchase one at [getkirby.com/buy](https://getkirby.com/buy).

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance89

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~13 days

Total

3

Last Release

54d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ceb4b67f3246b4ac69903f307f8643f470fe39c6625c6b88b9b6271dbdeb8da0?d=identicon)[eddiedale](/maintainers/eddiedale)

---

Top Contributors

[![eddiedale](https://avatars.githubusercontent.com/u/995836?v=4)](https://github.com/eddiedale "eddiedale (17 commits)")

---

Tags

kirbykirby-cmskirby-themekirby-themeskirby5

### Embed Badge

![Health badge](/badges/eddiedale-index-theme/health.svg)

```
[![Health](https://phpackages.com/badges/eddiedale-index-theme/health.svg)](https://phpackages.com/packages/eddiedale-index-theme)
```

###  Alternatives

[fabianmichael/kirby-template-attributes

Better HTML attribute handling for your snippets and templates.

236.8k1](/packages/fabianmichael-kirby-template-attributes)[getkirby/layouts

Kirby Layouts

428.4k](/packages/getkirby-layouts)[leitsch/kirby-blade

Enable Laravel Blade Template Engine for Kirby 4 and Kirby 5

219.2k](/packages/leitsch-kirby-blade)[beebmx/kirby-blade

Blade template for Kirby

151.8k2](/packages/beebmx-kirby-blade)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
